How sandip-1-1/java works
This is a single-user, terminal-based inventory manager. A user selects menu actions in Main, which validates console input and dispatches product operations to ProductDAO or stock, history, sorting, and report operations to InventoryService. Stock changes update quantity and record a transaction within one JDBC transaction; the DAOs persist data in SQLite. The README documents CRUD, SKU uniqueness, search, sorting, history, low-stock and valuation reports. Sampled excerpts show only part of Main, so some menu-to-service and DAO wiring is based on the documented workflow.
Main entry points: Main.java Menu and output · InventoryService.java Inventory service · DatabaseConnection.java Database connection · ProductDAO.java Product DAO
Components 14
Terminal UI
- Menu and output
src/main/java/com/inventory/Main.java - Input validation
src/main/java/com/inventory/util/InputValidator.java
Inventory operations
- Inventory service
src/main/java/com/inventory/service/InventoryService.java - Business exceptions
src/main/java/com/inventory/exception
Persistence
- Product DAO
src/main/java/com/inventory/dao/ProductDAO.java - Transaction DAO
src/main/java/com/inventory/dao/StockTransactionDAO.java - Database connection
src/main/java/com/inventory/util/DatabaseConnection.java - SQLite database
- Database schema
schema.sql
Domain models
- Product model
src/main/java/com/inventory/model/Product.java - Stock transaction model
src/main/java/com/inventory/model/StockTransaction.java - Transaction type
src/main/java/com/inventory/model/TransactionType.java - Validation contract
src/main/java/com/inventory/model/Validatable.java
Other components
- Terminal user
Connections 21
- Terminal user → Menu and output: chooses actions
- Menu and output → Input validation: reads input
- Menu and output → Database connection: initializes database
- Menu and output → Product DAO: runs product actions
- Menu and output → Inventory service: requests stock, reports
- Menu and output → Product model: creates products
- Inventory service → Product DAO: reads and updates
- Inventory service → Transaction DAO: records and reads
- Inventory service → Database connection: opens stock transactions
- Inventory service → Stock transaction model: creates history records
- Product DAO → Database connection: opens connections
- Transaction DAO → Database connection: opens connections
- Database connection → SQLite database: connects
- Database connection → Database schema: loads schema
- Product DAO → Product model: maps query rows
- Transaction DAO → Stock transaction model: maps query rows
- Stock transaction model → Transaction type: uses type
- Product model → Validation contract: implements
- Stock transaction model → Validation contract: implements
- Product DAO → Business exceptions: reports product errors
- Inventory service → Business exceptions: reports stock errors