
- Create complete task management system with CRUD operations - Add Task model with status, priority, timestamps - Set up SQLite database with SQLAlchemy and Alembic migrations - Implement RESTful API endpoints for task operations - Configure CORS middleware and API documentation - Add health check endpoint and root information response - Include proper project structure and comprehensive README
72 lines
2.1 KiB
Markdown
72 lines
2.1 KiB
Markdown
# 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.
|