-
This project was built for NMDC (National Mineral Development Corporation) - India’s largest iron ore mining PSU
https://www.nmdc.co.in/ -
This project was selected as Top 5 National Project for the Smart India Hackathon (SIH) Grand Finale 2025
-
The deployed project can be accessed here too: https://www.comminusense.tech/
-
Problem statement regarding this project was SIH 25210 Title: Efficient Energy Use in Iron Ore Mining Operations
Organization: Ministry of Steel (MoS) -
This project is a collaborative effort of 6 members
The project was built collaboratively, with each member contributing to different components including system design, frontend, backend, ML models, simulation, and integration. -
This project was developed exclusively for the Smart India Hackathon Grand Finals and will not remain under active development beyond the hackathon.
-
A detailed YouTube video explaining the architecture, ML workflows, simulations, and implementation will be published as part of our SIH project series.
(YouTube link will be added here once released.) -
CommuniSense was built through extensive domain research, planning, system architecture design, and large-scale implementation, combining industrial IoT, time-series analytics, ML optimization, and digital twin simulations.
-
This README and related documentation will be updated incrementally for clarity and completeness.
ComminuSense is a software platform that ingests high-frequency machine telemetry (real sensors or simulated IoT), stores time-series data, runs ML models (energy optimizer, predictive maintenance), exposes model recommendations and simulation results (digital twin), and provides a role-based dashboard for Operators / Engineers / Maintenance / Management. The system supports simulated closed-loop control (for demo) and a path to safe on-site integration (edge gateway, IEC/ISA security guidance
Operator — view live telemetry, acknowledge alarms, start/stop local simulator runs. (Can’t change model thresholds.)
Shift Supervisor — all Operator + accept/implement AI suggestions, manual setpoint override.
Process Engineer — can run simulations, view ML model explainability data, change recommended setpoint tolerances, export reports.
Maintenance Engineer — view PdM alerts, schedule maintenance tasks, download vibration logs.
Plant Manager — view KPIs, confirm major parameter changes, approve maintenance budgets.
NMDC Admin / Auditor — view audit logs, system health; higher-level governance access (read-only to raw data, download permitted).
- to be updated
- Install Docker & Docker Compose
docker-compose up --build- Open http://localhost:3000 (frontend)
- Run
python simulator/iot_simulator.pyto publish telemetry (optional)
- frontend: Next.js dashboard
- ingestion-service: MQTT/REST ingestion into Influx
- api-service: main API & auth
- model-service: model predictions
- Follow coding standards; run tests before PR.
- See docs/ for architecture & SIH submission.
Team Synapsee — arshtiwari12345@gmail.com
comminusense/
├── comminusense-next/ # [EXISTING] Frontend (Next.js)
│ └── [... your existing frontend structure ...]
│
├── backend/ # [NEW] Express.js Core Backend
│ ├── src/
│ │ ├── app.js # Express app setup
│ │ ├── server.js # Server entry point
│ │ ├── config/
│ │ │ ├── env.js # Environment variables
│ │ │ ├── db.js # PostgreSQL connection (Sequelize)
│ │ │ ├── mqtt.js # MQTT broker config
│ │ │ ├── logger.js # Winston logger
│ │ │ └── rbac.js # Role definitions & permissions
│ │ │
│ │ ├── routes/
│ │ │ ├── index.js # Route aggregator
│ │ │ ├── auth.routes.js # /api/auth/*
│ │ │ ├── telemetry.routes.js # /api/telemetry/*
│ │ │ ├── metrics.routes.js # /api/metrics/*
│ │ │ ├── maintenance.routes.js # /api/maintenance/*
│ │ │ ├── simulate.routes.js # /api/simulate/*
│ │ │ ├── user.routes.js # /api/users/*
│ │ │ └── report.routes.js # /api/reports/*
│ │ │
│ │ ├── controllers/
│ │ │ ├── auth.controller.js
│ │ │ ├── telemetry.controller.js
│ │ │ ├── metrics.controller.js
│ │ │ ├── maintenance.controller.js
│ │ │ ├── simulate.controller.js
│ │ │ ├── user.controller.js
│ │ │ └── report.controller.js
│ │ │
│ │ ├── services/
│ │ │ ├── auth.service.js # JWT, login, refresh
│ │ │ ├── telemetry.service.js # Time-series queries
│ │ │ ├── metrics.service.js # KPI calculations
│ │ │ ├── maintenance.service.js # Ticket CRUD
│ │ │ ├── simulation.service.js # Forward to FastAPI
│ │ │ ├── ml.service.js # HTTP client to FastAPI
│ │ │ ├── user.service.js # User CRUD
│ │ │ └── report.service.js # CSV/PDF export
│ │ │
│ │ ├── models/ # Sequelize models (PostgreSQL)
│ │ │ ├── index.js # Model loader
│ │ │ ├── User.js
│ │ │ ├── Role.js
│ │ │ ├── Permission.js
│ │ │ ├── RolePermission.js
│ │ │ ├── Plant.js
│ │ │ ├── Machine.js
│ │ │ ├── MaintenanceTicket.js
│ │ │ └── AuditLog.js
│ │ │
│ │ ├── middlewares/
│ │ │ ├── auth.middleware.js # Verify JWT
│ │ │ ├── rbac.middleware.js # Check permissions
│ │ │ ├── error.middleware.js # Global error handler
│ │ │ └── validator.middleware.js # Request validation
│ │ │
│ │ ├── utils/
│ │ │ ├── apiResponse.js # Standardized responses
│ │ │ ├── jwt.js # Token generation/verification
│ │ │ ├── mqttHandler.js # MQTT subscriber
│ │ │ ├── httpClient.js # Axios wrapper
│ │ │ └── csvExporter.js # CSV generation
│ │ │
│ │ ├── jobs/ # Background tasks (node-cron)
│ │ │ ├── maintenanceCheck.job.js # Check PdM alerts
│ │ │ └── analyticsAggregation.job.js
│ │ │
│ │ └── sockets/
│ │ └── telemetry.socket.js # WebSocket for live data
│ │
│ ├── scripts/
│ │ ├── seedRoles.js # Initialize roles & permissions
│ │ └── seedMachines.js # Sample plant/machine data
│ │
│ ├── tests/ # Jest tests
│ │ ├── auth.test.js
│ │ └── telemetry.test.js
│ │
│ ├── .env.example
│ ├── .gitignore
│ ├── package.json
│ ├── Dockerfile
│ └── README.md
│
├── fastapi_backend/ # [EXISTING] Python ML/Simulation
│ ├── app.py # FastAPI main
│ ├── maintenance_model/
│ │ ├── router.py
│ │ └── maintenance_model.pkl
│ ├── energy_model/ # [NEW] Energy optimizer
│ │ ├── router.py
│ │ └── energy_model.pkl
│ ├── simulator/ # [NEW] Digital twin
│ │ ├── router.py
│ │ └── surrogate_model.pkl
│ ├── requirements.txt
│ └── Dockerfile
│
├── iot_simulator/ # [NEW] MQTT simulator
│ ├── simulator.py
│ ├── config.json
│ └── requirements.txt
│
├── docker-compose.yml # Full stack orchestration
├── .env.shared # Shared environment vars
└── README.md # Main project README