VIC Alert Server is a Node.js/Express backend and real-time dashboard for an IoT assistive safety system designed to support visually impaired users with obstacle monitoring, SOS alerts, environmental updates and caregiver visibility.
👤 Author: Abdulbasit Abdulalim
The VIC Alert System connects an ESP32-based wearable device, smartphone GPS data and a cloud dashboard. The server receives telemetry from the device, stores the latest status in memory and exposes a dashboard for caregivers to monitor safety events.
This project demonstrates backend API design, IoT telemetry handling, real-time dashboard rendering and assistive-technology product thinking.
ESP32 Wearable Device
|
| telemetry: distance, zone, SOS, weather, GPS
v
Node.js / Express Server
|
|-- /update receives device updates
|-- /data returns latest device state
|-- / caregiver dashboard
v
Caregiver Dashboard / Mobile Browser- Express.js telemetry server
- Device update endpoint for ESP32/smartphone data
- Real-time JSON data endpoint
- Caregiver dashboard rendered from the server
- SOS history tracking
- Location history tracking
- Obstacle distance and safety zone monitoring
- Weather/environmental status display
- CORS and JSON/form-body support
- Render/VPS deployment-ready structure
| Area | Technologies |
|---|---|
| Runtime | Node.js |
| Backend | Express.js |
| Middleware | CORS, JSON/body parsing |
| Dashboard | Server-rendered HTML/CSS/JS |
| Maps | Leaflet frontend integration |
| Deployment Target | Render, Railway, Fly.io, VPS or similar Node hosting |
Returns the caregiver monitoring dashboard.
Returns the current device state, SOS history and location history.
Example response:
{
"distance": 120,
"zone": "SAFE",
"sosCount": 0,
"sosActive": false,
"systemStatus": "ACTIVE",
"lat": 7.85,
"lng": 9.78,
"hasLocation": true,
"sosHistory": [],
"locationHistory": []
}Accepts telemetry updates through query parameters.
Example:
/update?distance=100&zone=SAFE&sosActive=false&lat=7.85&lng=9.78&weather=Clear&temperature=28Accepts telemetry updates through JSON or form body.
Example body:
{
"distance": 80,
"zone": "CAUTION",
"sosActive": true,
"sosCount": 1,
"lat": 7.85,
"lng": 9.78,
"weather": "Cloudy",
"temperature": 27
}git clone https://github.com/basgenix4u/vic-alert-server.git
cd vic-alert-servernpm installnpm startOpen http://localhost:3000.
This version only requires an optional PORT variable.
PORT=3000Deploy to any Node.js hosting service.
Recommended steps:
- Set the start command to
npm start. - Set
PORTif the host requires it. - Deploy the server.
- Configure the ESP32 device to send updates to the deployed
/updateURL. - Open the deployed dashboard URL on the caregiver device.
- Persist telemetry in a database
- Add authentication for caregiver dashboard
- Add device registration and API keys
- Add WebSocket/SSE real-time updates
- Add SMS/email/push notifications for SOS events
- Add multi-device support
- Add automated tests and CI checks
- Add Docker support
This project is an assistive technology prototype. It should not be used as the only safety mechanism in critical situations without proper hardware validation, testing, redundancy and emergency-response planning.
Built and maintained by Abdulbasit Abdulalim.
- GitHub: https://github.com/basgenix4u
- Website: https://alimswrite.com
- LinkedIn: https://www.linkedin.com/in/abdulbasit-abdulalim-94a701354
Built by Abdulbasit Abdulalim