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
node
com o comandodocker-compose up -d
.
- Lembre-se de parar o
mongo
se 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_shop
e outro chamadocar_shop_db
. - A partir daqui você pode rodar o container
car_shop
via 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⚠️
🛠 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.