kevintonb.

2021 · Health Promotion Board, Singapore

National Steps Challenge™

A high availability booking platform for Season 6 of Singapore’s national physical-activity programme, built to absorb an entire country arriving inside a single month.

350k+bookings processed in launch week

Two phone screens from the National Steps Challenge app: an eligibility and location search screen, and an appointment detail screen with a collection QR code.

01 · the problem

The brief set the bar in numbers rather than adjectives: process over 500,000 bookings in less than a month, manage capacity individually across more than 300,000 separate slots, and track inventory per collection location. Two constraints made it harder than the volume alone suggests. Every booking is against a real tracker on a real shelf, so overselling a slot means turning somebody away at a counter. And the audience is the general public, including elderly citizens who will use this once, so the interface had to be usable by people the design cannot make any assumptions about.

02 · what i built

Four surfaces, not one, because four different people needed to do four different jobs against the same inventory. Citizens got a web app to find a location, book a slot, exchange a tracker from a previous season and reach support. HPB staff got an admin panel with full control over admins and users, locations, the schedule and availability of every individual time slot, and stock. Support executives got their own portal for the cases that arrive by phone. And each collection location got a scoped view of just its own bookings, so a counter is not looking at the whole country. The client was built in Flutter and React on AWS Amplify, backed by Node.js and MongoDB on AWS Elastic, with admin-level controls held in reserve for tightening capacity if the covid-19 restrictions of late 2021 moved again.

Citizen booking
Find a collection location, check eligibility, book a slot, and exchange a tracker from a previous season. One journey, designed to be completed once by somebody who will never see it again.
Slot-level capacity
Over 300,000 time slots, each with its own capacity, rather than a single daily cap per site. Capacity is what stops a queue forming at a counter, so it is managed at the resolution the counter actually works at.
Inventory per location
Stock tracked separately for every collection point, because a booking is a promise about a physical tracker sitting on a specific shelf.
HPB admin panel
Full CRUD over locations, schedules, availability and inventory, plus management of admins and users. Includes the controls to tighten capacity in response to changing restrictions.
Support portal
A dedicated surface for customer support executives handling discrepancies and making appointments on a citizen’s behalf.
Per-location portals
Each site gets a scoped admin view of its own bookings and stock, so staff at a counter work with their own day rather than the national picture.

03 · what happened

The platform took more than 550,000 bookings, of which over 350,000 were processed, moved upwards of 1.5TB of data, and drew more than 4 million impressions in a single day.

  • 550k+bookings taken
  • 4M+impressions in one day
  • 1.5TB+data transmitted
  • 300k+slots managed individually

Questions

What people ask

What is the National Steps Challenge?

A Singapore government physical activity programme run by the Health Promotion Board, first held in 2015 and the first of its kind at national population scale. Residents aged seventeen and over get a free fitness tracker, pair it with the Healthy 365 app, and earn rewards for walking. Season 6, the one this platform served, ran from October 2021 to March 2022.

Why did a walking programme need a booking platform?

Because the tracker is a physical object collected in person. Every participant needs an appointment at a collection point that has stock, and when a national programme opens, the entire eligible population turns up inside the first fortnight. The brief was over 500,000 bookings in under a month.

How was it kept up under that load?

Capacity was managed per slot rather than per site, across more than 300,000 individual slots, with inventory tracked separately at every location. The platform was load-tested with JMeter before launch and watched in production through Sentry and New Relic.

Who used the system besides citizens?

Three other groups, each with their own surface: HPB staff running locations, schedules and stock; customer support executives handling cases that arrived by phone; and staff at each collection point, working from a view scoped to that location alone.