Skip to main content
Johannes
All projects

AEMADS

2nd Place, Bootcamp TETI 2026MobileJuly 2026

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.

AEMADS Technician Portal with power monitoring charts and shop heatmap
AEMADS anomaly events history log
AEMADS sign in control room screen
AEMADS account registration screen

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

  1. Python generatorSimulates four production lines, including spikes and drifts.
  2. Supabase databaseStores energy logs and damage reports.
  3. REST polling (2 s)The app asks for the latest readings on a short timer.
  4. Android appShows charts, the alarm map, and the damage report form.
A simulator feeds the database, and the app reads from it every two seconds.

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.