Bem vindo ao repositório do projeto, apresentamos abaixo as instruções para que você possa dar andamento as atividades propostas!
Antes de seguir aqui leia todas as informações disponiveis no quadro do trello.
- A primeira coisa que você deverá criar é o seu quadro no Trello a partir do nosso quadro modelo.
- As instruções para criar o seu quadro então disponíveis no cartão intitulado Instruções de uso do Quadro.
- Após criar seu quadro, você deve fazer um fork deste repositório.
- Caso fique com dúvida, siga o tutorial.
- Com seu repositório e quadro criados, você deverá fazer sua primeira alteração no projeto.
- No seu repositório, abra o arquivo README.md e adicione seu nome e link do seu quadro, e depois faça um commit das alterações;
- No seu quadro, adicione seu nome e o link do seu repositório no cartão intitulado Informações do candidato
Agora basta seguir as instruções disponíveis no seu quadro do Trello e executar as tarefas propostas.
Boa sorte!
Este projeto utiliza as seguintes tecnologias:
Bibliotecas auxiliares:
Bibliotecas para os testes:
Bancos de dados:
app/
├── __init__.py
├── main.py (Instância a aplicação)
├── documents.py (Define os documentos do MongoDB)
├── models.py (Define os modelos do PostgreSQL)
├── events.py (Define as ações que são executados na inicialização do sistema)
├── routers (Rotas do projeto e seus endpoints, normalmente implementado em REST)
│ ├── __init__.py
│ └── example.py (Uma rota de exemplo)
├── templates (Define os templates utilizados pelas rotas)
│ └── example.html (Um template utilizando Jinja)
├── schema.py (Define o schema do GraphQL, a Query e Mutation raíz do grafo)
├── settings.py (Define as configurações do projeto e as variáveis de ambiente)
├── types.py (Define os types compartilhados entre os módulos GraphQL)
├── module_example (Um módulo GraphQL)
│ ├── __init__.py
│ ├── mutations.py (Define as mutations relacionadas ao módulo)
│ ├── queries.py (Define as queries relacionadas ao módulo)
│ ├── types.py (Define os types relacionados ao módulo)
│ └── validators.py (Define as validações utilizadas pelas queries e mutations)
O ambiente de desenvolvimento é gerenciado através do Docker Compose, para iniciar o projeto você vai precisar realizar os seguinte passos:
- Instalar o Docker
- Realizar o pós-instalação caso esteja usando Linux
- Instalar o Docker Compose
$ docker-compose up -d
Após você subir a aplicação você vai ter disponível no seu ambiente um PostgreSQL, um MongoDB e uma aplicação base para você entender a estrutura do projeto. Você pode acessar a aplicação através do Playground.
$ docker-compose logs --tail 100 -f
$ docker-compose stop
Caso o ambiente esteja up
$ docker-compose exec api pytest -vv -x -s
Caso o ambiente esteja down
$ docker-compose run api pytest -vv -x -s
Configurações relativas a acesso a recursos e credenciais são armazenadas no projeto utilizando variáveis de ambiente. As variávels de ambiente definem configurações para os diferentes ambientes do projeto (development, staging, production).
Variável | Descrição | Valor padrão |
---|---|---|
MONGO_URI | URI de conexão ao MongoDB | "mongodb://mongo/dio" |
POSTGRES_URI | URI de conexão ao PostgreSQL | "postgresql://dio:dio@postgres:5432" |