A minimalist, deadline-driven productivity widget for developers. Connect your GitHub activity to accountability timers that only stop when you ship.
Set a coding goal, set a deadline, and watch the countdown tick. The timer only stops when you make the specific commit, close the issue, or merge the PR you committed to. It's "lofi-beats-to-code-to" meets high-stakes accountability.
- GitHub Integration: OAuth login and webhook-based goal verification
- Minimalist Design: Dark mode, glassmorphism, clean typography
- Real-time Countdowns: Monospaced timers that create focus
- Embeddable Widgets: Share your accountability publicly
- Progressive Web App: Install on mobile, works offline
-
Install dependencies:
pip install -r requirements.txt
-
Set up environment variables:
cp .env.example .env
Update .env with your own values (e.g. DATABASE_URL, SECRET_KEY, GITHUB_CLIENT_ID, GITHUB_CLIENT_SECRET).
-
Run the application:
python application.py
-
Open locally in your browser: Navigate to
http://localhost:5000 -
Run tests (optional):
pytest
The project includes automated tests using pytest to ensure code quality and prevent regressions.
-
Install test dependencies (included in requirements.txt):
pip install -r requirements.txt
-
Run the test suite:
pytest
-
Run tests with coverage:
pytest --cov=application --cov-report=html
tests/test_api.py: API endpoint tests (health check, etc.)tests/test_models.py: Model unit tests (Goal.to_dict(), etc.)tests/conftest.py: Shared fixtures for Flask app and database setup
Tests use an in-memory SQLite database for isolation and speed.
- Login with GitHub - Authenticate via OAuth2
- Create a Goal - Set description, deadline, repo, and completion condition
- Start Coding - The countdown begins immediately
- Ship Your Code - Push commits, close issues, or merge PRs
- Goal Complete - Timer stops, success message appears
- "Implement user authentication" - Complete when commit contains
#auth-complete - "Fix critical bug" - Complete when issue #42 is closed
- "Ship new feature" - Complete when PR to main branch is merged
- Backend: Python Flask + SQLAlchemy + AWS RDS PostgreSQL
- Frontend: Vanilla HTML/CSS/JavaScript
- Integration: GitHub API + Webhooks
- Deployment: AWS Elastic Beanstalk + CloudFront
The project uses Kiro for development assistance:
- Specs: Feature specifications in
.kiro/specs/ - Hooks: Automated workflows in
.kiro/hooks/ - Steering: Project guidelines in
.kiro/steering/
We welcome contributions! Please see our Contributing Guidelines for details on:
- Development workflow and setup
- Code quality standards
- AWS architecture protection
- Hacktoberfest participation
- MIT License compliance
Whether you're fixing bugs, adding features, or improving documentation, your contributions help make Git-Done better for everyone.
MIT License - Build something awesome.