Uma API em Typescript para gerenciamento de uma concessionária de veículos, aplicando os princípios de Programação Orientada a Objetos (POO) e de BDD(behaviour driven development), focando no desenvolvimento orientado a comportamento. Isso foi feito utilizando o banco de dados MongoDB através do framework do Mongoose, e com testes de integração utilizando Mocha, chai, sinon.
🐋 Rodando Projeto no Docker vs Localmente
Clone o repositório
https://github.com/luizfilipelgs/Car-Shop.- Entre na pasta do repositório que você acabou de clonar:
cd Car-Shop.
Rode o serviço
nodecom o comandodocker-compose up -d.
- Lembre-se de parar o
mongose estiver usando localmente na porta padrão (27017), ou adapte, caso queria fazer uso da aplicação em containers - Esses serviços irão inicializar um container chamado
car_shope outro chamadocar_shop_db. - A partir daqui você pode rodar o container
car_shopvia CLI ou abri-lo no VS Code.
Use o comando
npm run docker:bash.
- Ele te dará acesso ao terminal interativo do container criado pelo compose, que está rodando em segundo plano.
Instale as dependências [Caso existam] com
npm install
⚠ Atenção ⚠ Caso opte por utilizar o Docker, TODOS os comandos disponíveis no package.json (npm start, npm test, npm run dev, ...) devem ser executados DENTRO do container, ou seja, no terminal que aparece após a execução do comando docker exec citado acima com excessão do dos comandos do git, pois ele não vem configurado com suas credenciais dentro do container, então os commits fora.
Clone o repositório
https://github.com/luizfilipelgs/Car-Shop.- Entre na pasta do repositório que você acabou de clonar:
cd Car-Shop.
Instale as dependências [Caso existam] com
npm install
-
Na raiz do projeto, será necessário criar um arquivo .env, com as seguintes informações:
MONGO_DB_URL=mongodb://localhost:27017/CarShop
⚠️ Lembre de trocar 'root' pelo seu nome de usuário no MySQL, e 'password' pela sua senha⚠️
Details
🛠 Execução de testes localmente
Para executar os testes localmente, basta executar o comando npm run test:coverage.
Você verá a lista de testes aprovados e a tabela de cobertura deles.