A modern, configurable Pomodoro timer web app built with Blazor WebAssembly. Installable as a PWA on mobile devices.
✅ Core Timer Functionality
- Start, pause, resume, and reset timer sessions
- Automatic phase transitions (work → break → long break)
- Configurable work/break/long break durations
- Customizable number of cycles
✅ Configuration & Presets
- Built-in presets (Classic Pomodoro, Quick Focus)
- Custom session configuration
- Save custom configurations as presets
- Delete personal presets
- Persistent settings (saved to localStorage)
- Enable/disable long breaks
✅ Progressive Web App (PWA)
- Installable on mobile devices
- Offline functionality with service worker
- Native app-like experience
✅ Notifications & Alerts
- Browser notifications for phase transitions
- Permission-based notification system
- Visual and audio feedback
✅ Modern UI
- Responsive design for mobile/desktop
- Beautiful gradient timer display
- Intuitive controls and phase indicators
cd /home/dealen/Dev/PomodoroTimer
dotnet restore
dotnet build
dotnet runOpen the URL printed by dotnet run (usually https://localhost:5001) to use the app.
- Open the app in a mobile browser (Chrome, Safari, etc.)
- Look for "Add to Home Screen" or "Install App" option
- Follow the prompts to install
- Access the app like a native mobile app
- Choose a preset or configure custom durations
- Save custom configurations as named presets for future use
- Click Start to begin your Pomodoro session
- Focus during work phases, relax during breaks
- Get notified when phases transition
- Complete cycles to finish your session
The app includes:
TimerService— Core timer logic and state managementConfigStorageService— User preset management and storageLocalStorageService— Persistent configuration storageNotificationService— Browser notification integration- Component-based UI with Blazor
- xUnit tests for core timer functionality
dotnet test ./PomodoroTimer.TestsBuilt with ❤️ using Blazor WebAssembly and .NET 9