← All projects

Case study

Toastmasters Timer

A web app that lets the club Timer run live meeting timing, manage the speaker roster and print the report, all from a browser on a projector screen.

  • PHP
  • MySQL
  • Docker
  • GitHub Actions

The problem

Toastmasters meetings are time-sensitive. Agendas change at the last minute, speakers swap places, and the Timer has to signal the whole room without losing focus. Paper sheets invite errors, and a generic stopwatch knows nothing about roles or thresholds.

I built this to fix three things: a flexible roster, colour signals everyone can see, and an automatic report.

How it works

Colour cards

Role-specific thresholds drive a full-screen card everyone in the room can read.

Flexible roster

Type a sequence number to move anyone; conflicts resolve automatically. Edit names, roles and times inline.

Round Robin

A 20-second limit with a single clean red cue and no early alerts.

A4 report

One click gives a print-ready report with out-of-time highlighting.

Custom roles

Save your own event types, such as a Q&A session, with their own thresholds.

Accounts and limits

Each user sees only their own meetings. Retention limits and export-before-delete keep free hosting tidy.

Setting up a meeting

Timing rules

RoleGreenYellowRed
Prepared Speech5:006:007:00
Ice Breaker Speech4:005:006:00
Table Topic1:001:302:00
Evaluator2:002:303:00
Round Robinn/an/a0:20
Customconfigurableconfigurableconfigurable

The report

Print-ready A4 timer report
The A4 report, ready to print or save as PDF.

Under the hood

  • Plain PHP, JavaScript and CSS, with no framework to maintain.
  • The stopwatch runs in the browser, so timing does not depend on the network.
  • Thresholds come from role definitions stored in the database.
  • Docker Compose for a one-command local setup; deployed to shared hosting by a GitHub Actions FTP job.
  • Hardened for shared hosting: blocked source folders, HTTPS redirect, per-account data.

Screenshots show sample data and the Toastmasters International logo, which belongs to Toastmasters International.

Let's work together

I'm looking for a junior software, web or DevOps role in Sri Lanka or remote. The fastest way to reach me is email.