NOTICE: This project is licensed for personal, non-commercial use only under the Creative Commons Attribution-NonCommercial 4.0 International (CC BY-NC 4.0) license. Commercial use is strictly prohibited. See the LICENSE file for details.
A world-class cross-platform break reminder application designed to help users maintain healthy work habits through smart break scheduling and customizable notifications.
- Smart Break Scheduling: Custom timeline-based break scheduling with repeat patterns
- Manual Break Duration: Set custom break duration (default: 15 minutes)
- Customizable Intervals: Set work duration (default: 20 minutes) and break duration (default: 1 minute)
- Snooze & Skip: Flexible break management with snooze and skip options
- Sound Alerts: Customizable notification sounds for break reminders
- Theme Support: Light, Dark, and System theme options
- Progress Visualization: Real-time progress bars and visual indicators
- Settings Persistence: Automatic saving of user preferences and timeline
- Break Popup: Enhanced break notification with countdown and next break time
- Multiple Break Slots: Define unlimited break times throughout the day
- Repeat Patterns: Daily, weekdays, weekends, or one-time breaks
- Overlap Prevention: Intelligent validation prevents conflicting break times
- Visual Timeline: Easy-to-use interface for managing break schedules
- Real-time Monitoring: Continuous monitoring of upcoming breaks
- Linux: Native support with AppImage packaging
- Windows: Executable and installer packages
- macOS: DMG installer with code signing
Linux:
# AppImage
chmod +x Break-Assistant-1.0.0-x86_64.AppImage
./Break-Assistant-1.0.0-x86_64.AppImage
# DEB package
sudo dpkg -i break-assistant_1.0.0_amd64.deb
# RPM package
sudo rpm -i break-assistant-1.0.0-1.fc41.noarch.rpmWindows:
# Executable
Break-Assistant-1.0.0.exe
# MSI Installer
msiexec /i Break-Assistant-1.0.0.msimacOS:
# App Bundle
# Drag 'Break Assistant.app' to Applications folder
# DMG Installer
# Double-click Break-Assistant-1.0.0.dmg# Clone repository
git clone https://github.com/break-assistant/break-assistant.git
cd break-assistant
# Install dependencies
pip install -r requirements.txt
# Run application
python src/main.py-
Launch the Application
- Start Break Assistant from your applications menu or command line
-
Set Up Your Timeline
- Click "Timeline" to open the timeline manager
- Add break slots with your preferred times
- Set duration and repeat patterns
- Save your timeline
-
Configure Settings
- Click "Settings" to customize the application
- Choose your preferred theme
- Enable/disable sound notifications
- Adjust timer settings
-
Start Monitoring
- The application will automatically monitor your timeline
- Receive notifications when breaks are due
- Use snooze or skip options as needed
- OS: Linux, Windows 10+, macOS 10.14+
- Python: 3.8 or higher
- RAM: 50MB minimum
- Storage: 10MB available space
- CustomTkinter: Modern UI framework
- Pygame: Audio playback
- Pillow: Image processing
- PyInstaller: Application packaging
break-assistant/
βββ src/ # Source code
β βββ controllers/ # Application controllers
β βββ models/ # Data models
β βββ views/ # UI components
β βββ utils/ # Utility modules
β βββ audio/ # Audio resources
β βββ settings_page.py # Settings page
β βββ main.py # Application entry point
βββ tests/ # Test suite
βββ docs/ # Documentation
βββ resources/ # Assets and resources
βββ build_appimage/ # AppImage build files
βββ build_all_linux.py # Linux build system
βββ build_appimage.py # Linux AppImage
βββ build_deb.py # Linux DEB package
βββ build_rpm_final.py # Linux RPM package
βββ build_rpm.py # Alternative RPM build
βββ build_rpm_simple.py # Simple RPM build
βββ build_windows.py # Windows executable/MSI
βββ build_macos.py # macOS app bundle/DMG
βββ requirements.txt # Python dependencies
βββ pyproject.toml # Project configuration
βββ setup.py # Package setup
βββ break-assistant.spec # RPM spec file
βββ test_app.py # Test application
βββ debug_settings.py # Debug configuration
βββ create_icon.py # Icon creation utility
βββ roadmap.txt # Development roadmap
# Clone repository
git clone https://github.com/hmjahid/break-assistant.git
cd break-assistant
# Create virtual environment
python -m venv venv
source venv/bin/activate # Linux/macOS
# or
venv\Scripts\activate # Windows
# Install dependencies
pip install -r requirements.txt
pip install -e ".[dev]"
# Run tests
pytest
# Run application
python src/main.py# Build all Linux package types (AppImage, DEB, RPM)
python build_all_linux.pypython build_appimage.pypython build_deb.pypython build_rpm_final.pypython build_windows.pypython build_macos.pyAll built packages are automatically copied to the current directory:
Linux Packages:
- AppImage:
Break-Assistant-1.0.0-x86_64.AppImage - DEB:
break-assistant_1.0.0_amd64.deb - RPM:
break-assistant-1.0.0-1.fc41.noarch.rpm
Windows Packages:
- Executable:
Break-Assistant-1.0.0.exe - Installer:
Break-Assistant-1.0.0.msi(requires cx_Freeze)
macOS Packages:
- App Bundle:
Break Assistant.app - DMG:
Break-Assistant-1.0.0.dmg(requires create-dmg)
Linux:
# AppImage
chmod +x Break-Assistant-1.0.0-x86_64.AppImage
./Break-Assistant-1.0.0-x86_64.AppImage
# DEB package
sudo dpkg -i break-assistant_1.0.0_amd64.deb
# RPM package
sudo rpm -i break-assistant-1.0.0-1.fc41.noarch.rpmWindows:
# Executable
Break-Assistant-1.0.0.exe
# MSI Installer
msiexec /i Break-Assistant-1.0.0.msimacOS:
# App Bundle
# Drag 'Break Assistant.app' to Applications folder
# DMG Installer
# Double-click Break-Assistant-1.0.0.dmgpytest --cov=src --cov-report=html- Unit Tests:
pytest -m unit - Integration Tests:
pytest -m integration - UI Tests:
pytest -m ui
# Generate HTML coverage report
pytest --cov=src --cov-report=html
open htmlcov/index.html # View report- User Manual: Complete user guide
- Developer Guide: Development documentation
- API Reference: Code documentation
- Testing Guide: Testing procedures
We welcome contributions! Please see our Developer Guide for development guidelines.
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests for new functionality
- Run the test suite
- Submit a pull request
- Follow PEP 8 style guidelines
- Add type hints to all functions
- Write comprehensive docstrings
- Maintain 85%+ test coverage
This project is licensed under the MIT License - see the LICENSE file for details.
- CustomTkinter: Modern UI framework
- Pygame: Audio functionality
- PyInstaller: Cross-platform application packaging
- AppImage: Linux distribution format
- cx_Freeze: Windows MSI installer creation
- create-dmg: macOS DMG installer creation
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Documentation: Wiki
Please include:
- Operating system and version
- Python version
- Steps to reproduce
- Expected vs actual behavior
- Error messages or logs
Made with β€οΈ for better work-life balance
