# Task Management Tool A FastAPI-based task management system that allows you to create, read, update, and delete tasks. ## Features - **CRUD Operations**: Create, read, update, and delete tasks - **Task Properties**: Each task has a title, description, completion status, and priority level - **SQLite Database**: Data persistence using SQLite with SQLAlchemy ORM - **API Documentation**: Automatic API documentation with Swagger UI - **Health Check**: Built-in health check endpoint - **CORS Support**: Cross-origin resource sharing enabled ## API Endpoints ### Base Endpoints - `GET /` - API information and links - `GET /health` - Health check endpoint - `GET /docs` - Swagger UI documentation - `GET /redoc` - ReDoc documentation - `GET /openapi.json` - OpenAPI specification ### Task Endpoints - `POST /tasks/` - Create a new task - `GET /tasks/` - Get all tasks (with pagination) - `GET /tasks/{task_id}` - Get a specific task by ID - `PUT /tasks/{task_id}` - Update a specific task - `DELETE /tasks/{task_id}` - Delete a specific task ## Installation and Setup 1. Install dependencies: ```bash pip install -r requirements.txt ``` 2. Run the application: ```bash uvicorn main:app --host 0.0.0.0 --port 8000 ``` The application will be available at http://localhost:8000 ## Task Model Each task has the following properties: - `id`: Unique identifier (auto-generated) - `title`: Task title (required) - `description`: Task description (optional) - `completed`: Completion status (default: false) - `priority`: Priority level - "low", "medium", "high" (default: "medium") - `created_at`: Creation timestamp (auto-generated) - `updated_at`: Last update timestamp (auto-updated) ## Environment Variables No environment variables are required for basic operation. The application uses SQLite database stored at `/app/storage/db/db.sqlite`. ## Database The application uses SQLite database with Alembic for migrations. The database will be automatically created when the application starts. ## Development - Database models are in `app/models/` - API routes are in `app/routers/` - Pydantic schemas are in `app/schemas/` - Database configuration is in `app/db/` ## Health Check The `/health` endpoint provides information about the application and database status: - Returns service status - Checks database connectivity - Provides error information if issues are detected