A lightweight Java Swing app to track, receive, distribute, and report on PPE inventory. Data is stored in simple CSV-style text files—no external database required.
- Inventory: quantities, unit cost, and auto-calculated total value
- Transactions: Receive from suppliers, Distribute to hospitals (with stock checks)
- Users: Admin and regular roles, activity logging
- Reporting: Inventory status, transaction history, activity log with export
- Robust validation and error handling
- Java 17+
- Swing (JFrame, JTable, dialogs, listeners)
- Java I/O (BufferedReader/Writer), Collections, Date/Time
- ppe.txt – items and quantities
- transactions.txt – receive/distribute history
- history.txt – activity/audit log
- users.txt, suppliers.txt, hospitals.txt – reference data
- Install JDK 17+
- Open the project in your IDE (VS Code/Eclipse/IntelliJ)
- Build the project
- Run the GUI entry point: src/main/java/GUI/MainMenu.java (or Main.java if present)
- Login: default admin → Username: Administrator, Password: admin123
- Receive: choose supplier + item, enter quantity → inventory and transactions update
- Distribute: choose hospital + item, enter quantity → validates stock, records transaction
- Reports: filter by date/item/supplier/hospital and export
- src/main/java/GUI/ – UI (LoginPage, MainMenu, ContentManager, ReportGeneratorPage)
- src/main/utils/ – utilities (FileManager, CurrentDateTime, InventoryManager, RecordActivity)
- src/main/data/ or data/ – text files (ppe, transactions, users, suppliers, hospitals, history)
- Files use comma-separated values; totals are recalculated from quantity × unit cost
- The app follows an MVC-inspired structure and uses simple design patterns (Singleton for FileManager, factory-style UI helpers)