Inspiration

Driver fatigue is one of the largest preventable causes of road fatalities in India, and it's concentrated in exactly the segments with the least protection — two-wheeler riders, who make up the majority of vehicles on Indian roads, and commercial truck drivers on long overnight hauls. Existing driver monitoring systems from companies like Bosch and Seeing Machines work well, but they're built into premium passenger cars with dedicated infrared camera hardware costing thousands of dollars — completely out of reach for the riders and small fleet operators who need it most. We wanted to know: could the smartphone every driver already owns do this job instead, for free?

What it does

RideAlert turns a driver's own Android phone into a fatigue-monitoring device. It watches for eye closure and yawning through the front camera, and cross-checks that against steering or handlebar drift patterns picked up by the phone's accelerometer and gyroscope. The two signals feed into a graduated fatigue-scoring system — Normal, Warning, Critical — so the driver gets an escalating audio and vibration alert well before things get dangerous, not just a single beep that's easy to tune out. Trip and fatigue data sync to a fleet dashboard, so operators can actually see fatigue trends across their drivers instead of only finding out after an incident.

How we built it

We started by benchmarking existing solutions — OEM driver monitoring systems, consumer smartphone apps, and academic prototypes — to make sure we were solving a real, unaddressed gap rather than reinventing eye-closure detection. That research shaped our core design decision: fuse two independent signals instead of relying on the camera alone, specifically to solve the night-driving blind spot that every existing smartphone app leaves unaddressed.

On the technical side, the Android app uses Google ML Kit for on-device facial detection and native sensor APIs for motion tracking, both running through a foreground service so monitoring survives backgrounding. The backend is a Spring Boot/NodeJS service with a PostgreSQL database, structured as one feature package per table with services depending on interfaces rather than each other's repositories directly, to keep the codebase clean as it grows. The fleet dashboard is built in React.

Challenges we ran into

The biggest challenge was designing for reliable detection at night, since camera-based eye tracking is known to degrade in low light — which is exactly when fatigue-related incidents are most common. We solved this by making the motion-based drift signal take over as the primary indicator whenever lighting conditions are poor, rather than losing the fatigue signal entirely.

The second challenge was scoping the backend properly. What started as a simple 3-table schema (drivers, trips, fatigue events) didn't hold up once we thought through what a real fleet product needs — operator accounts, vehicle records, device tracking, and sync reliability logging. We redesigned it into a 9-table schema with clear feature boundaries, which took more upfront planning but avoided a much bigger mess later.

What we learned

We learned that the hardest part of a project like this isn't the AI/ML piece — pretrained models like ML Kit handle facial detection well out of the box. The real engineering work is in the systems integration: fusing signals sensibly, designing a data model that scales past the demo, and being honest about what a "zero-hardware-cost" claim actually means versus where real costs (hosting, maintenance) still exist.

Built With

Share this project:

Updates

Submission history