https://github.com/mateus-dev-me/task-manager-fastapi
Rest API for task management written in Python with FastAPI.
https://github.com/mateus-dev-me/task-manager-fastapi
continues-integration docker-compose fastapi postgresql pyproject-toml python testdrivendevlopment
Last synced: about 2 months ago
JSON representation
Rest API for task management written in Python with FastAPI.
- Host: GitHub
- URL: https://github.com/mateus-dev-me/task-manager-fastapi
- Owner: mateus-dev-me
- License: mit
- Created: 2025-02-18T20:41:27.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2025-02-28T15:53:07.000Z (over 1 year ago)
- Last Synced: 2026-04-11T18:07:45.796Z (2 months ago)
- Topics: continues-integration, docker-compose, fastapi, postgresql, pyproject-toml, python, testdrivendevlopment
- Language: Python
- Homepage: https://task-manager-fastapi.fly.dev/docs
- Size: 59.6 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# š TaskManager FastAPI
[](https://www.python.org/downloads/release)
[](https://docs.djangoproject.com/en/stable/releases/)
TaskManager é uma API RESTful desenvolvida com **FastAPI** para gerenciar usuÔrios e tarefas. A API fornece autenticação baseada em token e operações CRUD para usuÔrios e tarefas. Você pode executÔ-la localmente ou dentro de contêineres Docker.
## š Documentação da API
A documentação interativa da API estĆ” disponĆvel no Swagger UI:
- **[TaskManager API Docs (Swagger UI)](https://task-manager-fastapi.fly.dev/docs)**
## š Tecnologias Utilizadas
- **Python 3.13+**
- **FastAPI** (Framework principal)
- **Uvicorn** (Servidor ASGI)
- **SQLAlchemy 2.0** (ORM)
- **PostgreSQL**
- **Pydantic** (Validação e tipagem)
- **JWT (JSON Web Token)** (Autenticação)
- **Pytest** (TDD)
- **Alembic** (MigraƧƵes de banco de dados)
- **Docker & Docker Compose** (Containerização)
- **Github Actions** (Integração ContĆnua)
- **Fly.io** (Hospedagem)
---
## Endpoints da API
### š Autenticação
| Método | Rota | Descrição |
|-------:|:------------------------------|:---------------------------|
| `POST` | `/api/v1/auth/token` | Obter token de acesso |
| `POST` | `/api/v1/auth/refresh_token` | Renovar token de acesso |
### š¤ UsuĆ”rios
| Método | Rota | Descrição |
|---------:|:--------------------------|:---------------------|
| `POST` | `/api/v1/users/` | Criar usuƔrio |
| `GET` | `/api/v1/users/` | Listar usuƔrios |
| `GET` | `/api/v1/users/{user_id}` | Obter detalhes |
| `PUT` | `/api/v1/users/{user_id}` | Atualizar usuƔrio |
| `DELETE` | `/api/v1/users/{user_id}` | Excluir usuƔrio |
### ā
Tarefas
| Método | Rota | Descrição |
|---------:|:---------------------------|:---------------------|
| `POST` | `/api/v1/tasks/` | Criar tarefa |
| `GET` | `/api/v1/tasks/` | Listar tarefas |
| `PATCH` | `/api/v1/tasks/{task_id}` | Atualizar tarefa |
| `DELETE` | `/api/v1/tasks/{task_id}` | Excluir tarefa |
---
# š Descrição dos Diretórios
A estrutura do projeto estÔ organizada para promover uma separação clara de responsabilidades, facilitando a manutenção, escalabilidade e testes. A seguir, uma breve descrição de cada diretório e seus arquivos:
## app/
- **main.py**
Ponto de entrada da aplicação. Inicializa a instância do FastAPI, registra os routers e configurações iniciais do servidor.
## app/core/
- **config.py**
ResponsÔvel por carregar as configurações globais da aplicação (ex.: variÔveis de ambiente, URL do banco, chave secreta).
- **security.py**
Contém funções e classes relacionadas à segurança, como a implementação e verificação de tokens JWT.
## app/database/
- **models.py**
Define os modelos de dados utilizando um ORM (por exemplo, SQLAlchemy) para representar as tabelas do banco de dados.
- **session.py**
Gerencia a sessão de conexão com o banco de dados, facilitando a execução de queries e a gestão de transações.
## app/repositories/
- **task_repository.py**
Implementa a camada de acesso a dados para as tarefas, encapsulando operaƧƵes CRUD.
- **user_repository.py**
Implementa a camada de acesso a dados para os usuÔrios, abstraindo as operações de persistência.
## app/routers/
- **v1/**
Diretório destinado à versão 1 da API, permitindo o versionamento das rotas.
- **endpoints/**
ContƩm os controladores que definem os endpoints da API.
- **auth_controller.py**
Gerencia os endpoints de autenticação (login, renovação de token, etc.).
- **task_controller.py**
Define os endpoints para o gerenciamento das tarefas (criação, listagem, atualização e exclusão).
- **user_controller.py**
Define os endpoints para o gerenciamento dos usuÔrios (criação, listagem, atualização e exclusão).
## app/schemas/
- **base.py**
Define esquemas bÔsicos e modelos compartilhados entre diferentes partes da aplicação.
- **tasks.py**
Esquemas para a validação e serialização dos dados relacionados às tarefas.
- **token.py**
Esquemas para manipulação dos dados dos tokens JWT, facilitando a geração e validação.
- **users.py**
Esquemas para a validação e serialização dos dados dos usuÔrios.
## app/services/
- **task_service.py**
Contém a lógica de negócio para operações relacionadas às tarefas, coordenando a interação entre repositórios e controladores.
- **user_service.py**
Contém a lógica de negócio para operações relacionadas aos usuÔrios, encapsulando regras de validação e manipulação de dados.
---
## š LicenƧa
Este projeto estÔ sob a licença **MIT**. Sinta-se à vontade para usÔ-lo, modificÔ-lo e contribuir!