Esse é um projeto que desenvolvi na seção 12 do módulo de back-end do curso da Trybe. Uma API OO escrita em Node.js e Typescript. Nela é possível realizar um CRUD de carros e motos em um banco MongoDB.
GET /cars
GET /cars/${id}
Parâmetro | Tipo | Descrição |
---|---|---|
id |
string |
Obrigatório. O ID do carro que você quer |
POST /cars
Body | Tipo | Descrição |
---|---|---|
model, year, color, status?, buyValue, doorsQty,seatsQty |
object |
Obrigatório. Características do carro que você quer adicionar |
PUT /cars/${id}
Parâmetro | Tipo | Descrição |
---|---|---|
id |
string |
Obrigatório. O ID do carro que você quer editar |
Body | Tipo | Descrição |
---|---|---|
model, year, color, status?, buyValue, doorsQty,seatsQty |
object |
Obrigatório. Características do carro que você quer editar |
DELETE /cars/${id}
Parâmetro | Tipo | Descrição |
---|---|---|
id |
string |
Obrigatório. O ID do carro que você quer deletar |
GET /motorcycles
GET /motorcycles/${id}
Parâmetro | Tipo | Descrição |
---|---|---|
id |
string |
Obrigatório. O ID da moto que você quer |
POST /motorcycles
Body | Tipo | Descrição |
---|---|---|
model, year, color, status?, buyValue, category, engineCapacity |
object |
Obrigatório. Características da moto que você quer adicionar |
PUT /motorcycles/${id}
Parâmetro | Tipo | Descrição |
---|---|---|
id |
string |
Obrigatório. O ID da moto que você quer editar |
Body | Tipo | Descrição |
---|---|---|
model, year, color, status?, buyValue, category, engineCapacity |
object |
Obrigatório. Características da moto que você quer editar |
DELETE /motorcycles/${id}
Parâmetro | Tipo | Descrição |
---|---|---|
id |
string |
Obrigatório. O ID da moto que você quer deletar |
- Clone o repositório
- Use o comando:
git clone git@github.com:Thiago-Bodnar/Car-Shop.git
. - Entre na pasta do repositório que você acabou de clonar:
cd Car-Shop
- Instale as dependências
npm install
Rode os serviços
node
emongodb
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
docker exec -it car_shop bash
.
- Ele te dará acesso ao terminal interativo do container criado pelo compose, que está rodando em segundo plano.
Instale as dependências 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.
⚠ Atenção ⚠ Não rode o comando npm audit fix! Ele atualiza várias dependências do projeto, e essa atualização gera conflitos com os testes.
✨ Dica: A extensão Remote - Containers
é indicada para que você possa utilizar a aplicação no container Docker direto no VS Code, como você faz com seus arquivos locais.
Instale as dependências com
npm install
⚠ Atenção ⚠ Não rode o comando npm audit fix! Ele atualiza várias dependências do projeto, e essa atualização gera conflitos com os testes.
✨ Dica: Para rodar o projeto desta forma, obrigatoriamente você deve ter o node
instalado em seu computador.
Meu maior aprendizado com esse projeto foi implementar a arquitetura MSC, utilizando Orientação à objetos com um banco de dados MongoDB, utilizando o Mongoose. Na implementação, busquei seguir os padrões SOLID, o que se tornou para mim o maior desafio do projeto. No Car Shop, desenvolvi uma boa compreensão sobre abstração de classes e reusabilidade de métodos, o que certamente me ajudará em projetos futuros.
Back-end: Node, Express, Typescript, MongoDB, Mongoose, Zod, Mocha, Chai, Sinon
Para rodar os testes, rode o seguinte comando no terminal
npm test