All work

Case study 02 / 05 · Smart Air, Bangladesh · 2025

Smart Air

Air quality for Bangladesh, from sensor stations to an assistant you can ask.

Role
Led admin panel, mobile app and backend
Company
Metafic
Platforms
Android, iOS, Web admin, Backend
Link
smartairfilters.com

In short

  1. 01Led development of the admin panel, the mobile app and the backend.
  2. 02Built the admin panel for users, admins, chats, help requests, invitations and blog posts.
  3. 03Added an AI assistant that answers air-quality questions from live station data.

Context

Smart Air runs air-quality monitoring stations across Bangladesh. They needed people to see readings near them on their phone, a team-facing panel to run the service, and a way for anyone to ask questions about the air without reading charts.

What I built

  • Mobile app (React Native, Expo). Stations near you with their current AQI, station detail and history charts, and an in-app assistant.
  • Admin panel (React 19, MUI, TanStack Query). Users, admin roles, assistant chats, help requests, invitations and blog posts, behind admin and super-admin roles.
  • Backend (FastAPI, MySQL). Station data and the assistant API used by both clients.

The assistant

Most people don’t know what an AQI of 158 means. The assistant takes a plain question (“What’s the air like in Dhaka?”) and answers from the live readings in MySQL, using a language model to turn the question into a query. It replies in terms of cigarettes smoked, a unit people feel, and offers two or three follow-up questions so the conversation keeps going without typing.

Decisions worth noting

  • Show cigarettes, not only AQI. Same data, but people act on a number they can feel.
  • Query live data instead of a document index. Readings change every hour, so the assistant queries the database directly rather than answering from a stale snapshot.
  • One admin for everything the team touches. Users, content and support live in one panel, so the team doesn’t juggle tools.

Previous: Eazeebox

Want to talk about this work, or something like it?