Task Manager API

A simple and efficient Task Manager API built with FastAPI and SQLite.

Features

  • Create, read, update, and delete tasks
  • Filter tasks by completion status
  • Set task priorities
  • Set due dates for tasks
  • Health check endpoint

Technology Stack

  • Python: 3.8+
  • Web Framework: FastAPI
  • ORM: SQLAlchemy 2.0+
  • Database: SQLite
  • Migrations: Alembic
  • Linting: Ruff

Project Structure

taskmanagerapi/
│
├── alembic/               # Database migration scripts
│   └── versions/          # Migration versions
│
├── app/                   # Application module
│   ├── api/               # API endpoints
│   │   └── routes/        # API route handlers
│   ├── core/              # Core application code
│   ├── crud/              # CRUD operations
│   ├── db/                # Database setup and connections
│   ├── models/            # SQLAlchemy models
│   └── schemas/           # Pydantic models for validation
│
├── main.py                # Application entry point
└── requirements.txt       # Project dependencies

API Endpoints

Tasks

  • GET /api/v1/tasks: Get all tasks (with optional filtering)
  • POST /api/v1/tasks: Create a new task
  • GET /api/v1/tasks/{task_id}: Get a specific task
  • PUT /api/v1/tasks/{task_id}: Update a task
  • DELETE /api/v1/tasks/{task_id}: Delete a task

Health Check

  • GET /health: Check API health

Installation and Setup

  1. Clone the repository
  2. Install dependencies:
    pip install -r requirements.txt
    
  3. Run database migrations:
    alembic upgrade head
    
  4. Start the application:
    uvicorn main:app --reload
    

API Documentation

FastAPI automatically generates interactive API documentation at:

  • /docs: Swagger UI
  • /redoc: ReDoc

License

MIT

Description
Project: Task Manager API
Readme 47 KiB
Languages
Python 95.9%
Mako 4.1%