|
1 | | -[](https://github.com/ericus123/FORTRESS_EYE/actions/workflows/main.yml) |
2 | | - |
3 | 1 | # FortressEye |
4 | 2 |
|
5 | | -**Table of Contents** |
6 | | - |
7 | | -- [Introduction](#introduction) |
8 | | -- [Hardware Requirements](#hardware-requirements) |
9 | | -- [Software and Tech Stack](#software-and-tech-stack) |
10 | | -- [System Architecture](#system-architecture) |
11 | | -- [System Functionality](#system-functionality) |
12 | | - - [Human Detection and Motion Detection](#human-detection-and-motion-detection) |
13 | | - - [Lighting System Control](#lighting-system-control) |
14 | | - - [Scheduling Functionality](#scheduling-functionality) |
15 | | - - [Notifications](#notifications) |
16 | | - - [Live Streaming and Playback](#live-streaming-and-playback) |
17 | | - - [System Management and Monitoring](#system-management-and-monitoring) |
18 | | - - [Data Export and Report Generation](#data-export-and-report-generation) |
19 | | - - [Subscriptions for Notifications and Data Processing](#subscriptions-for-notifications-and-data-processing) |
20 | | - - [Geofencing](#geofencing) |
21 | | - - [Voice Control](#voice-control) |
22 | | - - [Two-Factor Authentication (2FA)](#two-factor-authentication-2fa) |
23 | | - - [Temperature and Humidity Sensors](#temperature-and-humidity-sensors) |
24 | | - - [Smart Fan Control](#smart-fan-control) |
25 | | - - [Intruder Identification](#intruder-identification) |
26 | | - - [Emergency Panic Button](#emergency-panic-button) |
27 | | - - [User Activity Logs](#user-activity-logs) |
28 | | -- [Conclusion](#conclusion) |
29 | | - |
30 | | -## Introduction |
31 | | - |
32 | | -FortressEye is a cutting-edge smart security system that combines CCTV cameras with Onvif protocol and Arduino Uno R4 WiFi to provide advanced surveillance and protection. This project focuses on detecting people and movements using the CCTV cameras, triggering appropriate actions based on the detection results, and offering real-time streaming and playback capabilities. Additionally, FortressEye ensures prompt notifications for detected activities and features a user-friendly dashboard for seamless system management and monitoring. |
33 | | - |
34 | | -## Hardware Requirements |
35 | | - |
36 | | -- CCTV cameras that support Onvif protocol (e.g., ONVIF-compliant IP cameras like Hikvision, Dahua, Axis, etc.) |
37 | | -- Arduino Uno R4 WiFi board |
38 | | -- LED lights (e.g., 5mm LEDs) and suitable resistors |
39 | | -- Buzzer module (e.g., active buzzer module KY-012) |
40 | | -- Breadboard and jumper wires for prototyping |
41 | | -- 5V power supply for Arduino and sensors |
42 | | -- Internet connectivity (Wi-Fi module onboard Arduino Uno R4 WiFi) |
43 | | -- Computer or Raspberry Pi for hosting the web server and dashboard |
44 | | -- Temperature and humidity sensors (e.g., DHT22 or DHT11) |
45 | | -- Fans for environmental control |
46 | | - |
47 | | -## Software and Tech Stack |
48 | | - |
49 | | -- NestJS: A progressive Node.js framework for building efficient and scalable server-side applications using TypeScript |
50 | | -- Typescript: A superset of JavaScript that adds static typing to the language |
51 | | -- Arduino IDE: To program the Arduino Uno R4 WiFi board |
52 | | -- Johnny-Five library: A JavaScript robotics library for controlling the Arduino board |
53 | | -- Node.js: To run the server-side code for handling notifications and dashboard logic |
54 | | -- Express.js: A web application framework for Node.js |
55 | | -- MongoDB or MySQL: To store system data and logs (optional, based on preference) |
56 | | -- Socket.IO: For real-time communication between Arduino and the web application |
57 | | -- WebRTC: For live streaming video from the CCTV cameras to the web application |
58 | | -- WebSockets: To enable real-time notifications and system status updates |
59 | | -- Progressive Web App (PWA): To create a mobile-friendly and responsive user interface |
60 | | - |
61 | | -## System Architecture |
62 | | - |
63 | | -The FortressEye system consists of the following components: |
64 | | - |
65 | | -- CCTV Cameras with Onvif support: These cameras connect to the network and provide live streaming data and event triggers for human detection and motion detection. |
66 | | -- Arduino Uno R4 WiFi: This board controls the lighting system (LED lights) and buzzer based on triggers received from the CCTV cameras. |
67 | | -- LED Lights and Buzzer: The Arduino board controls the lighting system and buzzer for alerting users about detected activities. |
68 | | -- Web Server: The NestJS server hosts the web application, PWA, and handles notification services. |
69 | | -- Dashboard: A user-friendly web-based dashboard built using NextJS allows users to manage the system, view reports, and monitor real-time data. |
70 | | - |
71 | | -## System Functionality |
72 | | - |
73 | | -### Human Detection and Motion Detection |
74 | | - |
75 | | -- The CCTV cameras continuously monitor the area and use the Onvif protocol to send event triggers to the NestJS application when a person is detected or movement is detected. |
76 | | -- The NestJS application receives these triggers and acts accordingly. |
77 | | - |
78 | | -### Lighting System Control |
79 | | - |
80 | | -- When a person is detected, if the lights are not already on, the Arduino will switch on the lights automatically through the NestJS application. |
81 | | -- If the lights are already on and a person is detected, specified buzzers will be activated for a specified duration. |
82 | | -- When I'm around the compound/property, specified lights should turn (this can be fully customized through settings). |
83 | | - |
84 | | -### Scheduling Functionality |
85 | | - |
86 | | -- The NestJS application exposes APIs that allow the frontend (built with Next.js) to communicate with the server and set up schedules for lighting system control and buzzer activation. |
87 | | -- The Next.js frontend features a user-friendly dashboard with forms and controls, enabling users to define schedules for automated lighting and buzzer alerts. |
88 | | -- Users can specify the time intervals or conditions when the lights should turn on/off and the buzzers should be activated/deactivated. |
89 | | -- Upon submission of the schedule settings, the Next.js frontend sends a request to the NestJS backend, which stores the scheduling preferences in the database. |
90 | | -- The NestJS server implements a scheduler using a library like `node-cron`, periodically checking the current time and comparing it with the scheduled intervals or conditions. |
91 | | -- Based on the schedule, the NestJS application sends commands to the Arduino Uno R4 WiFi board to control the lighting system and buzzer accordingly. |
92 | | - |
93 | | -### Notifications |
94 | | - |
95 | | -- When human activity is detected, the NestJS application sends notifications to specific recipients. |
96 | | -- Notification methods can include SMS (using Twilio API), dashboard push notifications (using Socket.IO or WebSockets), WhatsApp messages (using Twilio or WhatsApp Business API), etc. |
97 | | - |
98 | | -### Live Streaming and Playback |
99 | | - |
100 | | -- The CCTV cameras provide live streaming data, allowing users to view the real-time video feed through the web application. |
101 | | -- WebRTC is used for live streaming video from the cameras to the web application. |
102 | | - |
103 | | -### System Management and Monitoring |
104 | | - |
105 | | -- The user-friendly dashboard built using NextJS provides an intuitive interface for users to manage the system, configure settings, and view system reports. |
106 | | -- Users can turn the system on or off and access system logs and data for monitoring and generating reports. |
107 | | - |
108 | | -### Data Export and Report Generation |
109 | | - |
110 | | -- Users will be able to specify export criteria (e.g., date range, event type) and trigger data export. |
111 | | -- When a user initiates an export, the system can generate the requested report (e.g., CSV, Excel, PDF) based on the specified criteria. |
112 | | -- Store the generated report in the "Exported Data Table" and provide a link for the user to download it. |
113 | | -- Implement a scheduler to periodically generate and update reports as needed (e.g., daily or weekly system status reports). |
114 | | - |
115 | | -### Subscriptions for Notifications and Data Processing |
116 | | - |
117 | | -- Users can subscribe to various notification channels and data processing services through the dashboard. |
118 | | -- Implement NATS integration to facilitate real-time communication and event-driven data processing. |
119 | | -- When an event, such as human detection or motion detection, occurs, |
120 | | - |
121 | | -the system can publish relevant data to NATS topics. |
122 | | - |
123 | | -- Users with active subscriptions can subscribe to specific NATS topics to receive real-time notifications or data updates. |
124 | | -- Implement logic to manage subscription status in the "Subscriptions Table" (e.g., activate, deactivate, update preferences). |
125 | | -- Users can customize their subscription preferences, such as specifying which events they want to be notified about and through which channels (email, SMS, NATS). |
126 | | - |
127 | | -### Geofencing |
128 | | - |
129 | | -- Implement geofencing capabilities to automatically enable or disable the system based on the user's location. For example, the system could activate when the user leaves home and deactivate when they return. |
130 | | - |
131 | | -### Voice Control |
132 | | - |
133 | | -- Add voice assistant integration to allow users to control and receive status updates from the system using voice commands. |
134 | | - |
135 | | -### Two-Factor Authentication (2FA) |
136 | | - |
137 | | -- Enhance the security of the system by implementing 2FA for user logins, ensuring that only authorized individuals can access the dashboard and control the system. |
138 | | - |
139 | | -### Temperature and Humidity Sensors |
140 | | - |
141 | | -- Monitor temperature and humidity using sensors (e.g., DHT22 or DHT11) and trigger actions based on threshold values. |
142 | | - |
143 | | -### Smart Fan Control |
144 | | - |
145 | | -- Control fans based on temperature and humidity sensor data to maintain a comfortable environment. |
146 | | - |
147 | | -### Intruder Identification |
148 | | - |
149 | | -- Implement facial recognition or object recognition technology to identify known individuals or objects of interest, allowing the system to differentiate between authorized users and potential intruders. |
150 | | - |
151 | | -### Emergency Panic Button |
152 | | - |
153 | | -- Integrate a panic button feature in the mobile app or dashboard that, when pressed, triggers an immediate alert, such as notifying authorities or sending emergency notifications to predefined contacts. |
154 | | - |
155 | | -### User Activity Logs |
156 | | - |
157 | | -- Maintain detailed logs of user activity and system events for audit and security purposes, and allow users to review these logs in the dashboard. |
158 | | - |
159 | | -## Conclusion |
| 3 | +## **Introduction** |
| 4 | +FortressEye is an advanced, AI-powered security and automation system designed for real-time surveillance, smart home integration, and dynamic control. It features a **highly customizable** interface that allows users to turn functionalities on or off, define automation rules, and personalize security settings. |
| 5 | + |
| 6 | +## **Features** |
| 7 | + |
| 8 | +### **1. Security & Surveillance** |
| 9 | +- **AI-Powered Intruder Detection**: Uses edge computing for **real-time video processing**. |
| 10 | +- **Motion & Human Detection**: Configurable alerts based on movement patterns. |
| 11 | +- **Geofencing**: Automatically enables/disables system functions based on user location. |
| 12 | +- **Emergency Panic Button**: Instantly triggers alerts to pre-configured contacts or authorities. |
| 13 | +- **User Activity Logs**: Maintains a detailed log of interactions and security events. |
| 14 | +- **Two-Factor Authentication (2FA)**: Ensures secure access control. |
| 15 | + |
| 16 | +### **2. Smart Automation & Control** |
| 17 | +- **Lighting System Control**: Automated lighting with **motion-based activation**. |
| 18 | +- **Smart Fan Control**: Adjusts based on temperature & humidity sensor data. |
| 19 | +- **Customizable Scheduling**: Set automation routines for lights, buzzers, and other actuators. |
| 20 | + |
| 21 | +### **3. Audio & Sound Systems** |
| 22 | +#### **Security Sound System** |
| 23 | +- Dedicated for **system alerts, notifications, and emergency sounds**. |
| 24 | +- Each camera has **its own sensors, microphones, sirens, and buzzers**. |
| 25 | +- Alerts override other audio sources when security events are triggered. |
| 26 | + |
| 27 | +#### **Entertainment Sound System** |
| 28 | +- **Completely separate from security alerts.** |
| 29 | +- **360-degree audio setup with multiple speakers** positioned across the environment. |
| 30 | +- Users can **stream audio via Bluetooth, Wi-Fi, or AUX**. |
| 31 | +- Integrated with **YouTube, Spotify, and other streaming services**. |
| 32 | + |
| 33 | +### **4. Real-Time Streaming & Data Management** |
| 34 | +- **WebRTC & RTSP Streaming**: Secure, low-latency video feeds. |
| 35 | +- **Local & Cloud Storage Options**: Users can store data on an **edge server or the cloud**. |
| 36 | +- **Encrypted Communication**: Uses TLS/SSL to protect data streams and system logs. |
| 37 | +- **Data Export & Reporting**: Generate logs in **CSV, PDF, or Excel formats**. |
| 38 | + |
| 39 | +### **5. 3D Building Representation** |
| 40 | +- **Live 3D Model of the Property**: Shows real-time updates for sensors, cameras, and actuators. |
| 41 | +- **Customizable Area of Interest**: Users can **mark zones for tracking** and configure unique actions (e.g., sound alerts, notifications). |
| 42 | + |
| 43 | +## **System Architecture** |
| 44 | +- **Jetson Orin AGX 64GB**: Handles AI-based real-time video analysis. |
| 45 | +- **Arduino & ESP32**: Controls home automation (lights, fans, etc.). |
| 46 | +- **NestJS Backend**: Manages system logic, authentication, and events. |
| 47 | +- **Next.js Dashboard**: Provides an intuitive web-based user interface. |
| 48 | +- **MQTT/WebSockets/NATS**: Enables **instant real-time updates** across the system. |
| 49 | + |
| 50 | +## **Remote Access & Security** |
| 51 | +- **VPN-Based Secure Remote Access**: Ensures **private and encrypted connections**. |
| 52 | +- **Cloudflare Tunnel & Reverse Proxy**: Allows **on-demand remote access** without exposing the system to the internet. |
| 53 | +- **Role-Based Access Control (RBAC)**: Different access levels for users & administrators. |
| 54 | + |
| 55 | +## **Conclusion** |
| 56 | +FortressEye is a next-generation **smart security and automation system** that prioritizes **privacy, flexibility, and real-time intelligence**. With its **highly customizable** architecture, users can **personalize every aspect of their security and automation experience**. |
160 | 57 |
|
161 | | -FortressEye is a sophisticated smart security system that combines CCTV cameras with Onvif protocol and Arduino Uno R4 WiFi. The name "FortressEye" |
0 commit comments