Skip to content

Latest commit

 

History

History
120 lines (84 loc) · 2.54 KB

File metadata and controls

120 lines (84 loc) · 2.54 KB

️ Task Management API

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.


Tech Stack

  • Python 3.10+
  • FastAPI
  • SQLAlchemy
  • SQLite (easily switchable to PostgreSQL)
  • Pydantic

Project Structure

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

️ Installation

  1. Clone the repository:
git clone https://github.com/eduveliz/Task-Management-API.git
cd Task-Management-API
  1. Create and activate a virtual environment:
python3 -m venv env
source env/bin/activate  # On Windows: env\Scripts\activate
  1. Install dependencies:
pip install -r requirements.txt
  1. Create the database tables:
python create_tables.py

This will generate a tasks.db file (if you're using SQLite).


Run the Server

Launch the development server with:

uvicorn app.main:app --reload

Access the auto-generated API docs:


Key Endpoints

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

Next Steps

  • Support for nested endpoints (/projects/{id}/lists)
  • User authentication
  • Deploy on Render or Railway
  • Write tests with pytest

Author

Developed by Eduardo Veliz as a personal project to deepen Python and backend knowledge.


License

This project is licensed under the MIT License. See the LICENSE file for details.