Skip to content

Bounty #1: Background Pomodoro Timer (single HTML) - #18

Open
brok-best wants to merge 1 commit into
AkongaLabs:mainfrom
brok-best:bounty/pomodoro-timer-html
Open

Bounty #1: Background Pomodoro Timer (single HTML)#18
brok-best wants to merge 1 commit into
AkongaLabs:mainfrom
brok-best:bounty/pomodoro-timer-html

Conversation

@brok-best

Copy link
Copy Markdown

Bounty Solution Submission

Fixes #1

Problem Statement

Build a minimal single-page pomodoro/countdown timer whose notification sound still plays when the Chrome tab is backgrounded or minimized, with accurate timekeeping under background timer throttling.

Solution Approach

  • Absolute end timestamp (endAt = Date.now() + remaining) instead of decrementing seconds. Chrome may throttle intervals in background tabs; wall-clock math stays correct.
  • Web Audio API unlocked on the Start user gesture (AudioContext.resume()).
  • Near-silent keep-alive oscillator while running to reduce context suspension.
  • Synthesized chime at completion (+ short retry) and optional desktop Notification backup.
  • Pure single file: no dependencies, no network.

Technical Implementation

  • Package Manager: N/A — bounty Pomodoro Timer Prototype - Development Instructions #1 specifies a single HTML file (no React/Bun app required for this issue)
  • Database Setup: None
  • Environment Variables: None
  • Build Process: None — open solutions/pomodoro-timer/index.html in Chrome

Testing Evidence

  • Test Coverage: Manual matrix in solutions/pomodoro-timer/TESTING.md
  • Critical Flows Tested: start/pause/reset, invalid minutes, background tab deadline accuracy, audio unlock path, graceful audio failure
  • Test Results: Static structure checks pass; interactive Chrome tests documented in TESTING.md (background audio depends on OS/browser autoplay policy after gesture)

Demo Evidence

Setup Instructions

  1. Clone this branch or download solutions/pomodoro-timer/index.html
  2. Open the file in recent Chrome desktop
  3. Enter minutes → Start (unlocks audio) → optional allow notifications
  4. Switch tabs to verify background completion

Database Setup

None.

Architectural Decisions

  • Wall-clock deadline over tick counting (handles Chrome background throttling)
  • In-file synthesized chime (no external audio asset / CDN)
  • Keep-alive + Notification as defense-in-depth for autoplay/OS limits
  • Documented hard limits of browser autoplay in TESTING.md

Bun/Yarn Justification

Not applicable — issue #1 deliverable is a single HTML file.


Pre-submission Checklist:

I confirm this submission meets all requirements and is ready for review.

/claim #1

cc @adrianmurage

Wall-clock end-time countdown and Web Audio unlock/keep-alive so the
chime can fire when the Chrome tab is backgrounded. Includes testing notes.
@brok-best

Copy link
Copy Markdown
Author

Payment readiness (Binance)

Ready to receive via Binance per your PAYMENT.md (USDT/USDC only).

  • Preferred asset: USDT or USDC
  • Preferred network: BSC (or ETH if you prefer)
  • EVM deposit address (Binance): 0x644b0e6b834622f769263b5c7b319472eada4760
  • GitHub: @brok-best

Can provide Binance UID + account email on request in a private channel or as you prefer for the transfer form.

cc @adrianmurage — happy to walk through a live demo of background-tab chime if useful.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Pomodoro Timer Prototype - Development Instructions

1 participant