How diegolyra/projeto-p3 works
Projeto-P3 is a command-line rental-shop system. Staff and customers enter through role-specific menus; the login menu starts the interaction, and the facade mediates operations such as catalog queries, rental history, and fines. The rental stage checks customer eligibility and item availability, creates a contract, and updates item and customer state; returns close contracts, while fines track late returns and payment. CSV repositories provide persistence. Some menus and business classes were not sampled, so their internal calls are not expanded beyond wiring supported by Main and the available excerpts.
Main entry points: Main.java Application startup · LojaFacade.java Shop facade · ContratoBusiness.java Contract service · MultaBusiness.java Fine service
Components 19
User interface
- Application startup
src/main/java/com/loja/Main.java - Login menu
src/main/java/com/loja/ui/MenuLogin.java - Admin menu
src/main/java/com/loja/ui/MenuAdmin.java - Staff menu
src/main/java/com/loja/ui/MenuFuncionario.java - Customer menu
src/main/java/com/loja/ui/MenuCliente.java
Application services
- Shop facade
src/main/java/com/loja/padrao/facade/LojaFacade.java - User service
src/main/java/com/loja/business/UsuarioBusiness.java - Item service
src/main/java/com/loja/business/ItemBusiness.java - Category service
src/main/java/com/loja/business/CategoriaBusiness.java - Supplier service
src/main/java/com/loja/business/FornecedorBusiness.java
Rental domain
- Contract service
src/main/java/com/loja/business/ContratoBusiness.java - Fine service
src/main/java/com/loja/business/MultaBusiness.java
CSV persistence
- User CSV store
src/main/java/com/loja/repositories/UsuarioPersistenciaCSV.java - Item CSV store
src/main/java/com/loja/repositories/ItemPersistenciaCSV.java - Category CSV store
src/main/java/com/loja/repositories/CategoriaPersistenciaCSV.java - Supplier CSV store
src/main/java/com/loja/repositories/FornecedorPersistenciaCSV.java - Contract CSV store
src/main/java/com/loja/repositories/ContratoPersistenciaCSV.java - Fine CSV store
src/main/java/com/loja/repositories/MultaPersistenciaCSV.java
Other components
- Shop user
Connections 35
- Shop user → Login menu: uses
- Application startup → User CSV store: creates
- Application startup → Item CSV store: creates
- Application startup → Category CSV store: creates
- Application startup → Supplier CSV store: creates
- Application startup → Contract CSV store: creates
- Application startup → Fine CSV store: creates
- Application startup → User service: wires
- Application startup → Item service: wires
- Application startup → Category service: wires
- Application startup → Supplier service: wires
- Application startup → Contract service: wires
- Application startup → Fine service: wires
- Application startup → Shop facade: creates
- Application startup → Login menu: starts
- Login menu → Shop facade: uses
- Admin menu → Shop facade: uses
- Staff menu → Shop facade: uses
- Customer menu → Shop facade: queries
- Shop facade → User service: delegates
- Shop facade → Item service: delegates
- Shop facade → Category service: delegates
- Shop facade → Supplier service: delegates
- Shop facade → Contract service: delegates
- Shop facade → Fine service: delegates
- Contract service → User service: looks up
- Contract service → Item service: checks and updates
- Contract service → Contract CSV store: reads and writes
- Fine service → Fine CSV store: reads and writes
- Application startup → User service: injects user store
- Application startup → Item service: injects item store
- Application startup → Category service: injects category store
- Application startup → Supplier service: injects supplier store
- Application startup → Contract service: injects contract store
- Application startup → Fine service: injects fine store