# Todo Application This is a simple Todo application built with FastAPI and SQLite. ## Features - Create, read, update, and delete todos - Filter todos by completion status - Pagination support ## API Endpoints - `GET /todos`: List all todos - `POST /todos`: Create a new todo - `GET /todos/{todo_id}`: Get a specific todo - `PUT /todos/{todo_id}`: Update a todo - `DELETE /todos/{todo_id}`: Delete a todo - `GET /health`: Health check endpoint ## Running the Application 1. Install dependencies: ``` pip install -r requirements.txt ``` 2. Apply migrations: ``` alembic upgrade head ``` 3. Run the application: ``` uvicorn main:app --reload ``` 4. Access the API documentation: - Swagger UI: http://localhost:8000/docs - ReDoc: http://localhost:8000/redoc ## Project Structure - `app/`: Main application package - `api/`: API endpoints - `crud/`: Database CRUD operations - `db/`: Database configuration - `models/`: SQLAlchemy models - `schemas/`: Pydantic schemas - `alembic/`: Database migrations - `main.py`: Application entry point - `requirements.txt`: Project dependencies