Inventory Management System adalah aplikasi berbasis Java Console yang digunakan untuk mengelola kategori, supplier, produk, stok masuk, stok keluar, dan laporan inventori.
Project ini dibuat sebagai portfolio Java Backend Developer dengan menerapkan konsep Object-Oriented Programming (OOP), Layered Architecture, Repository Pattern, Service Layer, Validation, JDBC, MySQL, serta Unit Testing menggunakan JUnit dan Mockito.
- Java 21
- Maven
- MySQL
- JDBC
- JUnit 5
- Mockito
- IntelliJ IDEA
- Category Management
- Supplier Management
- Product Management
- Stock In
- Stock Out
- Stock History
- Dashboard Report
- Low Stock Product Monitoring
- Total Inventory Value
- ProductServiceTest
- StockInServiceTest
- StockOutServiceTest
src/main/java/com/inventory
├── config
├── exception
├── menu
├── model
├── repository
│ ├── interfaces
│ └── impl
├── service
├── validation
└── Main.java
CREATE DATABASE inventory_db;categories
suppliers
products
stock_ins
stock_outs
categories
│
│ 1
│
└───────< products >───────┐
│
│
│
suppliers │
│ │
│ 1 │
└──────────────────────────┘
products
│
├──────────< stock_ins
│
└──────────< stock_outs
Mengelola data kategori produk.
Mengelola data supplier.
Mengelola data produk yang terdiri dari:
- SKU
- Nama Produk
- Harga
- Stok
- Minimum Stok
- Kategori
- Supplier
Menambah stok produk dan mencatat histori barang masuk.
Mengurangi stok produk dan mencatat histori barang keluar.
Menampilkan ringkasan inventori:
- Total Categories
- Total Suppliers
- Total Products
- Total Inventory Value
git clone https://github.com/aasyhadi/inventory-management-system.git
cd inventory-management-systemEdit file:
src/main/java/com/inventory/config/DatabaseConfig.java
Contoh konfigurasi:
private static final String URL =
"jdbc:mysql://localhost:3306/inventory_db";
private static final String USERNAME =
"root";
private static final String PASSWORD =
"root";mvn clean compile
mvn exec:javaAtau langsung jalankan:
Main.java
dari IntelliJ IDEA.
Menjalankan seluruh unit test:
mvn testContoh hasil:
ProductServiceTest PASS
StockInServiceTest PASS
StockOutServiceTest PASS
BUILD SUCCESS
=== INVENTORY MANAGEMENT SYSTEM ===
1. Category Menu
2. Supplier Menu
3. Product Menu
4. Stock In Menu
5. Stock Out Menu
6. Dashboard Report
0. Exit
- Repository Pattern
- Service Layer Pattern
- Dependency Injection
- Validation Layer
- Layered Architecture
- Authentication & Authorization
- Export Excel Report
- REST API Version (Spring Boot)
- Docker Deployment
- Inventory Audit Log
- Purchase Order Module
- Sales Module
Ahmad Asyhadi, Java Backend Developer Portfolio Project Built with Java 21, JDBC, MySQL, JUnit 5, and Mockito.