A responsive web-based Pomodoro timer application built to help users manage their time using the Pomodoro Technique. This project was created as part of issue #1 to demonstrate a complete web application with modern responsive design.
- 25-minute work sessions with visual countdown timer
- 5-minute short breaks between work sessions
- 15-minute long breaks after every 4 work sessions
- Session counter to track completed Pomodoros
- Start/Pause/Reset controls for timer management
- Responsive design that works on desktop, tablet, and mobile
- Visual progress indicator with animated circular progress ring
- Clean, modern interface with intuitive controls
- Session type indicators with color-coded themes
- Smooth animations and transitions
- Adjustable timer durations for work and break periods
- Auto-start options for seamless workflow
- Sound notifications with mute/unmute capability
- Settings persistence using browser localStorage
-
Simple HTTP Server (Python):
python3 server.py
Then visit: http://localhost:12000
-
Alternative - Any HTTP Server:
# Using Python's built-in server python3 -m http.server 8000 # Using Node.js http-server (if installed) npx http-server
├── index.html # Main application HTML
├── styles.css # Responsive CSS styles
├── script.js # JavaScript application logic
├── server.py # Simple Python HTTP server
├── PRD.md # Product Requirements Document
├── tests/ # Test suite
│ ├── test.html # Browser-based test runner
│ ├── test-suite.js # Comprehensive test suite
│ └── simple-test.js # Core functionality tests
└── README.md # This file
- Start a Session: Click the "Start" button to begin a 25-minute work session
- Pause/Resume: Click "Pause" to pause the timer, "Start" to resume
- Reset: Click "Reset" to restart the current session
- Settings: Click "Settings" to customize timer durations and preferences
- Session Flow: The app automatically transitions between work and break sessions
- Spacebar: Start/Pause the timer
- Mobile-first approach with progressive enhancement
- CSS Grid and Flexbox for flexible layouts
- Breakpoints:
- Mobile: < 480px
- Tablet: 480px - 768px
- Desktop: > 768px
- Modern browsers (Chrome, Firefox, Safari, Edge)
- Mobile browsers (iOS Safari, Chrome Mobile)
- Uses Web Audio API for notifications
- localStorage for settings persistence
- Lightweight vanilla JavaScript (no frameworks)
- Minimal resource usage
- Fast loading times
- Smooth 60fps animations
The application includes comprehensive tests covering:
cd tests
node simple-test.js
Tests include:
- Timer logic and time formatting
- Session duration calculations
- Progress calculation accuracy
- Session switching logic
Open tests/test.html
in a browser to run the full test suite including:
- Timer initialization
- Settings persistence
- State management
- Progress ring calculations
- Class-based JavaScript with clear separation of concerns
- Event-driven design for user interactions
- State management for timer and session tracking
- Modular CSS with responsive design patterns
PomodoroTimer
class: Main application logic- Progress ring SVG: Visual timer representation
- Settings modal: User customization interface
- Responsive layout: Mobile-first design system
See PRD.md
for detailed future feature plans including:
- Session statistics and analytics
- Task integration and notes
- Browser notifications
- Progressive Web App (PWA) capabilities
- Custom themes and colors
This project follows standard web development practices:
- Test your changes using the provided test suite
- Ensure responsive design works across devices
- Maintain clean, readable code
- Update tests for new functionality
This project is part of the Test-Open-Hands-AI repository for demonstrating AI-assisted development capabilities.