Skip to content

Add Basic Pomodoro Timer with Interactive Menu#14

Merged
swaparup36 merged 4 commits intocyclohexane-2:mainfrom
yuvc21:feature/basic-pomodoro
Dec 9, 2025
Merged

Add Basic Pomodoro Timer with Interactive Menu#14
swaparup36 merged 4 commits intocyclohexane-2:mainfrom
yuvc21:feature/basic-pomodoro

Conversation

@yuvc21
Copy link
Contributor

@yuvc21 yuvc21 commented Nov 24, 2025

Add Basic Pomodoro Timer
Summary: This Pull Request introduces a new Pomodoro timer feature to StudentHub. It includes an interactive menu and configurable study/work intervals, aligning with the project’s goal of helping students manage their study sessions effectively.

Updated main.py: Added pomodoro command and CLI flags (--sessions, --work, --break-minutes, --no-sound).

Updated README with Pomodoro usage examples and documentation.

How It Works:
Interactive session: python main.py pomodoro
Non-interactive session: python main.py pomodoro --sessions 3 --work 30 --break-minutes 10

Testing:
Sound and notification tested on Linux (working well, added the required functionality for Windows and macOS, yet to be tested).
Tested on Linux (Arch) terminal. Verified work/break countdown logic, notification fallback behavior, ASCII splash rendering, interactive menu navigation, CLI integration in main.py. Edge cases validated: Ctrl-C interruption, sound disabled, quick-test mode with fractional minutes.

Related Issue:
Addresses: #9

Summary

This Pull Request introduces a new Pomodoro timer feature to StudentHub.
It includes an interactive menu, ASCII splash screen, and configurable study/work intervals, aligning with the project’s goal of helping students manage study sessions effectively.

Key Features Added

New pomodoro.py module implementing:

Pomodoro countdown logic (work + break cycles)

Cross-platform notifications (Linux/macOS/Windows)

Sound alerts with automatic fallback

ASCII splash screen at startup

Interactive menu with options:

Start session

Configure durations

Toggle sound

Quick-test mode

Updated main.py:

Added pomodoro command

Added CLI flags (--sessions, --work, --break-minutes, --no-sound)

README updated with Pomodoro usage examples and documentation

How It Works

Users can start an interactive Pomodoro session:

python main.py pomodoro


Or run a non-interactive quick session:

python main.py pomodoro --sessions 3 --work 30 --break-minutes 10

Testing

Tested on Linux (Arch) terminal

Verified:

Work/break countdown logic

Notification fallback behavior

ASCII splash rendering

Interactive menu navigation

CLI integration (main.py)

Edge cases tested:

Ctrl-C interruption

Sound disabled

Quick-test mode with fractional minutes

Related Issue

This PR addresses and enhances:
Issue cyclohexane-2#9 — Add Pomodoro Timer Feature

Additional Notes

The implementation is modular and can be extended later (e.g., long breaks, saving settings).

No breaking changes introduced to existing commands.
@swaparup36
Copy link
Contributor

LGTM. Good job. Thanks!

@swaparup36 swaparup36 merged commit f2c4207 into cyclohexane-2:main Dec 9, 2025
@yuvc21
Copy link
Contributor Author

yuvc21 commented Dec 10, 2025

thanks.

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.

2 participants