Skip to content

Projeto criado para exercitar os conhecimentos de Typescript com Orientação a Objetos, classes de domínio, interfaces e enum, banco de dados MongoDB e Mongoose.

Notifications You must be signed in to change notification settings

fa-biano/car-shop

Repository files navigation

🚗 Projeto Car Shop!

Nesse projeto foi desenvolvida uma API REST e um banco de dados para gerenciamento de um loja de veículos.
Foram implementados endpoints que realizam um CRUD e gerenciam os carros e motos disponíveis.

O objetivo principal foi de exercitar os conhecimentos sobre Typscript, Orientação a Objetos (POO), classes de domínio, interfaces e enum, banco de dados NoSQL MongoDB com modelagem pelo Mongoose, além da implementação de middleware de erros e os conceitos da arquitetura MSC (Model, Service e Controller).

O desenvolvimento desse projeto foi realizado durante o curso de Desenvolvimento Web na Trybe!

Como utilizar:

Clone o repositório: git clone git@github.com:fa-biano/car-shop.git.

Rodando com Docker 🐳 ou Localmente

👉 Com Docker

⚠ Antes de começar, seu docker-compose precisa estar na versão 1.29 ou superior. Veja aqui ou na documentação como instalá-lo. No primeiro artigo, você pode substituir onde está com 1.26.0 por 1.29.2.

Rode os serviços node e mongoDB com o comando docker-compose up -d.

  • Esses serviços irão inicializar um container chamado car_shop e outro chamado car_shop_db.
  • A partir daqui você pode rodar o container 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 [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.

👉 Sem Docker

ℹ️ Instale as dependências [Caso existam] com npm install

  • Dica: Para rodar o projeto desta forma, obrigatoriamente você deve ter o node instalado em seu computador.
  • Dica: O projeto espera que a versão do node utilizada seja a 16.

Inicializando:

ℹ️ Após seguir os passos de como rodar o projeto citados acima

Renomeie o arquivo .env.example para .env.

Instale as dependências npm install

Suba os containers do docker compose docker compose up -d

📭 Rotas:

O projeto está rodando na porta 3001. Seguem as rotas que podem ser acessadas:

/cars:
- POST: cria novo carro;
- GET: lista os carros cadastrados;
- GET: /cars/:id traz as informações do carro conforme id;
- PUT: /cars/:id atualiza as informações do carro conforme id;
- DELETE: /cars/:id exclui o carro conforme id;

/motorcycles:
- POST: cria nova moto;
- GET: lista as motos cadastradas;
- GET: /cars/:id traz as informações da moto conforme id;
- PUT: /cars/:id atualiza as informações da moto conforme id;
- DELETE: /cars/:id exclui a moto conforme id;

Utilize o seu client preferido para testar as rotas acima.
Lembre-se se enviar o body da requisição com as chaves previstas nos contratos das interfaces ICar e IMotorcycle.

🔥 Tecnologias utilizadas:

Back-end: Typescript, Orientação a Objetos (POO), Node.js e Express
Banco de Dados: NoSQL MongoDB e Mongoose (ODM)
Testes: Mocha, Chai, Sinon
Arquitetura: Camadas (Model, Service, Controller)

About

Projeto criado para exercitar os conhecimentos de Typescript com Orientação a Objetos, classes de domínio, interfaces e enum, banco de dados MongoDB e Mongoose.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published