A production-grade, real-time healthcare IoT platform that continuously monitors critical vital signsβincluding ECG, blood oxygen saturation (SpOβ), and heart rateβthrough wearable ESP32-based sensors. The system features:
- Real-time biosignal streaming from wearable patches via WebSocket and REST APIs
- LSTM-based machine learning inference for ECG arrhythmia detection and SpOβ trend prediction
- Multi-role web dashboard for doctors, nursing staff, and system administrators
- Comprehensive patient management with medical history, prescriptions, and clinical notes
- AI-powered risk scoring (Digital Twin) combining multiple biomarkers with explainability
- Secure role-based access control with patient-doctor-staff hierarchies
By combining edge computing (ESP32), cloud analytics (FastAPI backend), and real-time visualization (React frontend), the platform enables clinicians to make data-driven decisions and detect critical health events instantaneously.
Hardware: ESP32 microcontroller + multi-sensor array
Sensors Integrated:
- ECG Sensor (AD8232) β 250 Hz sampling, lead detection, arrhythmia-ready
- SpOβ Sensor (MAX30102) β Pulse oximetry with Maxim algorithm integration
- WiFi Connectivity β 802.11 for real-time data transmission
- Dual Transmission Mode:
- WebSocket (port 81) β Real-time streaming (ECG @ 25 Hz, SpO2 @ 0.5 Hz)
- HTTP REST API (port 80) β Persistent logging and device management
Data Acquisition:
- High-fidelity analog-to-digital conversion
- On-device finger detection and signal quality assessment
- Automatic WiFi reconnection and data buffering
- REST endpoints for debugging:
/status,/health,/ecg-raw,/spo2-raw,/memory,/network
Firmware: WearablePatch.ino with modular sensor components
Framework: FastAPI (Python) with PostgreSQL + TimescaleDB
Authentication & Authorization:
- JWT-based authentication for doctors, staff, and admins
- Role-based permission delegation
Real-Time Monitoring (WebSocket):
/ws/ecg/{patient_id}β ECG streaming with live ML predictions/ws/spo2/{patient_id}β SpOβ streaming with trend analysis/ws/vitals/{patient_id}β Combined vital signs feed
Clinical Management:
GET/POST /api/patientsβ Patient CRUD, medical history, allergies, medicationsGET/POST /api/patients/{id}/vitalsβ Vital signs history and rangesPOST /api/prescriptionsβ Prescription creation, tracking, expiry alertsPOST /api/clinical-notesβ Doctor/staff note creation and retrievalGET /api/ai-insights/{patient_id}β Digital-twin risk scores with explanationsGET/POST /api/staff-tasksβ Task assignment for nursing staff
Device Management:
POST /api/devices/registerβ Auto-registration of ESP32 devices (no auth required)GET /api/admin/devicesβ Device monitoring, firmware versions, debug infoPOST /api/admin/devices/{id}/commandβ Remote command execution (JSON-based)
Telemedicine:
/api/telemedicine/consultationsβ Video consultation infrastructure (scheduling/management)
ECG Arrhythmia Detection (ecg_ml_inference.py)
- Model: LSTM-based CNN-LSTM hybrid
- Input: 15-second ECG windows @ 360 Hz (5,400 samples)
- Preprocessing: Notch filter (50Hz rejection), bandpass (0.5-45 Hz), resampling, z-score normalization
- Output: Binary classification (Normal/Abnormal) + confidence score + heart rate
- Buffer Manager: Sliding 15-second window with 2-second updates for real-time performance
- Fallback: Mock predictions on model version mismatch
SpOβ Trend Prediction (spo2_ml_inference.py)
- Model: LSTM (64 units) with BatchNorm and cost-sensitive loss
- Input: Variable-length SpOβ sequences with 19 engineered features
- Loss Function: Weighted cross-entropy (FN weight = 10.0) to prioritize hypoxia detection
- Threshold Optimization: F2-score maximization for high recall on critical events
- Output: Trend classification + decline alerts + confidence metrics
Risk Scoring Engine (patient_risk_scoring.py)
- Digital Twin approach combining biomarkers:
- ECG prediction: 42% weight
- SpOβ prediction: 40% weight
- Signal stability/motion artifact: 18% weight
- Rolling 1-minute average to dampen transient artifacts
- Returns: Risk level (low/medium/high/critical), contributing factors, explanation
TimescaleDB Time-Series Storage:
- Hypertable:
vitals_timeseries(partitioned by time) - Efficient storage for millions of vital sign readings
- Indexed on:
time,patient_id,device_idfor fast range queries
Relational Models:
patientsβ Full patient profiles with demographics, medical history, emergency contacts, insuranceusersβ Doctors, nurses, admins with role-based permissionsdevicesβ ESP32 device registration, WiFi credentials, firmware versionsprescriptionsβ Medication orders with dosage schedules, renewal dates, patient complianceclinical_notesβ Free-text medical notes from doctors/staffai_insightsβ AI-generated health recommendations with timestamps and confidencetelemedicine_consultationsβ Video call scheduling and metadatastaff_tasksβ Task queue for nursing staff (vitals check, medication delivery, incident reports)system_logsβ Audit trail and error logging
Technology Stack: React + Vite + Tailwind CSS + WebSocket
Doctor Dashboard (src/pages/DoctorDashboard.jsx)
- Patient list with risk indicators and alerts
- Real-time vital signs trending
- Quick access to recent clinical notes
- AI insight recommendations with explainability
- Activity feed (new prescriptions, consultation requests, staff updates)
Patient Detail View (src/pages/PatientDetail.jsx)
- Live ECG waveform visualization with WebSocket streaming
- SpOβ monitoring with historical charts
- Heart rate trends and variability analysis
- Prescription history and active medications
- AI insights panel with digital-twin risk breakdown
- Medical history sidebar with allergies, conditions, past hospitalizations
Key Pages:
PatientsPageβ Patient list filtering, search, and batch operationsPrescriptionsPageβ Medication management, dosage tracking, expiry alertsTelemedicinePageβ Video consultation interface (in development)AIInsightsPageβ Explainable AI recommendations dashboardAdminDashboardβ System health, user management, device monitoring
Real-Time Updates:
- ECG chart updates @ 25 Hz via WebSocket
- SpOβ and vitals @ 0.5 Hz
- Auto-refresh on patient/prescription changes
- Alert notifications for critical events
Admin Panel (src/AdminApp.jsx)
- System status and performance metrics
- Device debugging and firmware monitoring
- User role management and permission delegation
- System configuration and settings
All models trained on real clinical datasets and production-ready.
ECG Analysis Model (ml-models/ecg-analysis/)
Architecture:
15-second window (5,400 samples @ 360 Hz)
β
Conv1D (32 filters) + MaxPool
β
Conv1D (64 filters) + MaxPool
β
LSTM (128 units)
β
Dense (64) + Dropout
β
Output: Binary classification (Normal/Abnormal)
Training Data: MIT-BIH Arrhythmia Database (~100,000+ annotated beats) Model Storage:
- SavedModel format:
ecg_lstm_model_savedmodel/ - Keras format:
best_ecg_model.keras
SpOβ Prediction Model (ml-models/spo2-prediction/model/)
Architecture:
Variable-length sequence (19 features)
β
LSTM (64 units) + L2 regularization
β
BatchNorm + Dropout
β
Dense (32) + BatchNorm
β
Output: Probability of critical decline
Key Innovation: Cost-sensitive learning with 10x penalty for false negatives (missed hypoxia events) Model Variants: Small, Medium, Large for different computational constraints Training Optimization: F2-score threshold for high recall on critical thresholds
βββββββββββββββββββββββ
β Wearable Patch β
β - ECG Sensor β
β - SpOβ Sensor β
β - Lead Detection β
β - Finger Detection β
ββββββββββββ¬βββββββββββ
β WiFi
ββ WebSocket (port 81): Real-time streaming
ββ HTTP REST (port 80): Persistent logging
β
βΌ
ββββββββββββββββββββββββββββββββββββ
β FastAPI Backend Services β
β - Device auto-registration β
β - Real-time WebSocket handlers β
β - Buffer management (15-sec) β
ββββββββββββ¬ββββββββββββββββββββββββ
β
ββββββββ΄βββββββ
βΌ βΌ
ββββββββββββββ ββββββββββββββββ
β ML Models β β PostgreSQL β
β ECG LSTM β β + Timescale β
β SpO2 LSTM β β DB (vitals) β
β Risk Score β β relations β
ββββββββ¬ββββββ ββββββββ¬ββββββββ
β β
ββββββββ¬ββββββββ
βΌ
βββββββββββββββββββββββ
β Backend Services β
β - AI Insights β
β - Predictions β
β - Risk Scoring β
ββββββββββββ¬βββββββββββ
β
βββββββββββββββΌββββββββββββββ
βΌ βΌ βΌ
ββββββββββββ ββββββββββββ ββββββββββββ
β WebSocketβ β REST API β βTelemedicine
β Streamingβ β Polling β β Interface
ββββββββββββ ββββββββββββ ββββββββββββ
β β β
βββββββββββββββΌββββββββββββββ
βΌ
ββββββββββββββββββββββββ
β React Frontend β
β - Doctor Dashboard β
β - Patient Details β
β - Real-time Charts β
β - AI Insights View β
β - Admin Panel β
ββββββββββββββββββββββββ
| Layer | Technology |
|---|---|
| Sensors & Hardware | ESP32, AD8232 (ECG), MAX30102 (SpOβ) |
| Sensor Firmware | Arduino C++ (WearablePatch.ino) |
| Real-Time Communication | WebSocket (WSv1), HTTP/1.1 REST, JSON |
| Backend Framework | FastAPI (Python 3.8+) |
| Databases | PostgreSQL 13+, TimescaleDB 2.0+ |
| ML & Inference | TensorFlow/Keras, NumPy, SciPy, Scikit-learn |
| Frontend Framework | React 18+, Vite, React Router |
| Styling | Tailwind CSS 3+, Chart.js |
| HTTP Client | Axios |
| Container Orchestration | Docker Compose |
| Authentication | JWT tokens, bcrypt hashing |
| Monitoring | System logs, audit trails |
Cognivus-Labs-Dev/
β
βββ hardware/ # ESP32 firmware & sensor libraries
β βββ WearablePatch/
β β βββ WearablePatch.ino # Main ESP32 sketch
β β βββ ECGSensor.h/cpp # AD8232 integration (250 Hz)
β β βββ SpO2Sensor.h/cpp # MAX30102 integration
β β βββ WebSocketServer.h/cpp # Real-time streaming (port 81)
β β βββ APIServer.h/cpp # REST API (port 80, JSON-only)
β β βββ WiFiManager.h/cpp # WiFi handling & data transmission
β β βββ CommandHandler.h/cpp # Remote troubleshooting
β β βββ SystemMonitor.h/cpp # Memory & performance tracking
β β βββ Config.h/cpp # Configuration parameters
β β βββ python_clients/ # Test scripts (api_client, websocket_client)
β βββ firmware_core/
β βββ firmware_core.ino
β
βββ web-app/
β βββ backend/ # FastAPI REST API + ML inference
β β βββ app/
β β β βββ main.py # FastAPI app setup (port 8000)
β β β βββ core/
β β β β βββ config.py # Environment variables & settings
β β β β βββ database.py # SQLAlchemy ORM setup
β β β β βββ auth.py # JWT authentication
β β β β βββ dependencies.py # Dependency injection
β β β βββ models/ # Database models (SQLAlchemy)
β β β β βββ patient.py # Patient profiles & medical history
β β β β βββ user.py # Doctors, staff, admins
β β β β βββ device.py # ESP32 device registration
β β β β βββ vital_timeseries.py # Time-series data (TimescaleDB)
β β β β βββ prescription.py # Medication orders
β β β β βββ clinical_note.py # Medical notes
β β β β βββ ai_insight.py # AI predictions & recommendations
β β β β βββ staff_task.py # Nursing staff task queue
β β β β βββ telemedicine.py # Consultation infrastructure
β β β βββ api/routes/ # API endpoints (19 route files)
β β β β βββ auth.py # User login, JWT tokens
β β β β βββ admin_auth.py # Admin login
β β β β βββ patients.py # Patient CRUD, medical history
β β β β βββ patient_vitals.py # Vital signs history
β β β β βββ prescriptions.py # Prescription management
β β β β βββ clinical_notes.py # Doctor notes
β β β β βββ ai_insights.py # Digital-twin predictions
β β β β βββ staff_tasks.py # Task management
β β β β βββ telemedicine.py # Consultation scheduling
β β β β βββ devices.py # Device auto-registration
β β β β βββ admin_devices.py # Device debugging & monitoring
β β β β βββ admin_users.py # User management
β β β β βββ admin_system.py # System health metrics
β β β β βββ ecg_websocket.py # Real-time ECG with ML
β β β β βββ spo2_websocket.py # Real-time SpOβ with ML
β β β β βββ vitals_websocket.py # Combined vitals streaming
β β β β βββ live_vitals.py # HTTP polling alternative
β β β βββ services/ # Business logic & ML inference
β β β βββ ecg_ml_inference.py # ECG arrhythmia detection
β β β βββ spo2_ml_inference.py # SpOβ trend prediction
β β β βββ patient_risk_scoring.py # Digital-twin risk engine
β β β βββ buffer_manager.py # Sliding window buffer
β β β βββ notification.py # Alert systems
β β βββ requirements.txt # Python dependencies
β β βββ run.py # Dev server runner
β β βββ run_ecg_feeder.py # Simulation: ECG data feeder
β β βββ run_oxygen_feeder.py # Simulation: SpOβ data feeder
β β βββ docker-compose.yml # Container orchestration
β β βββ Dockerfile # Backend image definition
β β
β βββ frontend/ # React SPA with Vite
β βββ src/
β β βββ pages/
β β β βββ DoctorDashboard.jsx # Doctor main dashboard
β β β βββ PatientDetail.jsx # Patient detailed view
β β β βββ PatientsPage.jsx # Patient list & search
β β β βββ PrescriptionsPage.jsx # Prescription management
β β β βββ AIInsightsPage.jsx # AI recommendations
β β β βββ TelemedicinePage.jsx # Video consultation
β β β βββ AdminDashboard.jsx # System admin panel
β β β βββ ... (more pages)
β β βββ components/ # Reusable UI components
β β β βββ ECGChart.jsx # Live ECG visualization
β β β βββ SpO2Monitor.jsx # SpOβ trending
β β β βββ VitalsPanel.jsx # Multi-vital display
β β β βββ AlertNotifications.jsx
β β β βββ ... (40+ components)
β β βββ hooks/
β β β βββ useWebSocket.js # WebSocket connection
β β β βββ useAPI.js # REST API calls
β β β βββ useAuth.js # Auth context
β β β βββ usePatient.js # Patient data management
β β βββ services/ # API client services
β β β βββ patientService.js
β β β βββ vitalService.js
β β β βββ prescriptionService.js
β β β βββ aiInsightService.js
β β β βββ ... (more services)
β β βββ App.jsx # Main router (doctor/staff/patient views)
β β βββ AdminApp.jsx # Admin router (/sys/*)
β β βββ index.css # Global styles
β βββ vite.config.js # Main app build config
β βββ vite.config.admin.js # Admin panel build config
β βββ package.json # Main app dependencies
β βββ package.admin.json # Admin app dependencies
β βββ tailwind.config.js
β βββ postcss.config.js
β βββ index.html # Main app entry
β βββ index-admin.html # Admin panel entry
β βββ public/ # Static assets
β
βββ ml-models/
β βββ ecg-analysis/ # ECG arrhythmia detection
β β βββ models/ # Trained models
β β β βββ ecg_lstm_model_savedmodel/ # TensorFlow SavedModel format
β β β βββ best_ecg_model.keras # Keras H5 format
β β βββ data/
β β β βββ MIT-BIH Arrhythmia Dataset (100-105.hea/atr/xws)
β β βββ main.py # Training pipeline
β β βββ model.py # Model architecture
β β βββ test.py # Validation script
β β
β βββ spo2-prediction/ # SpOβ trend forecasting
β βββ model/
β β βββ model_small.keras # Lightweight variant
β β βββ model_medium.keras # Balanced variant
β β βββ spo2model.py # Model definition
β β βββ training/ # Training notebooks
β βββ data/ # Training datasets
β βββ test/ # Validation scripts
β
βββ mobile-app/
β βββ Test_Flutter_Project/ # Flutter patient app (in development)
β βββ lib/ # Dart app code
β βββ pubspec.yaml # Flutter dependencies
β βββ ... (platform-specific code)
β
βββ database/
β βββ init_timescaledb.sql # TimescaleDB hypertable setup
β βββ create_test_patient.sql # Test data scripts
β βββ ... (migration files)
β
βββ tests/
β βββ ECG-Sensor-Test/ # Hardware integration tests
β βββ monitor.py, monitor-v2.py
β βββ real-time.py
β
βββ requirements.txt # Root Python dependencies
βββ convert_model_to_savedmodel.py # Model format conversion utility
βββ test_ecg_flow.py # End-to-end ECG pipeline test
βββ ECG_QUICKSTART.md # Quick setup guide
βββ README.md # This file
| Feature | Status | Details |
|---|---|---|
| Real-Time ECG Monitoring | β Full | WebSocket streaming @ 25 Hz, 15-sec windows with LSTM inference |
| SpOβ Trend Tracking | β Full | WebSocket @ 0.5 Hz, LSTM predictions with decline alerts |
| Heart Rate Extraction | β Full | Real-time HR from ECG with variability metrics |
| Patient Management | β Full | CRUD, medical history, allergies, current medications, emergency contacts |
| Prescription Tracking | β Full | Creation, expiry alerts, compliance monitoring |
| Clinical Notes | β Full | Doctor/staff note creation with timestamps and patient linkage |
| AI Risk Scoring | β Full | Digital-twin approach combining 3 biomarkers with explainability |
| ECG Arrhythmia Detection | β Full | LSTM model trained on MIT-BIH database |
| SpOβ Hypoxia Prediction | β Full | Cost-sensitive LSTM with high recall on critical drops |
| Device Auto-Registration | β Full | ESP32 devices register via REST API without manual setup |
| WebSocket Dual-Stream | β Full | ECG + SpOβ + vitals on separate channels with multiplexing |
| Role-Based Access Control | β Full | Doctor, Nursing Staff, Admin with permission hierarchies |
| Admin Dashboard | β Full | System metrics, user management, device debugging |
| Telemedicine Infrastructure | π‘ Partial | Scheduling in place; video integration in development |
| Mobile App (Flutter) | π‘ In Dev | Patient-facing monitoring interface |
| Automated Medicine Dispenser | π΄ Not Impl. | Planned for Phase 2 |
| Body Temperature Tracking | π΄ Not Impl. | Hardware not integrated |
| Blood Pressure Monitoring | π΄ Not Impl. | Hardware not integrated |
Required Components:
- ESP32 DevKit
- AD8232 ECG sensor module
- MAX30102 pulse oximeter module
- USB Serial adapter for programming
Flash Firmware:
# Arduino IDE or PlatformIO
# Open: hardware/WearablePatch/WearablePatch.ino
# Select Board: ESP32 Dev Module
# Configure pins in Config.h
# Flash to deviceWiFi Configuration:
Update Config.h with your network credentials:
const char* WIFI_SSID = "Your_SSID";
const char* WIFI_PASSWORD = "Your_Password";
const char* BACKEND_IP = "192.168.x.x";
const int BACKEND_PORT = 8000;Prerequisites:
- Python 3.8+
- PostgreSQL 13+ with TimescaleDB extension
- pip/poetry
Installation:
cd web-app/backend
pip install -r requirements.txtEnvironment Variables (.env file):
DATABASE_URL=postgresql://user:pass@localhost:5432/cognivus
TIMESCALEDB_ENABLED=true
JWT_SECRET=your-secret-key
MQTT_BROKER=localhost
MQTT_PORT=1883
Database Initialization:
python init_db.py
# Creates tables, hypertables, and indexesStart Server:
python run.py
# Runs on http://localhost:8000
# Swagger UI: http://localhost:8000/docsWith Docker:
docker-compose -f docker-compose.yml upInstallation:
cd web-app/frontend
npm installDevelopment Server:
npm run dev
# Opens on http://localhost:5173Admin Panel (Separate Build):
npm run dev:admin
# Opens on http://localhost:5174Production Build:
npm run build
# Main app: dist/index.html
# Admin app: npm run build:adminSimulate Device Data:
# Terminal 1: ECG data feeder
python web-app/backend/run_ecg_feeder.py --patient-id 1 --device-id ECG_SIM_001
# Terminal 2: SpOβ data feeder
python web-app/backend/run_oxygen_feeder.py --patient-id 1 --device-id SPO2_SIM_001Monitor Real-Time Streams:
cd hardware/WearablePatch/python_clients
python websocket_client.py # Connect to ESP32 WebSocketPOST /api/auth/loginβ Doctor/staff loginPOST /api/auth/admin-loginβ Admin loginPOST /api/auth/logoutβ Logout
GET /api/patientsβ List all patientsGET /api/patients/{id}β Patient detailsPOST /api/patientsβ Create patientPUT /api/patients/{id}β Update patient
GET /api/patients/{id}/vitals?start=&end=β Vital historyPOST /api/patients/{id}/vitalsβ Log manual vitalsGET /api/patients/{id}/vitals/latestβ Last reading
ws://localhost:8000/ws/ecg/{patient_id}β ECG stream + ML predictionsws://localhost:8000/ws/spo2/{patient_id}β SpOβ stream + trend analysisws://localhost:8000/ws/vitals/{patient_id}β Combined vitals
GET /api/patients/{id}/ai-insightsβ Risk scores and recommendationsGET /api/patients/{id}/ai-insights/latestβ Most recent prediction
GET /api/prescriptions?patient_id=β Patient medicationsPOST /api/prescriptionsβ Create prescriptionPUT /api/prescriptions/{id}β Update prescription
GET /api/admin/devicesβ All registered devicesPOST /api/admin/devices/{id}/commandβ Send remote commandGET /api/admin/usersβ All usersGET /api/admin/system/healthβ System metrics
Using ECG Model Directly:
from app.services.ecg_ml_inference import ECGMLInference
inference = ECGMLInference()
# Expects: 5400 samples (15 sec @ 360 Hz)
prediction = inference.predict(ecg_signal)
# Returns: {"is_abnormal": bool, "confidence": float, "heart_rate": float}Using SpO2 Model:
from app.services.spo2_ml_inference import SpO2MLInference
inference = SpO2MLInference()
# Expects: variable-length sequence with 19 features
prediction = inference.predict(spo2_sequence)
# Returns: {"prediction": float, "trend": str, "confidence": float}cd ml-models/ecg-analysis
python main.py --epochs 50 --batch-size 32TimescaleDB Hypertable (vitals_timeseries):
- Optimized for fast time-range queries
- Automatic data compression on older records
- Automatic data retention policies
Key Indexes:
(time, patient_id)β Fast patient vital retrieval(patient_id, time DESC)β Latest vitals lookup(device_id, time DESC)β Device data debugging
β
JWT Authentication β Secure API token generation and validation
β
Password Hashing β bcrypt with salt
β
Role-Based Access Control β Doctor/staff/admin hierarchies
β
CORS Configuration β Frontend-backend isolation
β
Input Validation β Pydantic models for all API inputs
β
SQL Injection Prevention β SQLAlchemy ORM parameterized queries
β
Audit Logging β All data access logged to system_logs
β
Device Auto-Registration β Cryptographic device tokens
Test Real-Time ECG Flow:
python test_ecg_flow.pyTest Device Integration:
cd tests/ECG-Sensor-Test
python monitor.pyAPI Testing via Swagger UI:
Navigate to http://localhost:8000/docs and test endpoints interactively.
| Component | Metric | Target |
|---|---|---|
| ECG Processing | Latency (end-to-end) | < 5 seconds |
| SpOβ Inference | Throughput | 1 prediction / 2 sec |
| WebSocket | Message rate | 25 Hz (ECG), 0.5 Hz (SpOβ) |
| Database | Query time (patient vitals) | < 100 ms |
| ML Model | Inference time (ECG) | < 2 sec |
| ML Model | Inference time (SpOβ) | < 1 sec |
| Uptime | System availability | 99.9% |
Device Connection Issues:
# Check device status
curl http://<ESP32_IP>/status
# Get real-time diagnostics
curl http://<ESP32_IP>/healthBackend Logs:
# Check FastAPI logs
docker-compose logs -f backend
# View database queries
export LOG_LEVEL=DEBUG; python run.pyFrontend Issues:
# Check browser console for WebSocket errors
# Inspect Network tab for API calls
# Verify backend is running on port 8000Phase 1 (Current): β
- Real-time ECG/SpOβ monitoring
- LSTM-based ML inference
- Multi-role web dashboard
- Patient/prescription/clinical note management
Phase 2 (Planned):
- π΄ Automated medicine dispenser integration
- π‘ Telemedicine video consultation (in development)
- π‘ Mobile app (Flutter) patient interface
- Temperature and blood pressure sensors
Phase 3 (Future):
- Wearable health alerts (push notifications)
- Advanced predictive modeling (multivariate forecasting)
- Inter-hospital data exchange protocols
- Wearable device firmware OTA updates
Core Team Members:
- Wathsala Dewmina β Embedded Systems Engineer, Sensor Integration, Lead Backend Development, Security & Authentication
- Rivindu Ashinsa β Lead AI/ML Engineer, Research & Development, Model Inference, All AI/ML Implementation
- Dulina Samarathunga β Frontend Developer, Backend Assistant
- Lakindu Minosha β Flutter App Development, Progressive Web App, Mobile App for Vitals Monitoring
- Wooshan Gamage β Hardware Engineering Support, Backend Assistance
Institution:
Computing School (Bachelor of Science in Computer Science)
IIT (Informatics Institute Of Technology), Sri Lanka
Official Website: π cognivusmed.com
Academic Project: Second Year SDGP (Software Development Group Project) at IIT
This project is developed for academic research and educational purposes as a capstone project at IIT.
Use Restrictions:
- Educational and research use only
- Requires permission for commercial deployment
- Not approved for clinical use without regulatory certification
Β© 2025-2026 Smart IoT Healthcare Monitoring System Team. All rights reserved.
- ECG_QUICKSTART.md β Quick start guide for ECG streaming
- ECG_MONITORING_IMPLEMENTATION.md β Detailed ECG implementation guide
- Swagger API Docs β Interactive at
http://localhost:8000/docs - Frontend Component Library β Built-in Storybook integration
- Hardware Documentation: hardware/WearablePatch/README.md
- Backend Services: web-app/backend/requirements.txt
- Frontend Packages: web-app/frontend/package.json
- ML Model Details: ml-models/ecg-analysis/main.py
If you use this project for academic research, please cite:
@software{cognivus_2025,
title = {Smart IoT-Based Healthcare Monitoring System},
author = {Dewmina, W. and Ashinsa, R. and Gamage, W. and Samarathunga, D. and Minosha, L.},
year = {2025},
school = {Informatics Institute of Technology, Sri Lanka},
type = {Capstone Project}
}For Bug Reports: Open an issue with:
- Reproduction steps
- Screenshots/logs
- ESP32 firmware version
- Backend version
For Feature Requests: Describe the use case and expected behavior.
For Contributors:
- Follow PEP 8 (Python) and Prettier (JavaScript) style guides
- Write tests for new features
- Document API changes in Swagger
- Update this README for architecture changes
Made with β€οΈ for advancing healthcare technology