Skip to content

API GraphQL que fornece os dados dos projetos para a SPA de gerenciamento de projetos usando o método Kanban.

Notifications You must be signed in to change notification settings

bpbastos/kanban-data

Repository files navigation

Kanban Data

dependency - fastapi dependency - strawberry-graphql dependency - SQLAlchemy dependency - Asyncpg

Tela principal

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.

Funcionalidades

  • 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).

Todo

  • 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

💻 Pré-requisitos

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/

🚀 Rodando

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.

About

API GraphQL que fornece os dados dos projetos para a SPA de gerenciamento de projetos usando o método Kanban.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published