Skip to content

Instantly share code, notes, and snippets.

@deependersingla
Created February 28, 2025 05:33
Show Gist options
  • Save deependersingla/e32efc549ab9e563ef1440897f6c4b93 to your computer and use it in GitHub Desktop.
Save deependersingla/e32efc549ab9e563ef1440897f6c4b93 to your computer and use it in GitHub Desktop.
Problem Statement Video
Below is a comprehensive problem statement you can share with your prospective candidate:
---
**Project Title:**
Smart CCTV Alert System with Telegram Integration
**Overview:**
In India, while CCTV systems are widely available, their functionality is typically limited to passive monitoring. This project aims to upgrade these systems into a smart surveillance solution. The goal is to automatically detect and alert homeowners when an unknown person is present in their premises (e.g., hall or entrance) during specified hours (9 pm to 6 am), using a web interface integrated with Telegram. Importantly, to keep operational costs low—especially with respect to network bandwidth—the video processing should be performed locally on the client’s device (e.g., a smartphone) wherever possible.
**Problem Statement:**
Develop a smart surveillance system that leverages local video processing and machine learning to differentiate between known and unknown individuals. The system should trigger alerts via Telegram when an unrecognized person is detected during designated off-hours. This solution must be cost-effective, minimizing the need for heavy network resources by performing as much processing as possible on the client device.
**Key Functional Requirements:**
1. **Video Capture and Processing:**
- Integrate with existing CCTV cameras or smartphone camera feeds.
- Process video streams in real-time on the client device to detect human presence.
- Use face recognition or person detection algorithms to distinguish between known (pre-registered) and unknown individuals.
- Allow a “training” or enrollment phase where known individuals’ images are captured and stored locally.
2. **Time-Based Monitoring:**
- The system should be active and monitor video feeds only during specified hours (9 pm to 6 am).
- Provide an option to configure or override these timings through the web interface or Telegram commands.
3. **Alert System:**
- When an unknown person is detected during the specified hours, automatically generate and send an alert message through a Telegram bot.
- Include in the alert a snapshot or short clip (if feasible) from the video feed for quick assessment.
4. **Web/Telegram Integration:**
- Develop a user-friendly web interface that integrates with Telegram.
- Allow users to configure system parameters (e.g., active hours, known person profiles, sensitivity thresholds).
- Enable bidirectional communication: users can send commands (e.g., “arm” or “disarm” the system) via Telegram and receive alerts/updates in real-time.
5. **Cost Effectiveness and Data Processing:**
- Implement on-device video processing to avoid continuous streaming to a central server.
- Use lightweight machine learning models (such as TensorFlow Lite or OpenCV with optimized classifiers) that can run efficiently on mobile devices.
- Ensure minimal network usage by sending data only when necessary (e.g., during an alert).
**Non-Functional Requirements:**
- **Performance:**
Real-time processing of video streams with low latency to ensure timely alerts.
- **Scalability:**
The design should allow easy integration with multiple camera sources or expand to different hardware platforms if needed.
- **Privacy and Security:**
Since the system deals with video data and personal images, all processing should ideally remain on the client device to ensure data privacy. Communication between the client and Telegram must be secure.
- **Reliability:**
The system should handle intermittent network connectivity gracefully. Alerts should be queued and sent once connectivity is restored if a direct connection is unavailable.
- **User Experience:**
The web interface and Telegram bot should be intuitive and responsive, making system configuration and alert management easy even for non-technical users.
**Technical Considerations:**
- **Hardware:**
Leverage available hardware (CCTV cameras, smartphones) without necessitating expensive upgrades. Emphasize the use of existing devices for local computation.
- **Software:**
- Use a lightweight machine learning framework suitable for mobile devices.
- Develop the Telegram bot using the official Bot API.
- The web interface can be built using modern frameworks (e.g., React, Angular, or Vue) and should communicate with the local processing backend via REST or WebSocket APIs.
- **Integration:**
The system should be modular, with clear boundaries between video processing, alert generation, and user interaction modules. This modularity will ease maintenance and future enhancements.
**Deliverables:**
1. **Source Code:**
A well-documented GitHub repository containing:
- The core video processing module.
- Telegram bot integration code.
- A configurable web interface.
- Setup and installation instructions.
2. **Documentation:**
Detailed setup guides, configuration instructions, and a README explaining the architecture, usage, and limitations.
3. **Test Cases:**
Automated tests covering key functionalities, including detection accuracy during off-hours and the reliability of alert notifications.
4. **Demo:**
A working demo or simulation showcasing the alert mechanism triggered by simulated intrusions during the defined monitoring period.
**Evaluation Criteria:**
- **Functionality:**
The solution must meet all key functional requirements and correctly differentiate between known and unknown individuals.
- **Efficiency:**
Evaluate the efficiency of the on-device processing and the responsiveness of the alert system.
- **Cost-Effectiveness:**
The implementation should minimize network usage by maximizing local processing.
- **Usability:**
The web interface and Telegram bot should be intuitive and straightforward.
- **Code Quality:**
Clean, maintainable code with appropriate documentation and testing.
**GitHub Repository Link:**
*Provide the link to the repository where the candidate can find starter code, examples, or further documentation.*
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment