Quickstart
Get your first API request running in under 5 minutes.
Authentication
Learn how to authenticate with JWT access and refresh tokens.
API Reference
Explore all 26 endpoints with full request and response schemas.
Deployment
Deploy to Azure App Service with the CI/CD pipeline.
What is TaskForge API?
TaskForge API is a production-ready RESTful backend for task management, built with Flask, SQLAlchemy, and Azure SQL Database. It demonstrates best practices in backend development including JWT authentication, role-based access control, comprehensive testing, and cloud deployment. Live API: task-forge-gbd6h8gtg8hchve9.chilecentral-01.azurewebsites.net/api/docsKey features
JWT Authentication
Secure access with short-lived access tokens and long-lived refresh tokens. Full register, login, logout, and password change flows.
Role-Based Access Control
Admin and User roles with enforced permissions. Admins can manage all users and tasks; users manage their own data.
Full Task CRUD
Create, read, update, and delete tasks with title, description, status (
pending, in_progress, completed, cancelled), priority (low, medium, high, urgent), due dates, and tags.Advanced Filtering
Filter tasks by status, priority, tag, search term, overdue status, and date range. Combine any filters with server-side pagination and sorting.
Tag System
Organize tasks with color-coded tags. Create custom labels and apply multiple tags per task.
Data Export
Export your task list to CSV or JSON with optional status and priority filters.
Rate Limiting
Built-in abuse protection via Flask-Limiter. Default limits: 200 requests/day, 50 requests/hour, with stricter limits on auth endpoints.
Azure + Docker Ready
Deploy with Docker Compose locally or to Azure App Service in production. CI/CD via GitHub Actions with automatic test gating.
Technology stack
| Layer | Technology |
|---|---|
| Framework | Flask 3.1.2 |
| ORM | SQLAlchemy 2.0.44 |
| Authentication | Flask-JWT-Extended 4.7.1 |
| Database (prod) | Azure SQL Database |
| Database (dev) | SQLite |
| Rate limiting | Flask-Limiter 4.0.0 |
| API docs | Flasgger (Swagger/OpenAPI) |
| Testing | pytest 9.0.1, 268 tests, >73% coverage |
| Deployment | Azure App Service + GitHub Actions |
| Container | Docker + Docker Compose |
Base URL
/api. Authentication endpoints are under /api/auth, tasks under /api/tasks, users under /api/users, and tags under /api/tags.