Skip to content
Vduce Technology
Client confidential · For 4CT · international airport, India

Smart washroom platform for an international airport

IoT sensors, an edge PC on site, a live dashboard with the health of every washroom at a glance, and a Flutter app that sends cleaning staff where they are needed.

  • Python
  • MQTT
  • Azure IoT Hub
  • NestJS
  • Fastify
  • MongoDB
  • Next.js
  • Flutter
  • Riverpod
  • OneSignal
4
sensor types per washroom
4
apps: API, back office, portal, mobile

01

The challenge

An airport terminal is one of the hardest places to keep a washroom clean. Footfall changes with every flight wave; a washroom near a busy gate can go from fine to unacceptable in twenty minutes, while one at the end of a pier stays untouched for hours. Fixed cleaning rounds cannot keep up, and passengers notice. Washroom cleanliness is one of the criteria in airport passenger-satisfaction surveys.

The operator already had sensors, but their data sat in a vendor portal nobody watched. The existing web application was a legacy Angular project that had become hard to change. The team needed to know which washroom needs attention right now, and to prove to the airport that service levels were met.

02

What we built

We built a complete washroom operations system, from the sensor to the cleaner's phone:

  • Sensors in every washroom: occupancy, odour, indoor air quality and people counting.
  • An edge PC on site that collects all sensor messages over MQTT and forwards them to the cloud.
  • A live operations dashboard showing the health of every washroom at a glance, colour-coded, with drill-down to a single washroom and a single sensor.
  • A Flutter mobile app for cleaning staff that receives tasks, confirms check-ins with photos and escalates problems.
  • A back office for configuration (terminals, washrooms, devices, thresholds, shifts) and a customer portal for reports and SLAs.

Alongside the new system we modernised the legacy Angular application into a split-repository architecture: separate API, back office, portal and mobile app, each with its own release cycle.

03

Architecture & stack

  • Edge: a Python service on an industrial PC subscribes to the sensor topics over MQTT and forwards every message to Azure IoT Hub. If the uplink fails, messages are written to a local outbox of up to 3 GB and replayed with exponential back-off. Delayed messages are flagged, so dashboards never mistake old data for live data.
  • API: NestJS on Fastify with MongoDB, JWT authentication, rate limiting, health checks, scheduled jobs and OpenAPI documentation.
  • Back office and portal: Next.js with TanStack Query and Table, charts for trends and multilingual UI.
  • Mobile: Flutter with Riverpod, go_router, secure storage, offline awareness and OneSignal push notifications.
  • Deployment: scripted, repeatable deployments per environment and site.

04

The outcome

The system runs in production at the airport. Supervisors see every washroom on one screen instead of walking the terminal, cleaning staff receive tasks based on actual usage, and management gets data-backed reports instead of paper sign-off sheets.

The modernised architecture also made the product reusable: it became the washroom module of Smart DigiBuild. Want to know more? Read how IoT improves facility operations.

Similar project? Let’s talk.

We have solved this kind of problem before. Tell us about yours and get a realistic plan within days.

Let’s talk