How arpitajana1220/parkinglot-design works
This Java parking-lot system manages parking inventory and issues entry tickets. The main workflow starts with an application-simulated request, passes through a controller and ticket service, then looks up the gate and lot, obtains or creates vehicle data, allocates a compatible slot, and saves a ticket. The repository also models floors, gates, payments, and billing strategies; the README describes broader lot and slot management. The sampled code shows in-memory lot storage. Unsampled subsystems and billing behavior are represented only where documented or indexed.
Main entry points: TicketService.java Ticket service · TicketController.java Ticket controller · AppRunner.java App runner · ParkingSlotAllotmentStrategyFactory.java Allocation factory
Components 20
Application entry
- App runner
parkinglot/src/App/AppRunner.java
Ticket issuance
- Ticket controller
parkinglot/src/controllers/TicketController.java - Issue request
parkinglot/src/dtos/IssueTicketRequest.java - Issue response
parkinglot/src/dtos/IssueTicketResponse.java - Ticket service
parkinglot/src/services/TicketService.java
Slot allocation
- Allocation factory
parkinglot/src/strategies/ParkingSlotAllotmentStrategyFactory.java - Allocation strategy
parkinglot/src/strategies/ParkingPlaceAllotmentStrategy.java - Simple allocator
parkinglot/src/strategies/SimpleParkingLotAllotmentStrategy.java
Parking domain
- Ticket
parkinglot/src/models/Ticket.java - Vehicle
parkinglot/src/models/Vehicle.java - Gate
parkinglot/src/models/Gate.java - Parking lot
parkinglot/src/models/ParkingLot.java - Parking floor
parkinglot/src/models/ParkingFloor.java - Parking slot
parkinglot/src/models/ParkingSlot.java - Billing and payment
parkinglot/src/models/Bill.java
Repositories
- Gate repository
parkinglot/src/repositories/GateRepository.java - Lot repository
parkinglot/src/repositories/ParkingLotRepository.java - Vehicle repository
parkinglot/src/repositories/VehicleRepository.java - Ticket repository
parkinglot/src/repositories/TicketRepository.java
Other components
- Request initiator
Connections 22
- Request initiator → App runner: initiates
- App runner → Ticket controller: invokes
parkinglot/src/App/AppRunner.java - App runner → Issue request: builds
parkinglot/src/App/AppRunner.java - Ticket controller → Issue request: accepts
parkinglot/src/controllers/TicketController.java - Ticket controller → Ticket service: calls
parkinglot/src/controllers/TicketController.java - Ticket controller → Issue response: returns
parkinglot/src/controllers/TicketController.java - Ticket service → Gate repository: looks up gate
parkinglot/src/services/TicketService.java - Ticket service → Lot repository: loads lot
parkinglot/src/services/TicketService.java - Ticket service → Vehicle repository: looks up vehicle
parkinglot/src/services/TicketService.java - Ticket service → Ticket repository: saves ticket
parkinglot/src/services/TicketService.java - Ticket service → Allocation factory: selects allocator
parkinglot/src/services/TicketService.java - Allocation factory → Allocation strategy: provides strategy
parkinglot/src/strategies/ParkingSlotAllotmentStrategyFactory.java - Allocation factory → Simple allocator: selects implementation
parkinglot/src/strategies/ParkingSlotAllotmentStrategyFactory.java - Simple allocator → Lot repository: loads lot
parkinglot/src/strategies/SimpleParkingLotAllotmentStrategy.java - Ticket service → Ticket: assembles
parkinglot/src/services/TicketService.java - Ticket service → Vehicle: creates if absent
parkinglot/src/services/TicketService.java - Ticket service → Parking slot: requests allocation
parkinglot/src/services/TicketService.java - Ticket service → Gate: sets entry gate
parkinglot/src/services/TicketService.java - Simple allocator → Parking slot: chooses slot
parkinglot/src/strategies/SimpleParkingLotAllotmentStrategy.java - Parking lot → Billing and payment: uses billing strategy
- Parking lot → Parking floor: contains floors
parkinglot/src/models/ParkingLot.java - Parking floor → Parking slot: contains slots
parkinglot/src/models/ParkingFloor.java