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.
- User Management
- Role Management
- Customer Management
- Supplier Management
- Product Management
- JWT Authentication
- Role-Based Access Control (RBAC)
- Secure REST API
- Inventory Management
- Purchasing Management
- Sales Management
- ERP Transaction Processing
- RESTful API
- JSON Request/Response
- OpenAPI Documentation
- Swagger UI
| Technology | Version |
|---|---|
| Java | 17 |
| Quarkus | 3.8.1 |
| Maven | Latest |
| Technology | Purpose |
|---|---|
| PostgreSQL | Relational Database |
| JDBC PostgreSQL Driver | Database Connectivity |
| Technology | Purpose |
|---|---|
| Hibernate ORM | ORM Framework |
| Panache | Repository & Active Record Pattern |
| Technology | Purpose |
|---|---|
| SmallRye JWT | JWT Authentication & Authorization |
| Technology | Purpose |
|---|---|
| RESTEasy Reactive | REST API Framework |
| Jackson | JSON Serialization/Deserialization |
| Technology | Purpose |
|---|---|
| Hibernate Validator | Request Validation |
| Technology | Purpose |
|---|---|
| SmallRye OpenAPI | OpenAPI Specification |
| Swagger UI | API Documentation UI |
| Technology | Purpose |
|---|---|
| JUnit 5 | Unit Testing |
Dependency sudah disiapkan untuk pengembangan lebih lanjut:
<artifactId>quarkus-flyway</artifactId>Digunakan untuk:
- Database Versioning
- Schema Migration
- CI/CD Database Deployment
<artifactId>quarkus-redis-client</artifactId>Digunakan untuk:
- Caching
- Session Storage
- Performance Optimization
<artifactId>quarkus-smallrye-reactive-messaging-kafka</artifactId>Digunakan untuk:
- Event Driven Architecture
- Asynchronous Processing
- Integration Services
src
βββ main
β βββ java
β β βββ com.erp
β β βββ controller
β β βββ service
β β βββ repository
β β βββ entity
β β βββ dto
β β βββ security
β β βββ config
β β
β βββ resources
β βββ application.properties
β βββ META-INF
β
βββ test
βββ java
Sebelum menjalankan aplikasi, pastikan sudah terinstall:
- Java 17+
- Maven 3.9+
- PostgreSQL 14+
- Git
git clone https://github.com/charter-dev/project_mini_erp_quarkus.git
cd project_mini_erp_quarkusBuat database PostgreSQL:
CREATE DATABASE erp_db;Konfigurasi pada:
src/main/resources/application.propertiesContoh:
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=updateQuarkus menyediakan hot reload secara otomatis.
mvn quarkus:devAplikasi berjalan pada:
http://localhost:8080
mvn clean packageOutput:
target/quarkus-app/
Jalankan aplikasi:
java -jar target/quarkus-app/quarkus-run.jarhttp://localhost:8080/q/swagger-ui
http://localhost:8080/q/openapi
Project menggunakan JWT Authentication.
Contoh Authorization Header:
Authorization: Bearer <jwt_token>Menjalankan seluruh unit test:
mvn test<groupId>com.erp</groupId>
<artifactId>erp_system</artifactId>
<version>0.0.1</version>Java 17
Quarkus 3.8.1
- Multi Company
- Multi Warehouse
- Purchase Order
- Sales Order
- Accounting Module
- Approval Workflow
- Redis Cache
- Kafka Event Streaming
- Flyway Migration
- Audit Logging
- Dashboard Analytics
βββββββββββββββ
β Client App β
ββββββββ¬βββββββ
β REST API
βΌ
βββββββββββββββββββββββ
β Quarkus Backend β
βββββββββββββββββββββββ€
β JWT Security β
β RESTEasy Reactive β
β Hibernate Panache β
β Bean Validation β
βββββββββββ¬ββββββββββββ
β
βΌ
βββββββββββββββββββββββ
β PostgreSQL Database β
βββββββββββββββββββββββ
MIT License
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.