A polished, trainer-focused countdown and break-management tool built with Flask, HTML/CSS, and JavaScript.
Designed for virtual and hybrid classrooms, the Virtual Break Timer provides instructors with a clean, modern interface to manage class start times, breaks, lab sessions, and custom countdowns — fully optimized for Microsoft Teams screen sharing, with zero scrollbars and a consistent card-style UI.
- Trainers share the timer through Microsoft Teams (or any screen-sharing tool)
- Students cannot interact with or modify the timer
-
Large, high-contrast timer display
-
Automatically adjusts urgency:
⚠️ Warning under 5 minutes- 🔥 Urgent under 1 minute (pulse animation)
Includes built-in timers for:
- Class Starts (30 minutes)
- Coffee Break (15 minutes)
- Lunch Break (60 minutes)
- Lab Session (30 minutes)
- Custom time duration
- Custom title
- Custom description/agenda
- “Coming Up Next” section
- Seamless expansion panel with zero scrollbars
-
Rotates images every 30 seconds
-
Designed for:
- Branding
- Promotions
- Classroom announcements
- 5-second alert when timer reaches zero
- Audio unlocks automatically on first interaction (browser-compliant)
- Matching Welcome + Timer screens
- Status pill badge
- Hover tooltips for all icons
- Centered welcome screen; left-aligned timer screen when active
- Zero scrollbars anywhere in the application
| Component | Technology |
|---|---|
| Backend | Flask (Python) |
| Frontend | HTML, CSS, JavaScript |
| Icons | Font Awesome |
| Audio | MP3 alert |
| Images | Rotating background gallery |
| Deployment | Any environment supporting Python/Flask |
/project-root
│
├── app.py # Flask backend server
├── index.html # Main UI
├── styles.css # Primary stylesheet
├── timer.js # Frontend timer logic
│
├── /static
│ ├── styles.min.css # minified CSS
│ ├── timer.min.js # minified JS
│
├── /logo
│ └── Logo.png
│
├── /images # Background images
│ ├── image1.jpg
│ ├── image2.jpg
│ └── ...
│
└── /sound
└── classic_alarm_clock.mp3
pip install flaskpython app.pyVisit:
http://localhost:5000
Or on your LAN:
http://YOUR-IP:5000
Click any icon:
- 📅 Class Starts
- ☕ Coffee Break
- 🍔 Lunch Break
- 🧪 Lab Session
- Click the gear icon
- Set:
- Hours & minutes
- Title
- Description
- Next-up message
- Click Save
- Timer loads automatically
First click unlocks browser-restricted audio policy.
George Liberatos Lead Systems Engineer Cloud & Infrastructure | Flask Developer | Training Technology Specialist
Pull requests and feature suggestions are welcome. For major changes, open an issue first to discuss your approach.
Released under the MIT License.