Skip to content

Para este projeto, foram aplicados os princípios de Programação Orientada a Objetos (POO) para a construção de uma API com CRUD para gerenciar uma concessionária de veículos. Utilizando o banco de dados MongoDB através do framework do Mongoose

Notifications You must be signed in to change notification settings

ludson96/project-car-shop

Repository files navigation

Repositório do projeto Car Shop 🚗

Módulo: BACK-END

Repositório possuí projeto desenvolvido no período que estive na Trybe, abordando os conceitos de API Rest com CRUD completo em TypeScript, com utilização da ODM Mongoose, além de construir o projeto de acordo com o paradigma de orientação a objetos (POO) e SOLID. Docker para rodar o node e mongodb. Utilizando a arquitetura MSC.
Para testar a abordagem foram usados testes via Mocha, Chai, Sinon, com abordagem variando entre TDD e BDD;

Informações de aprendizados

  • Este é um projeto desenvolvido para me ajudar a aprender TypeScript, MongoDB e Mongoose;
  • Segundo projeto usando MongoDB;
  • Primeiro projeto usando Mongoose;
  • Utilizei o Cliente Rest Thunder Client, como extensão, para visualizar o retorno do meu acesso.

Linguagem usadas

NodeJS Docker ESLint TypeScript ts-node Express Mongo Mongoose .ENV Jest Mocha Chai

O que foi desenvolvido

Para este projeto, foram aplicados os princípios de Programação Orientada a Objetos (POO) para a construção de uma API com CRUD para gerenciar uma concessionária de veículos. Em TypeScript, utilizando o banco de dados MongoDB através do framework do Mongoose.

Instruções para instalar e rodar

  1. Clone o repo:

    git clone [email protected]:Ludson96/project-car-shop.git
  2. Entre na pasta do repositório que você acabou de clonar:

    cd project-car-shop
  3. Instale as dependências e inicialize o projeto:

    npm install
  4. Rode os serviços node e db com o comando, através do docker:

    docker-compose up -d

Endpoints

Abaixo você pode conferir um detalhamento dos endpoints utilizados no projeto. Para realizar as requisições HTTP e consultar o comportamento de cada endpoint, você pode utilizar a extensão Thunder Client.

ℹ️ Para todos os endpoints que exijam o id dos carros e motos, atente-se que o id é um ObjectId. Saiba mais sobre ObjectId aqui.

Cars

GET /cars

  • Retorna todos os carros registrados no banco de dados.
  • URL: http://localhost:PORT/cars

POST /cars

  • Adiciona um novo carro ao banco de dados.
  • URL: http://localhost:PORT/cars
  • O corpo da requisição deve seguir o formato abaixo:
{
  "model": "Marea",
  "year": 2002,
  "color": "Black",
  "status": true, // Não é obrigatório. Se não for inserido, o valor do status será 'false'
  "buyValue": 15.990,
  "doorsQty": 4,
  "seatsQty": 5
}

GET /cars/:id

  • Retorna o carro cujo id foi passado na URL.
  • Exemplo de URL: http://localhost:PORT/cars/634852326b35b59438fbea2f

PUT /cars/:id

  • Atualiza o carro cujo id foi passado na URL.
  • Exemplo de URL: http://localhost:PORT/cars/634852326b35b59438fbea2f
  • O corpo da requisição deve seguir o formato abaixo:
{
  "model": "Marea",
  "year": 1992,
  "color": "Red",
  "status": true, // Não é obrigatório. Se não for inserido, o valor do status será 'false'
  "buyValue": 12.000,
  "doorsQty": 2,
  "seatsQty": 5
}

DELETE /cars/:id

  • Remove do banco de dados o carro cujo id foi passado na URL.
  • Exemplo de URL: http://localhost:PORT/cars/634852326b35b59438fbea2f

Motorcycles

GET /motorcycles

  • Retorna todas as motos registradas no banco de dados.
  • URL: http://localhost:PORT/motorcycles

POST /motorcycles

  • Adiciona uma nova moto ao banco de dados.
  • URL: http://localhost:PORT/motorcycles
  • O corpo da requisição deve seguir o formato abaixo:
{
  "model": "Honda Cb 600f Hornet",
  "year": 2005,
  "color": "Yellow",
  "status": true, // Não é obrigatório. Se não for inserido, o valor do status será 'false'
  "buyValue": 30.000,
  "category": "Street", // Valores aceitos: "Street", "Custom" ou "Trail"
  "engineCapacity": 600
}

GET /motorcycles/:id

  • Retorna a moto cujo id foi passado na URL.
  • Exemplo de URL: http://localhost:PORT/motorcycles/634852326b35b59438fbea2f

PUT /motorcycles/:id

  • Atualiza a moto cujo id foi passado na URL.
  • Exemplo de URL: http://localhost:PORT/motorcycles/634852326b35b59438fbea2f
  • O corpo da requisição deve seguir o formato abaixo:
{
  "model": "Honda Cb 600f Hornet",
  "year": 2014,
  "color": "Red",
  "status": true, // Não é obrigatório. Se não for inserido, o valor do status será 'false'
  "buyValue": 45.000,
  "category": "Street", // Valores aceitos: "Street", "Custom" ou "Trail"
  "engineCapacity": 600
}

DELETE /motorcycles/:id

  • Remove do banco de dados a moto cujo id foi passado na URL.
  • Exemplo de URL: http://localhost:PORT/motorcycles/634852326b35b59438fbea2f


docker-compose.yml fornecidos pela Trybe.

About

Para este projeto, foram aplicados os princípios de Programação Orientada a Objetos (POO) para a construção de uma API com CRUD para gerenciar uma concessionária de veículos. Utilizando o banco de dados MongoDB através do framework do Mongoose

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published