65 lines
2.0 KiB
Markdown

# Fast Task Manager API
A FastAPI-based RESTful API for managing tasks. This API provides endpoints for creating, reading, updating, and deleting tasks, as well as filtering tasks by status, priority, and completion status.
## Features
- RESTful API with CRUD operations for tasks
- Task filtering by status, priority, and completion status
- Pagination support
- Health check endpoint
- SQLite database with SQLAlchemy ORM
- Database migrations with Alembic
## Project Structure
```
├── alembic.ini # Alembic configuration
├── app # Application package
│ ├── crud # CRUD operations
│ ├── database # Database configurations
│ ├── models # SQLAlchemy models
│ ├── routers # API routes
│ └── schemas # Pydantic schemas for validation
├── main.py # FastAPI application entry point
├── migrations # Alembic migrations
│ └── versions # Migration versions
└── requirements.txt # Project dependencies
```
## API Endpoints
### Tasks
- `POST /api/v1/tasks` - Create a new task
- `GET /api/v1/tasks` - Get list of tasks with filtering and pagination
- `GET /api/v1/tasks/{task_id}` - Get a specific task
- `PUT /api/v1/tasks/{task_id}` - Update a task
- `DELETE /api/v1/tasks/{task_id}` - Delete a task
### Health Check
- `GET /health` - Check API and database health
## Running the Application
1. Clone the repository
2. Install the dependencies:
```bash
pip install -r requirements.txt
```
3. Apply database migrations:
```bash
alembic upgrade head
```
4. Run the application:
```bash
uvicorn main:app --host 0.0.0.0 --port 8000 --reload
```
## API Documentation
Once the application is running, you can access the API documentation at:
- Swagger UI: http://localhost:8000/docs
- ReDoc: http://localhost:8000/redoc