How charan0120/ai-based-smart-surveillance-system works
This is a real-time smart-surveillance application: an ESP32-CAM streams frames to a Python server, which detects faces and weapons, classifies threats, and exposes monitoring dashboards. Admins can manage users and authorized faces; Firebase backs user authentication, while threat-status publishing is present as an optional, commented-out integration. The graph follows documented and excerpted calls; it does not assume connections for unsampled template behavior or hardware internals.
Main entry points: app.py Flask Server · detector.py Threat Detector · websocket_server.py WebSocket Receiver · globals.py Live State
Components 15
Camera Ingest
- WebSocket Receiver
websocket_server.py - Live State
globals.py
AI Analysis
- Threat Detector
detector.py - YOLO Weights
best1.pt - Authorized Faces
detector.py - Detection Settings
config.py
Web Application
- Flask Server
app.py - Admin Dashboard
templates/surveillance_dashboard.html - Operator Dashboard
templates/user_dashboard.html - Login Page
templates/login.html
Identity and Cloud
- Firebase User Auth
auth_firebase.py - Threat Status Publisher
firebase_service.py
Other components
- ESP32 Camera
live/weblive/weblive.ino - Browser User
- Firebase Realtime DB
Connections 17
- ESP32 Camera → WebSocket Receiver: streams frames
README.md - WebSocket Receiver → Live State: stores frames
websocket_server.py - WebSocket Receiver → Threat Detector: processes frames
websocket_server.py - Threat Detector → Live State: updates threat state
detector.py - Threat Detector → Detection Settings: reads settings
detector.py - Threat Detector → YOLO Weights: loads weights
- Threat Detector → Authorized Faces: loads face encodings
detector.py - Browser User → Flask Server: requests pages
README.md - Flask Server → Login Page: renders login
app.py - Flask Server → Admin Dashboard: renders admin view
app.py - Flask Server → Operator Dashboard: renders operator view
app.py - Flask Server → Firebase User Auth: verifies and manages users
app.py - Firebase User Auth → Firebase Realtime DB: reads and writes users
auth_firebase.py - Flask Server → Live State: reads live status
app.py - Flask Server → Threat Detector: reloads face encodings
app.py - WebSocket Receiver → Threat Status Publisher: optionally publishes status
websocket_server.py - Threat Status Publisher → Firebase Realtime DB: writes status and alerts
firebase_service.py