Automated Action 29d75cdf08 Implement Task Management API with FastAPI and SQLite
- Set up project structure and dependencies
- Create database models and schemas for tasks
- Implement CRUD operations for tasks
- Add API endpoints for task management
- Create Alembic migrations for the database
- Add health check endpoint
- Implement error handling
- Add documentation in README.md
2025-05-17 11:20:00 +00:00

Task Management API

A simple task management API built with FastAPI and SQLite.

Features

  • Create, read, update, and delete tasks
  • Filter tasks by status
  • Mark tasks as completed
  • Set task priorities
  • Health check endpoint

Tech Stack

  • FastAPI: Modern, fast web framework for building APIs
  • SQLAlchemy: SQL toolkit and ORM
  • Alembic: Database migration tool
  • SQLite: Lightweight, file-based database
  • Pydantic: Data validation and settings management
  • Uvicorn: ASGI server for FastAPI

Setup and Installation

Prerequisites

  • Python 3.9+

Installation

  1. Clone the repository:
git clone <repository-url>
cd <repository-directory>
  1. Create a virtual environment and activate it:
python -m venv venv
source venv/bin/activate  # On Windows, use: venv\Scripts\activate
  1. Install dependencies:
pip install -r requirements.txt
  1. Run database migrations:
alembic upgrade head

Running the Application

Start the application with Uvicorn:

uvicorn main:app --host 0.0.0.0 --port 8000 --reload

The API will be available at http://localhost:8000.

API Documentation

Once the application is running, you can access:

API Endpoints

Health Check

  • GET /api/v1/health: Check API and database health

Tasks

  • GET /api/v1/tasks: Get all tasks
  • POST /api/v1/tasks: Create a new task
  • GET /api/v1/tasks/{id}: Get a specific task
  • PUT /api/v1/tasks/{id}: Update a task
  • DELETE /api/v1/tasks/{id}: Delete (soft delete) a task

Task Structure

A task has the following structure:

{
  "id": 1,
  "title": "Sample Task",
  "description": "This is a sample task",
  "status": "todo",
  "priority": "medium",
  "due_date": "2023-12-31T23:59:59",
  "created_at": "2023-09-27T10:00:00",
  "updated_at": "2023-09-27T10:00:00"
}
  • status can be: "todo", "in_progress", or "done"
  • priority can be: "low", "medium", or "high"
Description
Project: Task Management API
Readme 41 KiB
Languages
Python 97.6%
Mako 2.4%