# Task Management API A simple and efficient task management tool built with FastAPI and SQLite. ## Features - Create, read, update, and delete tasks - Task prioritization (Low, Medium, High) - Task status tracking (Pending, In Progress, Completed) - RESTful API with automatic documentation - SQLite database with Alembic migrations ## API Endpoints - `GET /` - Root endpoint with API information - `GET /health` - Health check endpoint - `GET /docs` - Interactive API documentation (Swagger UI) - `GET /redoc` - Alternative API documentation (ReDoc) - `POST /tasks` - Create a new task - `GET /tasks` - List all tasks (with pagination) - `GET /tasks/{task_id}` - Get a specific task - `PUT /tasks/{task_id}` - Update a task - `DELETE /tasks/{task_id}` - Delete a task ## Quick Start 1. Install dependencies: ```bash pip install -r requirements.txt ``` 2. Run the application: ```bash uvicorn main:app --reload ``` 3. Access the API documentation at `http://localhost:8000/docs` ## Project Structure ``` . ├── main.py # FastAPI application entry point ├── requirements.txt # Python dependencies ├── alembic.ini # Alembic configuration ├── pyproject.toml # Ruff configuration ├── app/ │ ├── db/ │ │ ├── base.py # SQLAlchemy base │ │ └── session.py # Database session management │ ├── models/ │ │ └── task.py # Task database model │ ├── routers/ │ │ └── tasks.py # Task API endpoints │ └── schemas/ │ └── task.py # Pydantic schemas ├── alembic/ │ ├── versions/ # Migration files │ └── env.py # Alembic environment └── storage/ └── db/ # SQLite database location ``` ## Database This application uses SQLite for data storage. The database is automatically created when the application starts. Database migrations are handled by Alembic. ## Environment Variables Currently, the application uses default configurations and doesn't require any environment variables to run.