┌─────────────────────────────────────────────────────────────┐
│  ██████╗ ███████╗██╗   ██╗    ████████╗██╗███╗   ███╗███████╗
│  ██╔══██╗██╔════╝██║   ██║    ╚══██╔══╝██║████╗ ████║██╔════╝
│  ██║  ██║█████╗  ██║   ██║       ██║   ██║██╔████╔██║█████╗  
│  ██║  ██║██╔══╝  ╚██╗ ██╔╝       ██║   ██║██║╚██╔╝██║██╔══╝  
│  ██████╔╝███████╗ ╚████╔╝        ██║   ██║██║ ╚═╝ ██║███████╗
│  ╚═════╝ ╚══════╝  ╚═══╝         ╚═╝   ╚═╝╚═╝     ╚═╝╚══════╝
│                                                                
│  [STATUS: ACTIVE] [VERSION: 2.0] [MODE: PRODUCTION]          
└─────────────────────────────────────────────────────────────┘
A military-grade 15-minute sprint timer engineered for maximum productivity and uninterrupted focus sessions.
Precision-engineered focus timer built for developers who demand reliability, accuracy, and zero distractions. No bloat. No bullshit. Just pure, focused development sprints.
[✓] 15-minute sprint timer with millisecond precision
[✓] Pomodoro cycle: Enforced 10-min breaks after 4 sessions
[✓] Web Worker background execution (tab-independent)
[✓] Persistent state across page reloads/crashes
[✓] Enforced audio + visual notifications
[✓] Smart extension warnings (2nd & 3rd+ extensions)
[✓] Session counter tracking (X/4 to break)
[✓] Dark/Light theme with localStorage persistence
[✓] Active task tracking with pulsating indicators
[✓] One-touch keyboard shortcuts (Enter to start)
[✓] Task completion logging & history
[✓] Zero external dependenciesFrontend:      Pure Vanilla JavaScript (ES6+)
Styling:       CSS3 with CSS Variables
Threading:     Web Worker API
Storage:       localStorage API
Notifications: Web Notifications API + HTML5 Audio
Architecture:  Event-driven, stateful persistence# Clone the repository
git clone https://github.com/bobvasic/Rapid-Development-Timer-Assistant.git
# Navigate to directory
cd Rapid-Development-Timer-Assistant
# Serve locally (Python 3)
python3 -m http.server 8080
# OR use any static server
npx serve .
# Access at: http://localhost:8080┌──────────────────────────────────────────────────────┐
│ Session 1 (15 min) → Complete/Extend               │
│ Session 2 (15 min) → Complete/Extend               │
│ Session 3 (15 min) → Complete/Extend               │
│ Session 4 (15 min) → BREAK ENFORCED                │
│                                                      │
│ ☕️ Break Modal → Start 10-Minute Break             │
│ Break Timer (10 min) → Notification + Audio        │
│ → Cycle resets → Start new session                 │
└──────────────────────────────────────────────────────┘
Break Enforcement Logic:
- After 4 completed sessions (1 hour), break modal appears
- User must start break before continuing
- Complete/Extend buttons hidden until break taken
- Break completion resets session counter to 0/4
- All state persists across page reloads
┌──────────────────────────────────────────────────────┐
│ 1st Extension  → ✓ Normal (no warning)             │
│ 2nd Extension  → ⚠️ ORANGE WARNING (focus!)         │
│ 3rd+ Extension → 🚨 RED ALERT (finish it!)          │
└──────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────┐
│ Different Tab      → ✓ Timer continues          │
│ Different Window   → ✓ Notification appears     │
│ Different App      → ✓ OS-level alert + audio   │
│ Page Reload        → ✓ Timer restores           │
│ Audio Playback     → ✓ Enforced after user act  │
└─────────────────────────────────────────────────┘
- System Notifications: OS-level alerts appear regardless of active window
- Audio Enforcement: Unlocked on first interaction, bypasses autoplay policies
- Persistent Alerts: Notifications require manual dismissal
- Multi-Attempt Playback: Retry mechanism ensures audio plays
- Timestamp-Based: Accurate time tracking using Date.now()
- Auto-Save: State saved every second to localStorage
- Crash Recovery: Automatically restores timer on page reopen
- Elapsed Calculation: Smart math recovers exact remaining time
Main Thread              Web Worker Thread
    │                           │
    ├──[START TIMER]───────────>│
    │                           │
    │<────[TICK UPDATE]─────────┤ (every 1s)
    │                           │
    │<────[COMPLETE]────────────┤ (at 0s)
    │                           │
🌙 Dark Mode         → Automatic theme switching
🟠 Active Indicator  → Pulsating orange status dot
📊 Task Log          → Complete history with timestamps
⌨️  Keyboard Shortcuts → Enter to start, instant flow
🔔 Visual Feedback   → Real-time countdown display
- Enter Task Name → Type your focus objective
- Press Enter or click "Start 15-Minute Sprint"
- Stay Focused → Timer runs in background
- Get Notified → Audio + visual alert at completion
- Complete or Extend → Mark done or add 15 more minutes
┌─────────────────────────────────────────────────────┐
│ 1. Complete 4 focus sessions (15 min each)         │
│ 2. Break modal appears (enforced)                  │
│ 3. Click "☕️ Start 10-Minute Break"                │
│ 4. Break countdown begins (10:00 → 0:00)           │
│ 5. Notification: "Break Complete!"                 │
│ 6. Enter new task and start next cycle             │
└─────────────────────────────────────────────────────┘
Session Counter: Top-right displays Sessions: X/4
- Increments after each completed 15-minute session
- Resets to 0/4after break completion
- Persists across page reloads
[Enter]  → Start timer (when in task input field)
[Click]  → Toggle dark/light mode (theme button)
| Feature | Status | Notes | 
|---|---|---|
| Background Timing | [ACTIVE] | Web Worker immune to throttling | 
| Audio Playback | [ENFORCED] | Multi-retry with user interaction unlock | 
| State Recovery | [PERSISTENT] | Survives crashes, reloads, closures | 
| Cross-Tab Sync | [OPERATIONAL] | Notification system OS-level | 
| Accuracy | [±1s] | Timestamp-based calculation | 
✓ Chrome/Chromium 90+
✓ Firefox 88+
✓ Safari 14+
✓ Edge 90+
✓ Mobile Browsers (iOS/Android)
Rapid-Development-Timer-Assistant/
├── index.html          # Main application
├── timer-worker.js     # Web Worker for background timing
├── favicon.svg         # App icon
└── README.md          # This file
[✓] No external API calls
[✓] No tracking or analytics
[✓] No cookies
[✓] No data transmission
[✓] 100% client-side execution
[✓] localStorage only (local machine)Found a bug? Have an enhancement?
# Fork the repo
git fork https://github.com/bobvasic/Rapid-Development-Timer-Assistant.git
# Create feature branch
git checkout -b feature/your-enhancement
# Commit changes
git commit -m "feat: your enhancement description"
# Push and create PR
git push origin feature/your-enhancementMIT License - Use freely, modify as needed, attribution appreciated.
┌────────────────────────────────────────┐
│  System Status: [●] ONLINE            │
│  Timer Accuracy: [±1s]                │
│  Notification: [●] ACTIVE             │
│  Audio System: [●] OPERATIONAL        │
│  Web Worker: [●] RUNNING              │
│  State Persist: [●] ENABLED           │
└────────────────────────────────────────┘
Stay focused. Ship code. Repeat. 🚀
⭐ Star this repo | 🐛 Report Bug | 💡 Request Feature
Made with ⚡ by developers, for developers