✓ Multi-plataforma, desenvolva no macOS, Windows ou Linux usando Docker
✓ Única dependência do projeto Docker v1.12.5 ou posterior
✓ Autenticação e autorização via Passport.js
✓ Gerênciamento em cache da sessão com [Redis] (https://redis.io/)
✓ Banco de dados utilizado PostgreSQL: Migrations (migrations
)
✓ GraphQL Faz a função da ORM, sendo uma linguagem de query baseada em promise
✓ O mesmo processo utilizado pra fazer o build pra local é o usado pra fazer build em produção
.
├── /build/ # Arquivos compilados via Babel
├── /migrations/ # Entidades do banco de dados
├── /scripts/ # Scripts para build automático
├── /src/ # Código fonte da aplicação
│ ├── /db/ # Conexão e controladores do banco de dados
│ ├── /routes/ # Definição de rotas da aplicação
│ ├── /types/ # Modelos das entidades do banco de dados
│ │ ├── /User.js # Entidade User (id, email, etc.)
│ │ └── /... # etc.
│ ├── /app.js # Aplicação Express.js
│ ├── /passport.js # Passport.js como forma de autenticação
│ ├── /schema.js # Entidade GraphQL
│ └── /server.js # Node.js server (entry point)
├── /test/ # Teste automatizados
├── .env # Configurações de variável de ambiente para desenvolvimento
├── .env.example # Referência de configurações de variaveis de ambiente
├── docker-compose.yml # Docker: serviços, networks e volumes
├── Dockerfile # Comandos para fazer o build da imagem de docker em produção
├── Dockerfile.dev # Comandos para fazer o build da imagem de docker em desenvolvimento
├── package.json # Lista de dependência do projeto
└── yarn.lock # Mantém versões fixas para todas depêndencias
Tenha instalado:
- Docker v1.12.5 ou superior
- Docker-Compose
$ docker-compose up # Inicia os containers Docker com aplicação rodando
Sua API estará disponível em https://localhost:5000/
- Uma vez que o container do docker chamado
api
for iniciado, a Docker engine executará:node scripts/run.js
comando que instalará as depêndencias do projeto, os migrates dos esquemas do banco de dados para ultima versão, compilar os arquivos do código fonte(src
). - Para abrir uma sessão por terminal dentro do container
api
execute:
$ docker-compose exec api /bin/sh
Nesta sessão poderá rodar scripts de teste yarn test
, migrate yarn run db:migrate
e os outros dentro de scripts
e package.json
.
$ yarn run lint # Testa padrões do código
$ yarn run check # Testa se o código fonte tem erros de tipagem
$ yarn run test # Execute testes unitário uma única vez
$ yarn run test:watch # Executa testes unitários e observer
Edite, se necessário, o arquivo scripts/publish.js
no macOS/Linux ou converta-o para
publish.cmd
no Windows. Então a única coisa que você precisa pra fazer o deploy para um servidor é um único comando:
$ /bin/sh scripts/publish.sh # ou, `scripts/publish.cmd` no Windows