Automated Action a05d19017e Add priority levels feature to Todo items
- Added priority field (low, medium, high) to Todo model
- Created migration for priority field addition
- Updated API schemas to include priority
- Added filtering by priority in GET todos endpoint
- Updated README to reflect new features
2025-05-16 04:30:03 +00:00

2.1 KiB

Simple Todo Application

A simple Todo API built with FastAPI and SQLite.

Features

  • Create, Read, Update, and Delete Todo items
  • Priority levels (Low, Medium, High) for todo items
  • Filter todo items by priority
  • SQLite database with SQLAlchemy ORM
  • Database migrations with Alembic
  • API documentation with Swagger UI and ReDoc
  • Health check endpoint

Project Structure

/
├── app/                    # Main application package
│   ├── api/                # API endpoints
│   │   ├── health.py       # Health check endpoint
│   │   ├── schemas.py      # Pydantic models
│   │   └── todos.py        # Todo CRUD endpoints
│   ├── database/           # Database configuration
│   │   └── config.py       # SQLAlchemy setup
│   └── models/             # SQLAlchemy models
│       └── todo.py         # Todo model
├── migrations/             # Alembic migrations
│   └── versions/           # Migration scripts
├── alembic.ini             # Alembic configuration
├── main.py                 # Application entry point
└── requirements.txt        # Python dependencies

API Endpoints

  • GET /api/todos: Get all todo items (optional query parameter priority to filter by priority)
  • POST /api/todos: Create a new todo item with optional priority level
  • GET /api/todos/{todo_id}: Get a specific todo item
  • PUT /api/todos/{todo_id}: Update a todo item (including its priority)
  • DELETE /api/todos/{todo_id}: Delete a todo item
  • GET /health: Check application health

Getting Started

Prerequisites

  • Python 3.8 or higher

Installation

  1. Clone the repository
  2. Install dependencies:
    pip install -r requirements.txt
    
  3. Run the application:
    uvicorn main:app --reload
    

API Documentation

Once the application is running, you can access the API documentation at:

Database

The application uses SQLite as the database with SQLAlchemy ORM. The database file is stored at /app/storage/db/db.sqlite.