Science Score: 44.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (11.3%) to scientific vocabulary
Last synced: 6 months ago · JSON representation ·

Repository

Basic Info
Statistics
  • Stars: 3
  • Watchers: 1
  • Forks: 0
  • Open Issues: 4
  • Releases: 0
Created over 1 year ago · Last pushed 11 months ago
Metadata Files
Readme License Citation

README.md

AI-Powered Monitoring System

Transforming old devices into smart, AI-driven security monitors using real-time video streaming, detection, and notifications.


Description

The AI-Powered Monitoring System is a web-based application that allows users to view real-time video streams from repurposed devices, receive alerts when a person is detected via AI, and manage their monitoring setup.

This frontend interacts with a backend Python-based video processing system that handles detection using YOLO, and with Firebase for authentication, database, and notifications.


Features

  • Live Video Streaming: Peer-to-peer video feed via WebRTC.
  • AI Detection Alerts: Receive browser notifications when a person is detected.
  • Firebase Integration:
    • Firestore for call session management and token storage.
    • Firebase Authentication for user login/logout.
    • Firebase Cloud Messaging (FCM) for real-time push notifications.

Setup & Installation

Prerequisites

  • Node.js and npm
  • Firebase project setup with:
    • Firestore
    • Firebase Auth
    • FCM enabled with a Web Push certificate
  • The backend Python server must be running (see backend README)

Installation

bash git clone https://github.com/your-username/AI-Powered-Monitoring-System.git cd AI-Powered-Monitoring-System/web-app npm install npm start


Testing

To test the system:

  1. Start the backend Python server and begin streaming.
  2. Open the frontend, log in, and click Join Call.
  3. Once connected, approach the camera or move into its field of view.
  4. The YOLO model will detect a person approaching and trigger a push notification.
  5. Ensure notification permission is granted in your browser.

If no notification appears, check the browser's notification settings and the console for any errors.


File Overview

  • src/pages/Viewer.js: Main streaming page with notification logic.
  • src/hooks/useFCM.js: Handles FCM token registration and foreground alert display.
  • firebase-messaging-sw.js: Service worker for background push notifications.
  • utils/config.js: Firebase setup and configuration.

Deployment

The frontend is a standard React app and can be deployed using:

  • Firebase Hosting
  • Vercel
  • Or served locally at http://localhost:3000

Notes

  • Make sure the backend is started before joining a call.
  • Tokens must be stored correctly in Firestore (users/{userId}/fcmTokens).
  • Browser must grant notification permissions to receive alerts.

License

MIT License.

Owner

  • Name: ai-monitoring-system
  • Login: ai-monitoring-system
  • Kind: organization

Citation (CITATION.cff)

# This CITATION.cff file was generated with cffinit.
# Visit https://bit.ly/cffinit to generate yours today!

cff-version: 1.2.0
title: AI Monitoring System Public Website
message: >-
  If you use this software, please cite it using the
  metadata from this file.
type: software
authors:
  - given-names: Cameron Vandermeersch
  - given-names: Tanzim Hossain
  - given-names: Nafiz Hasan
  - given-names: Yousef Kart
repository-code: 'https://github.com/uhelp-dev/4990-project'
url: 'https://4990-project.vercel.app/'
license: MIT
version: '1.0'
date-released: '2025-04-01'

GitHub Events

Total
  • Public event: 1
Last Year
  • Public event: 1

Dependencies

package-lock.json npm
  • 1402 dependencies
package.json npm
  • @babel/plugin-proposal-private-property-in-object ^7.21.11 development
  • css-loader ^7.1.2 development
  • postcss-loader ^8.1.1 development
  • sass ^1.81.0 development
  • sass-loader ^12.6.0 development
  • style-loader ^4.0.0 development
  • tailwindcss ^3.4.14 development
  • @testing-library/jest-dom ^5.17.0
  • @testing-library/react ^13.4.0
  • @testing-library/user-event ^13.5.0
  • animate.css ^4.1.1
  • cors ^2.8.5
  • express ^4.21.2
  • firebase ^11.0.1
  • react ^18.3.1
  • react-dom ^18.3.1
  • react-icons ^5.3.0
  • react-intersection-observer ^9.13.1
  • react-router-dom ^6.28.0
  • react-scripts 5.0.1
  • react-webcam ^7.2.0
  • rsuite ^5.74.2
  • web-vitals ^2.1.4