Skip to main content

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/docs

Key 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

LayerTechnology
FrameworkFlask 3.1.2
ORMSQLAlchemy 2.0.44
AuthenticationFlask-JWT-Extended 4.7.1
Database (prod)Azure SQL Database
Database (dev)SQLite
Rate limitingFlask-Limiter 4.0.0
API docsFlasgger (Swagger/OpenAPI)
Testingpytest 9.0.1, 268 tests, >73% coverage
DeploymentAzure App Service + GitHub Actions
ContainerDocker + Docker Compose

Base URL

Production: https://task-forge-gbd6h8gtg8hchve9.chilecentral-01.azurewebsites.net/api
Local:      http://localhost:5000/api
All endpoints are prefixed with /api. Authentication endpoints are under /api/auth, tasks under /api/tasks, users under /api/users, and tags under /api/tags.

Build docs developers (and LLMs) love