Sentin-AI is a cloud-native, polyglot microservices architecture designed for intelligent surveillance. It leverages Python for computer vision (Object Detection) and Node.js for real-time alerting and orchestration. The system is containerized using Docker and designed for scalable deployment on Kubernetes or Serverless platforms like IBM Code Engine.
The system follows a distributed microservices pattern, separating heavy computational tasks from high-concurrency I/O operations.
-
Sentin-Eye (Python/Flask):
- Role: The "Brain" (Compute Bound).
- Function: Processes image feeds/URLs using Computer Vision logic (OpenCV/TensorFlow).
- Output: Returns JSON analysis of detected anomalies, objects, or threats.
-
Sentin-Alert (Node.js/Express):
- Role: The "Messenger" (I/O Bound).
- Function: Consumes analysis data, triggers logic-based alerts (simulated email/SMS), and manages WebSocket connections.
- Performance: Handles high-throughput notification requests asynchronously.
-
Frontend Dashboard:
- Role: The "View".
- Function: Visualizes the live status and logs incoming alerts.
- Polyglot Design: Demonstrates the ability to integrate distinct languages (Python & Node.js) in a single ecosystem.
- Containerized: Fully Dockerized services ensuring consistency across Development and Production environments.
- Restful Communication: Services communicate via standard HTTP/JSON APIs.
- Scalable Architecture: Stateless design ready for horizontal scaling on Kubernetes (K8s) or IBM Code Engine.
| Component | Technology | Description |
|---|---|---|
| Service A | Python 3.9+ / Flask | Backend for AI Logic & Image Processing. |
| Service B | Node.js 18 / Express | Backend for Alert Orchestration & Real-time I/O. |
| Frontend | HTML5 / JavaScript | Simple |
We use Docker Compose to spin up the entire ecosystem (Python Service + Node Service) locally with a single command.
docker-compose up --buildOnce the containers are running, you can access them at:
- Python AI Service: http://localhost:5000
- Node.js Alert Service: http://localhost:3000
- Dashboard: http://localhost:8080 (If configured)
Description:
Analyzes an image for threats.
Input:
{
"image_url": "http://example.com/cam1.jpg"
}Output:
{
"threat_level": "High",
"objects": ["person", "unattended_bag"]
}Description:
Health check to ensure the alert system is active.
Description:
Receives analysis data from the Python service and logs alerts.
The project is divided into 5 strategic milestones:
- MS1: Foundation – Project Architecture, Git Repository, and Folder Structure setup
- MS2: The Eye (Python) – Implement Flask server and Computer Vision logic
- MS3: The Alert (Node.js) – Implement Express server and notification logic
- MS4: Containerization – Create Dockerfiles and Docker Compose orchestration
- MS5: Cloud Deployment – Deploy services to IBM Cloud Code Engine and test public endpoints
Hammad Ibrahim
Software Engineer | DevOps Enthusiast | Python Backend Developer
Building scalable, automated, and intelligent backend systems.
🔗 LinkedIn Profile | GitHub Profile
This project is licensed under the MIT License — see the LICENSE file for details.