Jump to a problem, path or page
Jump to a problem, path or page
Updates as you edit. Run the review to record it; passing every check completes the problem.
Not yet passed: Entry controller responsibility
Add Entry controller and define its responsibility.
Not yet passed: Parking service responsibility
Add Parking service and define its responsibility.
Not yet passed: Spot repository responsibility
Add Spot repository and define its responsibility.
Not yet passed: Allocation strategy responsibility
Add Allocation strategy and define its responsibility.
Not yet passed: Ticket responsibility
Add Ticket and define its responsibility.
Not yet passed: Pricing strategy responsibility
Add Pricing strategy and define its responsibility.
Not yet passed: Entry controller → Parking service
A directed path must connect Entry controller to Parking service. Arrows represent requests, dependencies, or event flow.
Not yet passed: Parking service → Spot repository
A directed path must connect Parking service to Spot repository. Arrows represent requests, dependencies, or event flow.
Not yet passed: Parking service → Allocation strategy
A directed path must connect Parking service to Allocation strategy. Arrows represent requests, dependencies, or event flow.
Not yet passed: Parking service → Ticket
A directed path must connect Parking service to Ticket. Arrows represent requests, dependencies, or event flow.
Not yet passed: Parking service → Pricing strategy
A directed path must connect Parking service to Pricing strategy. Arrows represent requests, dependencies, or event flow.
Not yet passed: Where does spot selection belong?
Not yet passed: How do concurrent entries claim a spot?
Not yet passed: How do repeated exit requests behave?
Not yet passed: Interfaces and invariants
Write at least 80 characters describing concrete operations, inputs, outputs, state and errors. This check measures completeness, not semantic correctness.
Not yet passed: Trade-offs and failure cases
Write at least 80 characters about alternatives, failure handling and edge cases. Review the reasoning yourself using the reference discussion.
Rule-based educational feedback. Notes are checked by length only; topology checks confirm directed reachability. These checks do not validate semantics, latency, reliability or every valid design.
Define park(vehicle): Ticket and exit(ticketId, paymentKey): Receipt. Use VehicleType, SpotType and TicketStatus values. Repository.tryClaim enforces exclusive ownership; pricing calculates a quote; a payment adapter handles side effects. Test full capacity, incompatible vehicles and duplicate payment callbacks.
There is no single correct diagram. Explain where yours differs and which requirement justifies it.