DisciplineOS is an open-source, full-stack productivity ecosystem designed to turn daily habits and tasks into a quantifiable "Discipline Score." It combines rigorous tracking with behavioral science to help users build consistency and long-term mastery.
- Dynamic Scoring Engine: A proprietary algorithm that calculates your daily "Discipline Score" based on habit completion, task execution, and mindful reflection.
- Task Timer System: Integrated focus timers that track actual vs. estimated time spent on planned tasks.
- Automated Streak Maintenance: Celery-powered workers that manage and reset streaks based on real-time activity.
- Mindset Journaling: Structured reflection templates to capture mood, energy levels, and daily wins.
- Data Visualizations: Beautiful Recharts-driven dashboard with score trends, heatmaps, and weekly categorical breakdowns.
- Asynchronous Reporting: Export your performance data into detailed textual reports via background workers.
- FastAPI: High-performance asynchronous API framework.
- SQLAlchemy 2.0: Async ORM for PostgreSQL.
- Celery + Redis: Distributed task queue for scoring, streaks, and reporting.
- Pytest: Comprehensive test suite for core domain logic.
- React (Vite + TypeScript): Modern, type-safe UI development.
- Tailwind CSS: Utility-first styling for a clean, professional aesthetic.
- Zustand: Lightweight state management for auth and theme.
- TanStack Query: Efficient server-state synchronization.
- Recharts: Interactive performance visualizations.
- Docker & Docker Compose
- OR using the longer route for edits (Python 3.11, Node 20+, PostgreSQL, Redis)
-
Clone the repository:
git clone https://github.com/yourusername/DisciplineOS.git cd DisciplineOS -
Run the automated setup script:
- Linux/macOS:
chmod +x setup.sh stop.sh && ./setup.sh - Windows (PowerShell):
.\setup.ps1
- Linux/macOS:
-
Access the application:
- Frontend:
http://localhost:5173 - API Docs:
http://localhost:8000/docs
- Frontend:
-
Get Started:
- Navigate to
http://localhost:5173/registerto create your own account. - Optional: Run
docker compose exec backend python seed_data.pyif you want to seed the database with a demo account (test@example.com/password123).
- Navigate to
See the detailed Backend Setup and Frontend Setup guides.
- Start All Services:
docker compose up -d - Stop All Services:
docker compose down - View Logs:
docker compose logs -f - Rebuild Containers:
docker compose up -d --build
For a deep dive into the system design, scoring algorithms, and data flow, see ARCHITECTURE.md.
We welcome contributions! Please see our CONTRIBUTING.md for guidelines on how to get started.
This project is licensed under the MIT License - see the LICENSE file for details.