AutoSentinel combines server-side video processing with web-based visualization tools to deliver a near real-time firearm detection solution for schools and secure facilities (It uploads frames, so it has a detection delay of ~3 seconds). The system ingests video feeds, runs detections using a high-performance computer vision model (Yolov11m), and broadcasts detected images from a surveilance stream to a web dashboard with actionable timestamps of where any guns were detected.
- Secure authentication system with hashed passwords.
- Admins can register new users, assign roles, and manage system access.
- Feeds and detection logs are only accessible to authorized users.
- Access permissions are enforced at the database.
- Admins: Manage camera feeds, user accounts, and system-wide settings.
- Guests: Read-only access to specific feeds or events.
- Camera streams can be registered and configured via the surveilance page for a respective dashboard (any detected cameras will automatically be used).
- Each feed is displayed in a dedicated dashboard tile.
- Users can:
- View recent detection snapshots and status
- Filter feeds by location, detection time, or returned Yolov11 confidence scale (Soon to be implemented).
-
Node.js + Express.js
- Core REST API layer for detection events, logs, and camera metadata.
- Structured MVC-style service separation for clean logic management.
-
Custom Video Processor Service (Python)
- Script that runs firearm detection on video streams using a YOLOv11 model.
- Communicates with Node.js via child processes for logging and event handling.
-
PostgreSQL
- Stores timestamped detection logs, metadata, and system events.
- Optimized schema for querying recent detections and historical patterns.
-
React.js + Vite
- Fast, lightweight SPA with detection feed, camera stream previews, and historical data browsing.
- Fetches from Postgres via repeated Tanstack query.
-
Material UI (Soon to be implemented)
- Utility-first styling for a responsive and accessible UI.
- **Docker
- Entire system is containerized: web, API, video processor, and database.
- Easy local spin-up and seamless transition to production deployment.