AEMADS
An Android app that lets factory technicians watch machine power usage live and get alerted to problems.
- Android
- Kotlin
- Jetpack Compose
- Supabase
- Vico
- Python
The problem
In factories, electrical problems such as sudden power spikes or slow drifts in power quality can damage machines.
Monitoring usually happens in a central control room, so technicians on the floor hear about problems late.
What I built
AEMADS puts live power data on the technician's phone, with charts and a color-coded alarm map across four production lines: red for a spike, yellow for a drift.
Technicians can photograph damaged machines in the app, link the photo to the related alert, and export energy data as CSV or PDF.




The result
- Won 2nd place at Bootcamp TETI 2026, judged by external mentors.
- Built as a native Android app. The data feed is simulated by a Python generator, not by real factory equipment.
My role
Built the app architecture and implementation: MVVM with Jetpack Compose and StateFlow, polling Supabase for live readings, charts, and camera-based damage reporting.
Technical details
Tech stack
- Mobile
- Kotlin
- Jetpack Compose
- MVVM + StateFlow
- Vico charts
- Coil
- Backend
- Supabase (PostgreSQL + Storage)
- Simulation
- Python generator
Architecture
- Python generatorSimulates four production lines, including spikes and drifts.
- Supabase databaseStores energy logs and damage reports.
- REST polling (2 s)The app asks for the latest readings on a short timer.
- Android appShows charts, the alarm map, and the damage report form.
Key decisions
Polling every 2 seconds instead of WebSockets
Factory and campus networks often cut long-lived connections, and technicians walk through weak-signal areas. Short repeated requests recover on their own and keep the server load low.
Limitations
- Uses simulated data rather than a live factory feed.