API RESTful para uma empresa fictícia de adoção de animais, desenvolvido para um Challenge Back-End.
Potuguese - English
- Node.js e NPM
- Banco de dados Postgres
- Docker e docker compose
Clonar o repositório
git clone [repositório]Seguir para o diretório da API
cd adopet-api/🏗️ Construindo e executando a aplicação
Iniciar a API e o bando de dados
docker compose up --build -dMigrar das tabelas do banco de dados
docker compose exec api npx sequelize-cli db:migrateA API estará disponível em http://localhost:9000.
💣 Testando a API... 🤞🏽
Criar banco de dados de teste
docker compose exec api npx sequelize-cli db:create --env testRealizar a migração das tabelas
docker compose exec api npx sequelize-cli db:migrate --env testExecutar todos testes
docker compose exec api npm run testExecutar testes de integração
docker compose exec api npm run test:integrationou executar testes com filtro
docker compose exec api \
npm run test:integration \
-- api/__test__/integration/routes/authRoute.test.js📦 Contruindo uma Imagem
Construa uma imagem ao executar:
docker build -t adopet-api:latest .Github Actions foi escolhido como ferramenta no desenvolvimento de CI pela simplicidade na construção de workflows, por estar integrado ao repositório da aplicação e por questões didáticas para explorar a ferramenta.
A escolha do Render como plataforma de deploy da API e do Banco de Dados, foi devido a simplicidade na realização de deploys e ao plano gratuito que abrange banco de dados Postgres, deploy de Web Services construído em Node.js, além de dar suporte Continuos Deployment realizando deploys automáticos integrado às branchs do Github.
Rotinas são executadas para testar a aplicação, construir um imagem do Docker e registrá-la no Docker Hub no momento que o repositório receber um Pull Request para a branch main.
O Banco de Dados e a API são constrúidos através dos serviços do Render, no qual disponibiliza sempre a última versão da aplicação ao realizar deploys automáticos baseados na branch main deste repositório.
