Skip to content

O Car Shop é uma API que gerencia uma concessionária de veículos. API feita em TypeScript com arquitetura MSC, aplicando POO e utilizando o banco de dados MongoDB.

Notifications You must be signed in to change notification settings

trkotovicz/mongoose-car-shop

Repository files navigation

Car Shop

O Car Shop é uma API que gerencia uma concessionária de veículos.
Trata-se de uma API TypeScript na arquitetura MSC, aplicando os pilares de POO e utilizando o ODM Mongoose para se conectar com um banco de dados MongoDB.

Habilidades

Nesse projeto, fui capaz de:

  • Aplicar os pilares da Programação Orientada a Objetos (POO) e SOLID: Herança, Abstração, Encapsulamento e Polimorfismo;
  • Desenvolver uma API REST utilizando a arquitetura de software MSC (Model-Service-Controller);
  • Exercitar a criação e utilização de Interfaces;
  • Implementar, em TypeScript: Classes, Instâncias, Atributos, Métodos e Objetos;
  • Aplicar os conhecimentos de MongoDB e Typescript para criar uma API com CRUD;
  • Utilizar o framework Express, e a ODM Mongoose;
  • Desenvolver testes unitários com 100% de cobertura, utilizando Chai, Mocha e Sinon;

Inicialização via Docker 🐳

  1. Clone o repositório git@github.com:trkotovicz/mongoose-car-shop.git
  2. Na raíz do repositório rode o comando docker-compose up -d
  3. Entre o terminal do container criado docker exec -it car_shop bash
  4. Instale as dependências do projeto com npm install
  5. Inicie a aplicação dentro do container npm start

O servidor vai estar rodando na porta local 3000 (http://localhost:3000).
Utilize o cliente de requisições HTTP de sua preferência para fazer as requisições.

Rotas

POST /cars

Nessa rota você pode cadastrar um novo carro.
Para isso, utilize o formato abaixo no body da requisição:

{
  "model": "Ferrari Maranello",
  "year": 1963,
  "color": "red",
  "buyValue": 3500000,
  "seatsQty": 2,
  "doorsQty": 2
}

http://localhost:3000/cars

GET /cars

Esse endpoint retorna uma lista com todos os carros cadastrados.

http://localhost:3000/cars

GET /cars/id

Esse endpoint retorna um carro específico através de seu id.
Para isso, substitua o id do endpoint, pelo id do carro que você deseja buscar.

http://localhost:3000/cars/id

PUT /cars/id

Esse endpoint é responsável pela alteração de um carro específico.
Para isso, substitua o id do endpoint, pelo id do carro que você deseja alterar.
O corpo da requisição deve ter o seguinte modelo:

{
    "model": "Fiat Uno",
  "year": 1963,
  "color": "blue",
  "buyValue": 3500,
  "seatsQty": 4,
  "doorsQty": 4
}

http://localhost:3000/cars/id

DELETE /cars/id

Esse endpoint deleta um carro específico através de seu id.
Para isso, substitua o id do endpoint, pelo id do carro que você deseja excluir.

http://localhost:3000/cars/id

POST /motorcycles

Nessa rota você pode cadastrar uma motocicleta nova.
Para isso, utilize o formato abaixo no body da requisição:

{
  "model": "Honda CG Titan 125",
  "year": 1963,
  "color": "red",
  "buyValue": 3500,
  "category": "Street",
  "engineCapacity": 125
}

http://localhost:3000/motorcycles

GET /motorcycles

Esse endpoint retorna uma lista com todas as motos cadastradas.

http://localhost:3000/motorcycles

GET /motorcycles/id

Esse endpoint retorna uma moto específica através de seu id.
Para isso, substitua o id do endpoint, pelo id da motocicleta que você deseja buscar.

http://localhost:3000/motorcycles/id

PUT /motorcycles/id

Esse endpoint é responsável pela alteração de uma moto específica.
Para isso, substitua o id do endpoint, pelo id da motocicleta que você deseja alterar.
O corpo da requisição deve ter o seguinte modelo:

{
    "model": "Honda CG Titan 125",
  "year": 1963,
  "color": "black",
  "buyValue": 3500,
  "category": "Street",
  "engineCapacity": 125
}

http://localhost:3000/motorcycles/id

DELETE /motorcycles/id

Esse endpoint deleta uma motocicleta específica através de seu id.
Para isso, substitua o id do endpoint, pelo id da moto que você deseja excluir.

http://localhost:3000/motorcycles/id


Projeto desenvolvido por Thais R Kotovicz.

About

O Car Shop é uma API que gerencia uma concessionária de veículos. API feita em TypeScript com arquitetura MSC, aplicando POO e utilizando o banco de dados MongoDB.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published