How preetanshmgohil-sketch/sentinal-gujrat-police-hackathon-2026 works
Sentinel VMS is a Flask-based CCTV registry, live viewing, and traffic analytics platform. The main workflow is a user viewing camera feeds, enabling analytics, and reviewing resulting events, plate detections, watchlist alerts, vehicle history, and violations. Camera ingestion, frame streaming, detection/tracking, and persistence are distinct runtime stages; ANPR and NVIDIA-powered scene analysis extend them. The README documents the UI capabilities, while sampled source confirms key engine and storage behavior; omitted route code limits certainty about some UI-to-API wiring.
Main entry points: app.py Flask Application · scene_analyzer.py Scene Analysis · index.html Dashboard and Map · spa.js Page Navigation
Components 20
Viewing and Registry
- Dashboard and Map
templates/index.html - Page Navigation
static/spa.js - Flask Application
app.py - Camera Registry
app.py - Stream Engine
app.py
Detection and Analysis
- Analytics Engine
app.py - Vehicle Tracker
app.py - Plate Recognition
anpr.py - Scene Analysis
scene_analyzer.py
Events and Investigation
- Event Log
templates/events.html - Watchlist
templates/watchlist.html - ANPR Alerts
templates/anpr_alerts.html - Vehicle Search
templates/vehicle_search.html - Violation Evidence
templates/violations.html - SQLite Records
External Systems
- Camera Gateway
- CCTV Cameras
- NVIDIA NIM
Other components
- Operator
- Browser
Connections 24
- Operator → Browser: uses
- Browser → Dashboard and Map: views
- Browser → Page Navigation: navigates
- Page Navigation → Flask Application: fetches pages
- Dashboard and Map → Flask Application: requests data
- Event Log → Flask Application: searches events
- Watchlist → Flask Application: manages plates
- ANPR Alerts → Flask Application: requests alerts
- Vehicle Search → Flask Application: searches plates
- Violation Evidence → Flask Application: requests evidence
- Flask Application → Camera Registry: loads cameras
- Camera Registry → Camera Gateway: fetches registry
- Camera Registry → SQLite Records: reads and writes
- Flask Application → Stream Engine: starts streams
- Stream Engine → SQLite Records: reads camera URLs
- Stream Engine → CCTV Cameras: pulls video
- Flask Application → Analytics Engine: starts analytics
- Analytics Engine → Stream Engine: processes frames
- Analytics Engine → Vehicle Tracker: assigns tracks
- Analytics Engine → Plate Recognition: reads plates
- Analytics Engine → SQLite Records: stores detections
- Flask Application → Scene Analysis: requests analysis
- Scene Analysis → NVIDIA NIM: analyzes frames
- Scene Analysis → SQLite Records: stores violations