Managing parking availability requires accurate state tracking, deterministic entry/exit rules, and clear visibility for users.
This project simulates a smart parking lot system with an emphasis on logic correctness and system design, rather than visual complexity.
The system is built using a logic-first architecture, where all parking rules and state transitions are handled by a central manager.
Key design principles:
- Centralized state management
- UI acts as a visual layer only
- No business logic inside UI components
- System invariants enforced at all times
Core System Flow
Vehicle entry assigns the first available slot
Vehicle exit frees a specific occupied slot
Slot availability and counts update automatically
System invariant maintained:
Occupied + Available = Total Slots
Why This Design
This approach ensures:
- Predictable behavior
- Easy debugging
- Scalability to multi-lot systems
- Clear separation of concerns
The architecture is intentionally designed to support future expansion (multi-lot management) without restructuring core logic.
Tools & Technologies
Unity
C#
Future Improvements
Queue-based handling of multiple floor requests
Door open/close logic with safety constraints
First-person interaction mode (prototype in progress on a separate branch)