Lions adalah platform manajemen bisnis berbasis web yang menggabungkan backend Spring Boot dengan frontend Vue.js. Sistem ini mencakup manajemen penjualan (kasir/POS), inventaris gudang, pengadaan barang, manajemen pengguna dengan kontrol akses berbasis peran, serta berbagai laporan operasional.
- Fitur Utama
- Tech Stack
- Struktur Proyek
- Prasyarat
- Memulai Pengembangan
- Konfigurasi Environment
- Perintah Maven
- Build Production
- Dokumentasi API
- Kontribusi
- Lisensi
- Antarmuka kasir (POS) dengan manajemen shift
- Pemrosesan pesanan dan item pesanan
- Pembayaran dan cetak struk
- Voucher diskon
- Manajemen gudang dan cabang
- Saldo stok dan mutasi stok
- Stock opname (perhitungan fisik stok)
- Transfer stok antar gudang/cabang
- Manajemen supplier
- Purchase order dan penerimaan barang
- Manajemen produk dan kategori
- Upload foto produk
- Login berbasis JWT
- Manajemen pengguna, peran (role), dan izin (permission)
- Kontrol akses berbasis modul
- Cache permission dengan Caffeine
- Log HTTP request
- Notifikasi
- Seeder data awal (user, permission, role template)
| Teknologi | Versi |
|---|---|
| Java | 21 |
| Spring Boot | 3.4.5 |
| Spring Security + JWT (jjwt) | 0.12.6 |
| Spring Data JPA | (managed by Boot) |
| PostgreSQL Driver | (managed by Boot) |
| Springdoc OpenAPI (Swagger UI) | 2.8.8 |
| Caffeine Cache | (managed by Boot) |
| Lombok | 1.18.38 |
| Thymeleaf | (managed by Boot) |
| Teknologi | Versi |
|---|---|
| Vue.js | 3.x |
| Vite + vite-ssg | 8.x |
| Vue Router | 5.x |
| Pinia | 3.x |
| Tailwind CSS | 3.x |
| Reka UI / Radix Vue | latest |
| Axios | 1.x |
| Chart.js + vue-chartjs | 4.x |
| GSAP + Lenis | latest |
| jsPDF + jspdf-autotable | latest |
| Iconify Vue | 5.x |
| Alat | Keterangan |
|---|---|
Maven Wrapper (./mvnw) |
Build & lifecycle management backend |
| pnpm | Package manager frontend |
| VitePress | Dokumentasi frontend |
Lions/
├── src/
│ ├── main/
│ │ ├── java/com/fts/twin/
│ │ │ ├── config/ # Konfigurasi Spring (Security, Cache, Swagger, dll.)
│ │ │ ├── controller/ # REST API controllers (auth, catalog, inventory, order, procurement, system)
│ │ │ ├── dto/ # Data Transfer Objects (request & response)
│ │ │ ├── handler/ # Exception handler & custom auth entry point
│ │ │ ├── middleware/ # JWT filter, HTTP log filter, user context filter
│ │ │ ├── model/ # Entity JPA (auth, catalog, inventory, order, procurement, system)
│ │ │ ├── repository/ # Spring Data JPA repositories
│ │ │ ├── seeder/ # Data seeder awal (user, permission, role)
│ │ │ ├── service/ # Business logic layer
│ │ │ └── util/ # Utility (JWT, response builder, security utils, dll.)
│ │ └── resources/
│ │ ├── static/ # Output build frontend (di-generate otomatis)
│ │ └── logback.xml # Konfigurasi logging
│ └── test/
├── frontend/
│ ├── src/
│ │ ├── components/ # Komponen UI (dashboard, section, shadcn-style)
│ │ ├── composables/ # Composable reusable (confirm, toast, permission, dll.)
│ │ ├── hooks/ # Custom hooks (GSAP)
│ │ ├── lib/ # Utilitas (api client, appMode, mock, gsap, lenis)
│ │ ├── pages/ # Halaman aplikasi (kasir, produk, inventaris, laporan, dll.)
│ │ ├── router/ # Konfigurasi Vue Router
│ │ └── stores/ # Pinia stores (auth, theme, toast, confirm)
│ ├── docs/ # Dokumentasi frontend (VitePress)
│ ├── public/ # Aset statis publik
│ ├── vite.config.js
│ ├── tailwind.config.js
│ └── package.json
├── api/
│ └── docs/ # Dokumentasi OpenAPI (JSON) per modul
├── uploads/
│ ├── avatar/ # Upload foto profil pengguna
│ └── products/ # Upload foto produk
├── pom.xml # Konfigurasi Maven (backend + build frontend)
├── mvnw / mvnw.cmd # Maven Wrapper
└── spravel / spravel.bat # Script utilitas (Windows & Unix)
Pastikan alat berikut sudah terpasang sebelum memulai:
- Java 21 atau lebih baru
- Maven (atau gunakan
./mvnwyang sudah tersedia) - Node.js (direkomendasikan versi LTS terbaru)
- pnpm —
npm install -g pnpm - PostgreSQL — database yang sedang berjalan
git clone https://github.com/your-org/Lions.git
cd LionsBuat database PostgreSQL dan sesuaikan konfigurasi di src/main/resources/application.properties (atau application.yml):
spring.datasource.url=jdbc:postgresql://localhost:5432/Lions
spring.datasource.username=postgres
spring.datasource.password=yourpassword./mvnw spring-boot:runBackend akan berjalan di:
http://localhost:8090
cd frontend
pnpm install
pnpm devFrontend dev server akan berjalan di:
http://localhost:5173
Catatan: Secara default frontend menggunakan
VITE_APP_MODE=mock, sehingga bisa berjalan tanpa backend aktif. Ubah keapiuntuk terhubung ke backend nyata.
Salin file contoh dan sesuaikan:
cp frontend/.env.example frontend/.env.local| Variabel | Default | Keterangan |
|---|---|---|
VITE_API_URL |
http://localhost:8090 |
URL backend API |
VITE_DEV_PORT |
5173 |
Port dev server Vite |
VITE_APP_TITLE |
Lions |
Judul aplikasi di browser |
VITE_APP_MODE |
mock |
Mode data: api, mock, atau empty |
Proyek ini menggunakan profil Maven kustom sebagai shortcut:
| Perintah | Keterangan |
|---|---|
./mvnw spring-boot:run |
Jalankan backend (development) |
./mvnw package |
Build JAR (termasuk build frontend) |
./mvnw package -P skip-frontend |
Build JAR tanpa build frontend |
./mvnw test |
Jalankan unit test backend |
./mvnw clean |
Bersihkan hasil build |
Build lengkap (frontend + backend dalam satu JAR):
./mvnw packageJalankan JAR hasil build:
java -jar target/spravel-0.0.1-SNAPSHOT.jarAplikasi akan tersedia di http://localhost:8090.
Swagger UI tersedia saat aplikasi berjalan:
http://localhost:8090/swagger-ui.html
Dokumentasi OpenAPI per modul (format JSON) tersedia di folder api/docs/:
api/docs/auth.jsonapi/docs/products.jsonapi/docs/suppliers.jsonapi/docs/warehouses.jsonapi/docs/purchase-orders.json
Kontribusi sangat disambut. Silakan baca CONTRIBUTING.md untuk panduan lengkapnya.
Langkah singkat:
- Fork repositori ini
- Buat branch fitur:
git checkout -b fitur/nama-fitur - Commit perubahan:
git commit -m "feat: tambah fitur X" - Push ke branch:
git push origin fitur/nama-fitur - Buka Pull Request
Dirilis di bawah lisensi GNU AFFERO GENERAL PUBLIC.
