— 2025—Present · Lead developer — senior design
Smart Pause
ML-powered Android app that detects problematic smartphone usage patterns and delivers timely wellness interventions.
Problem
Smartphone addiction is a growing issue — most people cannot recognize their own problematic usage patterns in real time. The standard response is willpower, but that doesn’t scale.
Smart Pause uses the phone’s own signals to identify risky usage moments and deliver timely interventions before a harmful session compounds further.
Approach
The system has three parts:
- Android client (Kotlin): Tracks three behavioral signals continuously — session duration (uninterrupted screen time in the current session), pickup frequency (how many times the phone was unlocked in the last hour), and time of day (late-night usage detection). Only the numeric feature vector is sent to the backend — no raw usage logs leave the device.
- FastAPI backend (Docker + Google Cloud Run): Accepts feature vectors and classifies usage into three risk levels: NORMAL, AWARENESS, and ACTIVE. Intervention constraints are enforced here: maximum 5 per day, minimum 2-hour gap between interventions, quiet hours from 10 PM to 8 AM.
- Random Forest on StudentLife dataset: Trained on real-world behavioral data from college students. Intervention messages rotate across three types — reflective questions, actionable challenges, and contextual info — to prevent alert fatigue.
After each prediction, results and intervention history are stored in Firebase Firestore.
Lessons
- Feature selection matters more than model complexity — a small set of behavioral and temporal features was enough to build a useful classifier; a deeper model would have needed more data than the StudentLife dataset provides.
- Intervention design is as important as prediction — a correct risk signal delivers no value if the notification irritates or gets ignored. Rotating message types and enforcing quiet hours came from this insight.
- FastAPI + Cloud Run is near-perfect for a student budget: costs are effectively zero when there’s no traffic.
- Senior design pacing: while a hardware issue was being resolved, the ML pipeline kept moving.