How samueldevadass/smart-parking-management-system works
This is a distributed smart-parking web app: staff select a wing and spot, detect or enter a plate, record owner and entry/exit details, then retrieve a bill. The browser sends camera frames through the Go API layer to a FastAPI detection service; parking operations and persistence are documented in Go and PostgreSQL, with capture images stored in Supabase. The README documents the Go API’s database and proxy roles, but sampled Go handlers do not expose their internal call wiring, so those details are not asserted.
Main entry points: App.jsx Workflow Shell · handlers Parking Handlers · main.go REST API · detection.py Detection State
Components 26
Parking Console
- Workflow Shell
frontend/src/App.jsx - Wing Selection
frontend/src/pages/SelectWingPage.jsx - Spot Availability
frontend/src/pages/EmptySpotsPage.jsx - Plate Detection
frontend/src/pages/DetectionPage.jsx - Plate Display
frontend/src/components/PlateChip.jsx - Owner Details
frontend/src/pages/OwnerDetailsPage.jsx - Entry Exit
frontend/src/pages/EntryExitPage.jsx - Billing
frontend/src/pages/BillingPage.jsx - Progress Steps
frontend/src/components/StepBar.jsx - API Client
frontend/src/api/client.js
Go API
- REST API
backend_go/main.go - Parking Handlers
backend_go/handlers - Request Models
backend_go/models/models.go - Billing Service
backend_go/services/billing.go - AI Reverse Proxy
backend_go/handlers/detection.go
Detection Service
- FastAPI App
backend/main.py - Detection Routes
backend/routers/detection.py - Video Route
backend/routers/video.py - Detection State
backend/services/detection.py - YOLO OCR Pipeline
backend/LicensePlateDetector.py - Capture Uploads
backend/services/folder_path_service.py
Persistence
- Database Repository
backend_go/repositories/db.go - Capture Blob Service
backend_go/services/blob_service_s3.go - PostgreSQL
- Supabase Blob Storage
Other components
- Parking Staff
Connections 27
- Parking Staff → Workflow Shell: uses
- Workflow Shell → Wing Selection: renders
frontend/src/App.jsx - Workflow Shell → Spot Availability: renders
frontend/src/App.jsx - Workflow Shell → Plate Detection: renders
frontend/src/App.jsx - Workflow Shell → Owner Details: renders
frontend/src/App.jsx - Workflow Shell → Entry Exit: renders
frontend/src/App.jsx - Workflow Shell → Billing: renders
frontend/src/App.jsx - Workflow Shell → Progress Steps: renders
frontend/src/App.jsx - Plate Detection → API Client: calls
frontend/src/pages/DetectionPage.jsx - Plate Detection → Plate Display: renders
frontend/src/pages/DetectionPage.jsx - API Client → REST API: requests
README.md - REST API → Parking Handlers: routes
README.md - REST API → AI Reverse Proxy: proxies AI
README.md - Parking Handlers → Request Models: uses models
- Parking Handlers → Database Repository: accesses data
- Parking Handlers → Billing Service: billing operations
- Parking Handlers → Capture Blob Service: capture storage
- REST API → PostgreSQL: uses PGX
README.md - Capture Blob Service → Supabase Blob Storage: stores captures
README.md - FastAPI App → Detection Routes: registers
backend/main.py - FastAPI App → Video Route: registers
backend/main.py - Detection Routes → Detection State: calls
backend/routers/detection.py - Detection Routes → Capture Uploads: uploads via
backend/routers/detection.py - Video Route → Detection State: reads frames
backend/routers/video.py - Detection State → YOLO OCR Pipeline: delegates
backend/services/detection.py - Capture Uploads → Detection State: reads status
backend/services/folder_path_service.py - Capture Uploads → Supabase Blob Storage: uploads images
backend/services/folder_path_service.py