A RESTful API built with FastAPI and SQLAlchemy to manage projects, task lists (like Trello), and individual tasks. Designed as an educational project to improve Python, relational database, and nested structure skills.
- Python 3.10+
- FastAPI
- SQLAlchemy
- SQLite (easily switchable to PostgreSQL)
- Pydantic
Task-Management-API/
├── app/
│ ├── main.py
│ ├── database.py
│ ├── models/
│ │ ├── project.py
│ │ ├── list.py
│ │ └── task.py
│ ├── schemas/
│ │ ├── project.py
│ │ ├── list.py
│ │ └── task.py
│ ├── routers/
│ │ ├── project.py
│ │ ├── list.py
│ │ └── task.py
│ └── create_tables.py
├── requirements.txt
└── README.md
- Clone the repository:
git clone https://github.com/eduveliz/Task-Management-API.git
cd Task-Management-API- Create and activate a virtual environment:
python3 -m venv env
source env/bin/activate # On Windows: env\Scripts\activate- Install dependencies:
pip install -r requirements.txt- Create the database tables:
python create_tables.pyThis will generate a tasks.db file (if you're using SQLite).
Launch the development server with:
uvicorn app.main:app --reloadAccess the auto-generated API docs:
- Swagger UI: http://localhost:8000/docs
- Redoc: http://localhost:8000/redoc
| Method | Route | Description |
|---|---|---|
| POST | /projects/ |
Create a new project |
| GET | /projects/ |
List all projects |
| POST | /lists/ |
Create a new list |
| GET | /lists/ |
List all lists |
| POST | /tasks/ |
Create a new task |
| GET | /tasks/ |
List all tasks |
- Support for nested endpoints (
/projects/{id}/lists) - User authentication
- Deploy on Render or Railway
- Write tests with pytest
Developed by Eduardo Veliz as a personal project to deepen Python and backend knowledge.
This project is licensed under the MIT License. See the LICENSE file for details.