A modern, production-ready task management platform built with FastAPI, SQLite, and DaisyUI. TaskFlow combines powerful features with a beautiful SaaS-style interface for the ultimate productivity experience.
- Smart Categories - Organize tasks with custom categories, colors, and icons
- Priority Management - High, Medium, Low, and None priority levels
- Due Dates & Deadlines - Set due dates and track overdue tasks
- Advanced Search - Full-text search across titles and descriptions
- Powerful Filtering - Filter by category, priority, and completion status
- Bulk Operations - Select and manage multiple tasks at once
- Archive System - Archive completed tasks to keep dashboard clean
- Real-time Statistics - Track total, pending, completed, and overdue tasks
- Keyboard Shortcuts - Power user features (/ for search, N for new task)
- Pin Tasks - Pin important tasks to the top
- Secure Authentication - Registration, login, logout with session management
- Argon2id Password Hashing - Industry-standard password security
- CSRF Protection - Token-based protection for all state-changing operations
- Session Management - Secure, httponly cookies with configurable expiration
- Security Headers - CSP, X-Frame-Options, X-XSS-Protection, and more
- Rate Limiting - Protection against brute force attacks
- Input Validation - Pydantic models with strict validation
- SQL Injection Prevention - Parameterized queries only
- Professional SaaS Design - Modern gradient interface with smooth animations
- Responsive Layout - Works beautifully on desktop, tablet, and mobile
- Dark Sidebar Navigation - Easy access to categories and statistics
- Modal Dialogs - Clean forms for adding tasks and categories
- Hover Effects - Smooth transitions and visual feedback
- Empty States - Helpful messages when no tasks exist
- Professional Landing Page - Marketing page showcasing features
- Python 3.11 or higher
- pip
git clone https://github.com/marketcalls/taskflow.git
cd taskflow# Windows
python -m venv venv
venv\Scripts\activate
# Unix/macOS
python -m venv venv
source venv/bin/activatepip install -r requirements.txtCopy the .env.example file to .env:
# Windows
copy .env.example .env
# Unix/macOS
cp .env.example .envGenerate a secure secret key:
python -c "import secrets; print(secrets.token_urlsafe(32))"Edit .env and replace your-secret-key-here-minimum-32-characters-long with the generated key.
# Development server with auto-reload
python main.py
# Or use uvicorn directly
uvicorn main:app --reloadThe application will be available at http://localhost:8000
- Navigate to
http://localhost:8000 - You'll see the professional landing page
- Click "Get Started" to register a new account
- Login with your credentials
- You'll be redirected to the
/dashboardwhere you can:- Create tasks with priorities, due dates, and categories
- Organize tasks into custom categories with colors
- Search for tasks instantly
- Filter by category, priority, or status
- Bulk select and manage multiple tasks
- Archive completed tasks
- View statistics about your productivity
- Use keyboard shortcuts for faster workflow
/- Focus search barN- Create new taskEsc- Close modals
GET /- Home page (redirects to landing)GET /landing- Landing pageGET /login- Login pageGET /register- Registration pageGET /dashboard- Dashboard (requires authentication)
POST /api/auth/register- Register new userPOST /api/auth/login- Login userPOST /api/auth/logout- Logout user
POST /api/todos/- Create new taskPOST /api/todos/{id}/toggle- Toggle task completionPOST /api/todos/{id}/archive- Archive taskPOST /api/todos/{id}/delete- Delete taskPOST /api/todos/{id}/update- Update taskPOST /api/todos/bulk- Bulk operations on multiple tasksGET /api/todos/stats- Get user statistics
POST /api/categories/- Create new categoryGET /api/categories/api- Get all categories (JSON)POST /api/categories/{id}/update- Update categoryPOST /api/categories/{id}/delete- Delete category
GET /health- Health check endpoint
fastapi_test/
βββ app/
β βββ api/
β β βββ endpoints/
β β β βββ auth.py # Authentication endpoints
β β β βββ todos.py # Task CRUD endpoints
β β β βββ categories.py # Category endpoints
β β βββ pages.py # Page route handlers
β β βββ landing.py # Landing page route
β βββ core/
β β βββ config.py # Configuration management
β β βββ dependencies.py # FastAPI dependencies
β β βββ security.py # Security utilities
β βββ db/
β β βββ database.py # Database connection and setup
β βββ middleware/
β β βββ security.py # Security headers middleware
β β βββ session.py # Session middleware
β βββ models/
β β βββ todo.py # Task model
β β βββ user.py # User model
β β βββ category.py # Category model
β βββ schemas/
β β βββ todo.py # Task Pydantic schemas
β β βββ user.py # User Pydantic schemas
β β βββ category.py # Category Pydantic schemas
β βββ services/
β βββ todo_service.py # Task business logic
β βββ user_service.py # User business logic
β βββ category_service.py # Category business logic
βββ templates/
β βββ base.html # Base template
β βββ dashboard.html # Main dashboard (SaaS UI)
β βββ landing.html # Landing page
β βββ index.html # Home redirect
β βββ login.html # Login page
β βββ register.html # Register page
βββ static/ # Static files (CSS, JS)
βββ tests/ # Test files
βββ main.py # Application entry point
βββ requirements.txt # Python dependencies
βββ .env.example # Environment variables example
βββ ENHANCEMENTS.md # Feature documentation
βββ README.md # This file
- Password Hashing: Argon2id with secure parameters (time_cost=2, memory_cost=65536)
- CSRF Protection: Token-based protection for all state-changing operations
- Session Management: Secure, httponly cookies with configurable expiration (1 hour default)
- Security Headers:
- Content Security Policy (CSP)
- X-Content-Type-Options: nosniff
- X-Frame-Options: DENY
- X-XSS-Protection
- Referrer-Policy
- Rate Limiting: Protection against brute force attacks using slowapi
- Input Validation: Pydantic models with strict type checking and validation
- SQL Injection Prevention: Parameterized queries exclusively
- Activity Logging: Track all user actions for audit trails
TaskFlow uses SQLite with the following tables:
- users - User accounts with authentication data
- categories - Custom categories with colors and icons
- todos - Tasks with priorities, due dates, and status
- activity_log - User activity tracking
All tables have proper indexes for optimal query performance.
- Primary: Purple gradient (#667EEA to #764BA2)
- Success: Green (#10B981)
- Warning: Orange (#F59E0B)
- Error: Red (#EF4444)
- Info: Blue (#3B82F6)
- High: Red border (#EF4444)
- Medium: Orange border (#F59E0B)
- Low: Blue border (#3B82F6)
- None: Gray border (#9CA3AF)
pytestblack .ruff .mypy .To reset the database (deletes all data):
rm todo_app.db
python main.pyFor production deployment:
- Set
DEBUG=Falsein.env - Generate a new strong
SECRET_KEY - Use a production ASGI server (uvicorn with multiple workers)
- Set up HTTPS and update security settings
- Configure proper CORS origins
- Set up database backups
- Configure logging and monitoring
Example production command:
uvicorn main:app --host 0.0.0.0 --port 8000 --workers 4- 2000+ lines of production-ready code
- 15+ major features
- 4 database tables with proper relationships
- 20+ API endpoints
- Professional SaaS-style UI
- 100% CSRF protected
- Full input validation
- Activity logging on all actions
MIT License - See LICENSE file for details
Copyright (c) 2025 Marketcalls
β Production Ready - Not a simple todo app, but a full SaaS platform β Beautiful UI - Professional gradient design that rivals paid products β Feature Rich - Categories, priorities, due dates, search, filters, bulk ops β Secure - Enterprise-grade security with Argon2id, CSRF, rate limiting β Fast - Optimized queries with proper indexing β Modern Stack - FastAPI, SQLite, DaisyUI, Tailwind CSS β Well Architected - Clean separation of concerns, proper patterns β User Friendly - Keyboard shortcuts, empty states, helpful messages
We welcome contributions! Please see our Contributing Guide for details on:
- How to report bugs
- How to suggest enhancements
- Development setup
- Code style guide
- Pull request process
Built with:
- FastAPI - Modern Python web framework
- DaisyUI - Beautiful Tailwind CSS components
- Tailwind CSS - Utility-first CSS framework
- SQLite - Lightweight database
- Argon2 - Password hashing
TaskFlow - Modern task management, beautifully crafted.
Repository: https://github.com/marketcalls/taskflow
Maintainer: Marketcalls