How atomichabit2023/keybox-system-production works
The repository implements a connected electronic keybox system: local firmware authenticates users, actuates locks, monitors doors, and synchronizes state; companion mobile and LINE LIFF interfaces support remote administration and QR access. The excerpts establish the firmware’s main orchestration and several controller interactions, plus QR generation’s Firebase lookup. Mobile, sync, and other LIFF wiring is not sampled, so those components are shown without speculative connections.
Main entry points: main.py Main event loop · security_manager.py Intrusion monitoring · maintenance_manager.py Local maintenance · sensor_manager.py Door sensing
Components 24
Keybox firmware
- Main event loop
firmware/main.py - Local authentication
firmware/controllers/auth_manager.py - Local maintenance
firmware/controllers/maintenance_manager.py - Intrusion monitoring
firmware/controllers/security_manager.py - Door sensing
firmware/controllers/sensor_manager.py - Lock actuation
firmware/controllers/door_manager.py - Cloud synchronization
firmware/controllers/unified_sync.py - Event logging
firmware/controllers/logger.py - Local interface
firmware/controllers/ui_manager.py - Clock management
firmware/controllers/rtc_manager.py - Wi-Fi connectivity
firmware/drivers/wifi_manager.py - Local user data
firmware/users.json
Cloud and access
- Firebase backend
- Tenant provisioning
firmware/universal_generator.py - LINE access interface
keybox_liff/index.html - QR generation API
keybox_liff/api/generate.py - LINE registration API
keybox_liff/api/register.py - LINE alert API
keybox_liff/api/line_alert.py
Mobile administration
- Mobile app
mobile_app/lib/main.dart - Mobile authentication
mobile_app/lib/services/auth_service.dart - Tenant management
mobile_app/lib/services/tenant_manager.dart
Device hardware
- Lock and sensor hardware
Other components
- Keybox user
- Administrator
Connections 26
- Keybox user → Main event loop: uses
- Main event loop → Local authentication: validates credentials
- Main event loop → Lock actuation: opens requested lock
- Main event loop → Local interface: renders interface
- Main event loop → Wi-Fi connectivity: connects and checks
- Main event loop → Clock management: initializes clock
- Main event loop → Local maintenance: enters admin mode
- Main event loop → Intrusion monitoring: coordinates monitoring
- Local maintenance → Local authentication: updates credentials
- Local maintenance → Event logging: reads log history
- Intrusion monitoring → Door sensing: checks door state
- Intrusion monitoring → Cloud synchronization: updates box status
- Intrusion monitoring → LINE alert API: dispatches intrusion alert
- Door sensing → Event logging: records state changes
- Local authentication → Local user data: reads and writes
- Lock actuation → Lock and sensor hardware: pulses lock relay
- Door sensing → Lock and sensor hardware: reads door switches
- Main event loop → Lock and sensor hardware: initializes peripherals
- Administrator → Mobile app: administers system
- Mobile app → Mobile authentication: uses
- Mobile app → Tenant management: manages tenants
- Tenant provisioning → Firebase backend: provisions tenant data
- LINE access interface → QR generation API: requests access QR
- QR generation API → Firebase backend: looks up registered user
- LINE registration API → Firebase backend: registration integration
- Cloud synchronization → Firebase backend: cloud synchronization