Skip to content

fangfufu/toastmaster-timer

Repository files navigation

Toastmasters Timer

A professional, full-screen countdown timer for Toastmasters meetings — built as a Progressive Web App (PWA) with no backend required. It can be installed on your device for quick access and offline use.

▶ Live Demo

Desktop View Mobile View

Features

Session Setup

  • Pre-populated agenda — ships with a complete default Toastmasters meeting agenda (Toastmaster introduction, speakers, table topics, evaluators, reports, etc.) so you can start timing immediately.
  • Fully editable slots — each slot has fields for Role, Name, Min time, and Max time.
  • Add & remove slots — add new speaker slots with one click; new slots are inserted after the currently selected row for convenient reordering.
  • Delete any slot — remove slots you don't need with the trash button.

Timer

  • Full-screen colour transitions — the background smoothly changes colour as time elapses:
    • Green — minimum time reached (speaker has spoken long enough).
    • Amber — halfway between minimum and maximum time.
    • Red — maximum time reached (speaker should wrap up).
    • Flashing red — bell time (30 seconds past maximum), with a pulsing red/dark flash to grab attention.
  • Large countdown display — timer text is sized at 15vw so it's readable from across the room.
  • Screen Wake Lock — automatically requests a wake lock so the device screen stays on during timing.
  • Progressive Web App (PWA) — can be installed on mobile (iOS/Android) and desktop (Chrome/Edge/Safari) for a native-like experience.
  • Offline support — once visited or installed, the app works entirely offline without an internet connection.

Time Tracking

  • Time used indicator — after each timed segment, a colour-coded progress bar appears on the setup screen showing what percentage of the bell time the speaker used.

Session Management

  • Save session — export the entire session (roles, names, times, recorded durations) to a YAML file.
  • Load session — import a previously saved YAML file to restore a session.

Design

  • Responsive layout — works on desktop and mobile with dedicated breakpoints at 850 px and 600 px.
  • Dark glassmorphism UI — modern dark theme with translucent glass panels, subtle borders, and smooth transitions.
  • No build step — pure HTML, CSS, and vanilla JavaScript; just open index.html or deploy to any static host.

Installation (PWA)

You can install this timer as a Progressive Web App (PWA) to use it offline and launch it directly from your home screen or desktop.

Installation

Android

There are three ways of installing this app on Android.

Google Play store

This app is currently undergoing testing on Google Play store. If you want to join the testing, do the followings:

  1. Important - Join this group first: https://groups.google.com/g/fufu-test-action-group
  2. Join using Google Play on Android: https://play.google.com/store/apps/details?id=com.fufufang86.toastmastertimer
  3. Join on the Web: https://play.google.com/apps/testing/com.fufufang86.toastmastertimer

Direct APK install

You can download the latest APK here: https://github.com/fangfufu/toastmaster-timer/releases/

Chrome

  1. Open the live demo in Chrome.
  2. Tap the three-dot menu (⋮) in the top-right corner.
  3. Tap Add to Home screen or Install app.
  4. Follow the on-screen prompt to install.

iOS (Safari)

  1. Open the live demo in Safari.
  2. Tap the Share button at the bottom of the screen.
  3. Scroll down and tap Add to Home Screen.
  4. Confirm by tapping Add in the top-right corner.

Desktop (Chrome / Edge)

  1. Open the live demo in Chrome or Edge.
  2. Look for the install icon (a screen with a down arrow) in the right side of the address bar.
  3. Click it and select Install.
  4. The app will now be available in your applications list and works entirely offline.

Usage

  1. Open the live demo or serve the files locally.
  2. Edit the agenda — fill in speaker names and adjust min/max times as needed. Use the Add and Delete buttons to manage roles.
  3. Click on a row to select a slot, then click Start.
  4. The timer runs full-screen. Press the Stop button (square icon) when the speaker finishes.
  5. Review the summary, then click Back to Setup to time the next speaker.
  6. Use Save and Load to persist your work between meetings.

Colour Thresholds

Threshold Definition
Green Speaker has reached the minimum time
Amber Halfway between minimum and maximum time
Red Speaker has reached the maximum time
Bell 30 seconds past maximum — background flashes

Technology

Component Technology
Markup HTML5
Styling Vanilla CSS (glassmorphism, CSS variables, keyframe animations)
Logic Vanilla JavaScript (ES6+), Service Workers
PWA Web App Manifest, Service Worker caching
Icons Lucide
Fonts Inter via Google Fonts
Session files js-yaml (loaded from CDN)

Licence

This project is licensed under the GNU General Public License v3.0 — see the LICENSE file for details.