How joshua662/gate-automation-project works
Oakwood Subdivision is a role-based gate-access and resident-management system. The main physical workflow captures a vehicle plate at a gate, sends the plate for backend verification, records the access decision, updates gate status, and notifies affected users. Residents and administrators also use web portals for visitor requests, profile and account management, logs, notifications, and reports; administrators manage guards and system settings. The graph combines explicit behavior in sampled Python and Laravel excerpts with the capabilities evident from the source tree; details of unsampled controller and page wiring are intentionally left out.
Main entry points: api.php Laravel API · GateService.php Gate Decisions · App.tsx Admin Web App · lpr_gate_controller.py LPR Controller
Components 27
Gate Operations
- LPR Controller
python/lpr_gate_controller.py
Backend Services
- Laravel API
server/routes/api.php - Gate Controller
server/app/Http/Controllers/Api/GateController.php - Gate Decisions
server/app/Services/GateService.php - Authentication
server/app/Http/Controllers/Api/AuthController.php - Visitor Requests
server/app/Http/Controllers/Api/VisitorController.php
Resident Portal
- Resident Web App
client/src/App.tsx - Resident Routes
client/src/routes/AppRoutes.tsx - Resident Auth
client/src/services/AuthService.ts - Resident Features
client/src/pages/Resident/ResidentHomePage.tsx - Visitor Management
client/src/pages/Visitors/VisitorManagementPage.tsx
Admin Portal
- Admin Web App
admin-panel/src/App.tsx - Admin Authentication
admin-panel/src/hooks/useAuth.ts - Admin Features
admin-panel/src/pages/AdminPage.tsx - Guard Management
admin-panel/src/pages/GuardsPage.tsx - Reports
admin-panel/src/pages/ReportsPage.tsx - Admin API Client
admin-panel/src/services/adminApi.ts
Application State
- Gate Logs
server/app/Models/GateLog.php - System Status
server/app/Models/SystemStatus.php - Notifications
server/app/Models/Notification.php - User Accounts
server/app/Models/User.php - Update Requests
server/app/Models/UpdateRequest.php - Activity Logs
server/app/Models/ActivityLog.php
Other components
- Gate Cameras
- Gate Hardware
- Resident
- Administrator
Connections 31
- Gate Cameras → LPR Controller: streams frames
- LPR Controller → Laravel API: verifies plates
- LPR Controller → Gate Hardware: commands gate
- LPR Controller → Laravel API: syncs status
- Laravel API → Gate Controller: dispatches request
- Gate Controller → Gate Decisions: checks access
- Gate Decisions → Gate Logs: records passage
- Gate Decisions → System Status: updates status
- Gate Decisions → Notifications: creates alerts
- Gate Decisions → User Accounts: matches plates
- Laravel API → Authentication: dispatches request
- Authentication → User Accounts: authenticates accounts
- Authentication → Activity Logs: records events
- Authentication → Resident: emails credentials
- Laravel API → Visitor Requests: dispatches request
- Visitor Requests → User Accounts: looks up residents
- Visitor Requests → Notifications: creates alerts
- Visitor Requests → Update Requests: syncs decisions
- Resident Web App → Resident Routes: renders routes
- Resident Routes → Resident Auth: uses authentication
- Resident Auth → Laravel API: sends auth requests
- Resident → Resident Web App: uses portal
- Resident Routes → Resident Features: routes residents
- Resident Routes → Visitor Management: routes visitors
- Administrator → Admin Web App: uses portal
- Admin Web App → Admin Authentication: provides auth
- Admin Authentication → Admin API Client: calls auth API
- Admin API Client → Laravel API: sends API requests
- Admin Web App → Admin Features: routes administration
- Admin Web App → Guard Management: routes guards
- Admin Web App → Reports: routes reports