How benjamin-gutman/smartsafe_code_engr_coen_390 works
SmartSafe combines an Android application, a database-backed WebSocket backend, and a Raspberry Pi hardware interface. The documented user-facing path is the Android app communicating with the backend; the separately launched hardware program handles device operations. The repository also includes barcode scanning and database models for users, inventory, and access/history. Connections are limited to README statements and source-index references; unsampled implementation details are not assumed.
Main entry points: main.py Hardware entry · DatabaseHelper.py Database operations · Models Domain models · command_helper.py Command helper
Components 19
Android app
- Android app
SafeUI/app
Backend and data
- Backend WebSocket
Database_Files/Websocket.py - Database operations
Database_Files/DatabaseHelper.py - Database setup
Database_Files/Database.py - Database reader
Database_Files/databasereader.py - Domain models
Database_Files/Models - Request schemas
Database_Files/Schemas - Access history
Database_Files/Models/Access_History.py - Inventory history
Database_Files/Models/Inventory_History.py
Pi hardware
- Hardware entry
HW_Interface/main.py - Event loop
HW_Interface/loop.py - Safe state machine
HW_Interface/safe_state_machine.py - GPIO drivers
HW_Interface/hw_drivers/gpio.py - Watchdog
HW_Interface/watchdog_service.py - WebSocket client
HW_Interface/websocket/client.py - Local command server
HW_Interface/websocket/server.py - Command helper
HW_Interface/websocket/command_helper.py
Barcode scanning
- Barcode scanning
Camera_Environment/multi_barcode.py
Other components
- SafeSafe user
Connections 17
- SafeSafe user → Android app: uses
- Android app → Backend WebSocket: connects to backend
- Backend WebSocket → Database operations: uses operations
- Database operations → Database setup: uses
Database_Files/DatabaseHelper.py - Database operations → Domain models: uses models
Database_Files/DatabaseHelper.py - Database operations → Request schemas: uses schemas
Database_Files/DatabaseHelper.py - Domain models → Access history: includes
- Domain models → Inventory history: includes
- Hardware entry → Event loop: uses
HW_Interface/main.py - Hardware entry → Safe state machine: uses
HW_Interface/main.py - Hardware entry → GPIO drivers: uses
HW_Interface/main.py - Hardware entry → WebSocket client: uses
HW_Interface/main.py - Hardware entry → Local command server: uses
HW_Interface/main.py - Hardware entry → Watchdog: uses
HW_Interface/main.py - Hardware entry → Command helper: uses
HW_Interface/main.py - WebSocket client → Command helper: uses
HW_Interface/websocket/client.py - Local command server → Command helper: uses
HW_Interface/websocket/server.py