How sammagbo/controle-de-acesso works
MAGBO Access Control is an Electron desktop application backed by a Spring REST API for recording and governing school access. The main workflow runs from an operator selecting a point and identifying a person, through backend authorization and recording, to updated activity views. The README also documents analytics, administration, imports, CDI and meal/exit workflows, and Hikvision and Pronote integrations. Those branches are represented at their documented subsystem paths; only sampled source supports the more specific access and webhook wiring shown here.
Main entry points: api.js API client · repositories Application data · App.js Operator interface · AccessController.java Access endpoints
Components 21
Desktop operations
- Electron shell
main.js - Operator interface
js/App.js - API client
js/api.js - Admin interface
js/components/AdminDashboard.js
Access decisions
- Access endpoints
backend/src/main/java/com/magbo/access/controllers/AccessController.java - Access decision
backend/src/main/java/com/magbo/access/services/AccessDecisionService.java - Attempt tracking
backend/src/main/java/com/magbo/access/services/AccessAttemptService.java - Meal entitlements
backend/src/main/java/com/magbo/access/services/MealEntitlementService.java - Exit permissions
backend/src/main/java/com/magbo/access/services/ExitPermissionService.java - CDI visits
backend/src/main/java/com/magbo/access/controllers/CdiController.java
Administration and reporting
- Activity and reports
backend/src/main/java/com/magbo/access/controllers/AccessAttemptController.java - Analytics and statistics
backend/src/main/java/com/magbo/access/controllers/StatsController.java - User administration
backend/src/main/java/com/magbo/access/controllers/UserController.java - Bulk user import
backend/src/main/java/com/magbo/access/controllers/UserController.java
External integrations
- Camera webhook
backend/src/main/java/com/magbo/access/controllers/HikvisionWebhookController.java - Pronote synchronization
backend/src/main/java/com/magbo/access/services/PronoteSyncService.java - Hikvision cameras
- Pronote system
Security and persistence
- JWT and roles
backend/src/main/java/com/magbo/access/security/JwtService.java - Application data
backend/src/main/java/com/magbo/access/repositories
Other components
- School operator
Connections 28
- School operator → Operator interface: uses
- Electron shell → Operator interface: loads
- Operator interface → API client: requests
- API client → Access endpoints: calls API
- Access endpoints → Access decision: delegates
- Access decision → Attempt tracking: records outcomes
- Attempt tracking → Application data: persists attempts
- Access endpoints → Application data: reads and writes logs
- API client → Activity and reports: requests activity
- Activity and reports → Application data: queries attempts
- API client → Analytics and statistics: requests statistics
- Analytics and statistics → Application data: queries access logs
- Operator interface → Admin interface: renders administration
- API client → User administration: calls API
- API client → Bulk user import: submits imports
- User administration → Application data: manages users
- Pronote synchronization → Application data: synchronizes users
- Pronote synchronization → Pronote system: fetches data
- API client → Meal entitlements: manages entitlements
- API client → Exit permissions: manages permissions
- API client → CDI visits: manages visits
- Meal entitlements → Application data: reads and writes
- Exit permissions → Application data: reads and writes
- CDI visits → Application data: reads and writes
- Hikvision cameras → Camera webhook: sends events
- Camera webhook → Access decision: processes recognition
- API client → JWT and roles: authenticates
- JWT and roles → Application data: loads user accounts