Skip to content

Latest commit

Β 

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Mini ERP System - Quarkus

ERP System adalah aplikasi backend ERP (Enterprise Resource Planning) yang dibangun menggunakan Quarkus dan PostgreSQL untuk mengelola proses bisnis perusahaan secara terintegrasi melalui REST API.

Project ini mengimplementasikan pendekatan modern Java dengan Quarkus, Hibernate ORM Panache, JWT Authentication, Bean Validation, dan OpenAPI Documentation.


Features

Master Data

  • User Management
  • Role Management
  • Customer Management
  • Supplier Management
  • Product Management

Security

  • JWT Authentication
  • Role-Based Access Control (RBAC)
  • Secure REST API

Business Process

  • Inventory Management
  • Purchasing Management
  • Sales Management
  • ERP Transaction Processing

API

  • RESTful API
  • JSON Request/Response
  • OpenAPI Documentation
  • Swagger UI

Technology Stack

Backend Framework

Technology Version
Java 17
Quarkus 3.8.1
Maven Latest

Database

Technology Purpose
PostgreSQL Relational Database
JDBC PostgreSQL Driver Database Connectivity

Persistence Layer

Technology Purpose
Hibernate ORM ORM Framework
Panache Repository & Active Record Pattern

Security

Technology Purpose
SmallRye JWT JWT Authentication & Authorization

API Layer

Technology Purpose
RESTEasy Reactive REST API Framework
Jackson JSON Serialization/Deserialization

Validation

Technology Purpose
Hibernate Validator Request Validation

Documentation

Technology Purpose
SmallRye OpenAPI OpenAPI Specification
Swagger UI API Documentation UI

Testing

Technology Purpose
JUnit 5 Unit Testing

Future Ready Components

Dependency sudah disiapkan untuk pengembangan lebih lanjut:

Flyway Migration (Commented)

<artifactId>quarkus-flyway</artifactId>

Digunakan untuk:

  • Database Versioning
  • Schema Migration
  • CI/CD Database Deployment

Redis (Commented)

<artifactId>quarkus-redis-client</artifactId>

Digunakan untuk:

  • Caching
  • Session Storage
  • Performance Optimization

Kafka (Commented)

<artifactId>quarkus-smallrye-reactive-messaging-kafka</artifactId>

Digunakan untuk:

  • Event Driven Architecture
  • Asynchronous Processing
  • Integration Services

Project Structure

src
β”œβ”€β”€ main
β”‚   β”œβ”€β”€ java
β”‚   β”‚   └── com.erp
β”‚   β”‚       β”œβ”€β”€ controller
β”‚   β”‚       β”œβ”€β”€ service
β”‚   β”‚       β”œβ”€β”€ repository
β”‚   β”‚       β”œβ”€β”€ entity
β”‚   β”‚       β”œβ”€β”€ dto
β”‚   β”‚       β”œβ”€β”€ security
β”‚   β”‚       └── config
β”‚   β”‚
β”‚   └── resources
β”‚       β”œβ”€β”€ application.properties
β”‚       └── META-INF
β”‚
└── test
    └── java

Prerequisites

Sebelum menjalankan aplikasi, pastikan sudah terinstall:

  • Java 17+
  • Maven 3.9+
  • PostgreSQL 14+
  • Git

Clone Repository

git clone https://github.com/charter-dev/project_mini_erp_quarkus.git

cd project_mini_erp_quarkus

Database Configuration

Buat database PostgreSQL:

CREATE DATABASE erp_db;

Konfigurasi pada:

src/main/resources/application.properties

Contoh:

quarkus.datasource.db-kind=postgresql
quarkus.datasource.username=postgres
quarkus.datasource.password=password

quarkus.datasource.jdbc.url=jdbc:postgresql://localhost:5432/erp_db

quarkus.hibernate-orm.database.generation=update

Running Application

Development Mode

Quarkus menyediakan hot reload secara otomatis.

mvn quarkus:dev

Aplikasi berjalan pada:

http://localhost:8080

Build Production

mvn clean package

Output:

target/quarkus-app/

Jalankan aplikasi:

java -jar target/quarkus-app/quarkus-run.jar

API Documentation

Swagger UI

http://localhost:8080/q/swagger-ui

OpenAPI JSON

http://localhost:8080/q/openapi

Authentication

Project menggunakan JWT Authentication.

Contoh Authorization Header:

Authorization: Bearer <jwt_token>

Testing

Menjalankan seluruh unit test:

mvn test

Build Information

Maven Coordinates

<groupId>com.erp</groupId>
<artifactId>erp_system</artifactId>
<version>0.0.1</version>

Java Version

Java 17

Quarkus Version

Quarkus 3.8.1

Roadmap

  • Multi Company
  • Multi Warehouse
  • Purchase Order
  • Sales Order
  • Accounting Module
  • Approval Workflow
  • Redis Cache
  • Kafka Event Streaming
  • Flyway Migration
  • Audit Logging
  • Dashboard Analytics

Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Client App  β”‚
β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”˜
       β”‚ REST API
       β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚   Quarkus Backend   β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ JWT Security        β”‚
β”‚ RESTEasy Reactive   β”‚
β”‚ Hibernate Panache   β”‚
β”‚ Bean Validation     β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
          β”‚
          β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ PostgreSQL Database β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

License

MIT License


Tech Keywords

Java 17 β€’ Quarkus 3.8.1 β€’ PostgreSQL β€’ Hibernate ORM β€’ Panache β€’ RESTEasy Reactive β€’ JWT β€’ OpenAPI β€’ Swagger β€’ Bean Validation β€’ Maven β€’ JUnit 5

README ini sudah cukup layak untuk portfolio GitHub, CV, maupun dokumentasi internal perusahaan.

About

πŸš€ Mini ERP backend built with Quarkus 3, Java 17, PostgreSQL, Hibernate Panache, JWT Authentication, and OpenAPI documentation.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages