

Measures phone habits without ever seeing your apps
A privacy-first analytics system that measures how you actually use your phone: an Android app, a Node backend, and an admin dashboard, with app names anonymised on-device so the server never sees which apps you open.
Role
Software Engineer
Organisation
CSE Connect
Industry
Mobile · Privacy · Analytics
Focus
Android · Backend · Dashboard
/ Problem
Understanding how people use their phones is genuinely useful, but the data is deeply personal: which apps someone opens, and when. The challenge was to build useful analytics without the server ever learning which apps a person actually uses.
/ Solution
An Android app in Kotlin records app-usage sessions on device and hashes every package name with a per-user HMAC key that never leaves the phone, so the server only ever stores anonymous hashes. Sessions sync over authenticated HTTPS (JWT) to a Node and Express backend that computes daily aggregates and threshold-based anomaly alerts on screen time, session count, and late-night use. A web admin dashboard surfaces the charts and alerts, and the whole stack self-hosts with Docker and MongoDB.
Privacy could not be bolted on at the end; it had to shape the data model from the first line. Hashing package names on-device, enforcing 7-day retention in three places (on-device pruning, server-side TTL indexes, and query-level cutoffs), and gating every sync behind explicit consent all had to be designed in before any data was collected. Building the guarantee in from the start was far easier than retrofitting it, and it made the threat model something I could actually reason about.



