API GraphQL que fornece os dados dos projetos para a SPA de gerenciamento de projetos usando o método Kanban (Kanban Deploy). Este backend foi desenvolvido utilizando as seguintes tecnologias: Python 3, FastAPI, Strawberry GraphQL, SQLAlchemy, Asyncpg e banco de dados Postgres.
- Listar quadros (Query boards).
- Consultar quadro (Query board).
- Listar prioridades (Query priorities).
- Consultar tarefa (Query task).
- Adicionar quadro (Mutation addBoard).
- Adicionar prioridade (Mutation addPriority).
- Adicionar tarefa (Mutation addTask).
- Atualizar tarefa (Mutation updateTask).
- Deletar tarefa (Mutation deleteTask).
- Adicionar sub tarefa (Mutation addSubTask).
- Marcar subtarefa como pronta (Mutation markSubTaskDone).
- Deletar subtarefa (Mutation deleteSubTask).
- Criar model para o usuário e evitar de usar o ID do Back4app
- Substiuir --link (depreciado) por networks
- Usar Dataloaders nas consultas
- Refatorar usando Hexagon Architecture
- Implementar padrão de tratamento de erros
- Implementar validação dos dados de entrada
- Implementar testes automatizados (Unitários e de segurança)
- Autenticação/Autorização via serviço de gerência de usuário ou api gateway
Antes de começar, verifique se o seu ambiente atende aos seguintes requisitos:
ATENÇÃO, este backend foi desenvolvido para rodar em conjunto com o frontend Kanban Frontend , o módulo de gerenciamento de usuários do Back4App e um banco de dados Postgres. Recomendo seguir as instruções contidas no README do repositório de implantação Kanban Deploy para garantir uma configuração adequada.
Docker
Instalação do docker: https://docs.docker.com/engine/install/
Faça clone do projeto:
git clone https://github.com/bpbastos/kanban-data.git
Acesse o diretório do projeto com:
cd kanban-data
Crie um arquivo .env na raiz do diretório kanban-data com as seguintes variáveis:
KANBANFRONTEND_URL=http://localhost:3000
POSTGRES_HOST=db
POSTGRES_USER=kanban
POSTGRES_PASSWORD=kanbanpass
POSTGRES_DB=kanban
No diretório kanban-data em um terminal, execute para criar a instância do banco:
docker run -d --env-file ./.env -p 5432:5432 --name db postgres:16
Para construir a imagem docker do projeto, execute:
docker build -t kanban-data:1.0 .
Para rodar o projeto, execute:
docker run -d --env-file ./.env --link db:db -p 8000:8000 --name data kanban-data:1.0
ATENÇÃO, o comando abaixo deleta e recria TODAS as tabelas do projeto, execute com cautela!
docker exec --env-file ./.env data python create_db.py
Abra o endereço http://localhost:8000/graphql no seu navegador.