Skip to content

Repository files navigation

TaskFlow API

🇧🇷 Descrição

API REST para gerenciamento de tarefas e projetos, inspirada em ferramentas como Trello e Jira. Construída seguindo padrões de arquitetura em camadas usados em ambientes profissionais, como projeto de portfólio para vagas de Estágio e Desenvolvedor Backend Júnior.

🇺🇸 Description

REST API for task and project management, inspired by tools like Trello and Jira. Built following layered architecture patterns used in professional environments, as a portfolio project for Internship and Junior Backend Developer roles.


Stack

  • Python 3.13
  • FastAPI — async web framework
  • PostgreSQL + SQLAlchemy 2.0 (modern style, Mapped/mapped_column)
  • psycopg3 — async PostgreSQL driver
  • Alembic — database migrations
  • JWT — authentication
  • Docker + Docker Compose
  • Pytest — automated testing
  • GitHub Actions — continuous integration

Architecture

  • app/api/: HTTP routes (thin controllers, no business logic)
  • app/services/: business rules (from Step 5 onward)
  • app/repositories/: data access (from Step 5 onward)
  • app/models/: ORM entities (SQLAlchemy) (from Step 2 onward)
  • app/schemas/: API input/output contracts (Pydantic) (from Step 3 onward)
  • app/core/: cross-cutting configuration, security, logging, exceptions

Running locally / Como rodar localmente

  1. Copy the environment variables file / Copie o arquivo de variáveis de ambiente:
 cp .env.example .env
  1. Start the containers / Suba os containers:
 docker compose up --build
  1. The API will be available at / A API estará disponível em http://localhost:8000.
  2. Interactive docs (Swagger) / Documentação interativa: http://localhost:8000/docs

Running tests / Como rodar os testes

python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -r requirements-dev.txt
pytest -v

Development progress / Progresso do desenvolvimento

  • Step 1 — Project setup (Docker, config, logging, health check)
  • Step 2 — Database layer (SQLAlchemy + Alembic)
  • Step 3 — Authentication (JWT)
  • Step 4 — Global exception handling
  • Step 5 — Projects CRUD
  • Step 6 — Tasks CRUD
  • Step 7 — Pagination, filtering, search and sorting
  • Step 8 — Test suite consolidation
  • Step 9 — Stats dashboard
  • Step 10 — CSV export
  • Step 11 — File attachments upload
  • Step 12 — Overdue tasks automation
  • Step 13 — CI with GitHub Actions
  • Step 14 — Final documentation

About

REST API for task management built with FastAPI, PostgreSQL and JWT auth — portfolio project following clean architecture and repository pattern.

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages