Esse projeto foi desenvolvido para uma vaga de backend na empresa XYZ Automóveis
.
A proposta era desenvolver uma aplicação backend para uma concessionária de automóveis, abrangindo carros, motos e caminhões.
Poucos detalhes foram dados sobre a forma para abordar o projeto. As únicas informações fornecidas foram os campos minimos que a aplicação deveria abordar, sendo elas:
Tipo | Marca | Model | Versão | Ano | Quilometragem |
---|---|---|---|---|---|
string |
string |
string |
string |
Number |
Number |
Pre-requisitos para rodar o projeto:
- mongoDB
- NPM
Copie o ssh do projeto [email protected]:pauloricardoz/desafio-auto-trybe-back.git
-
Abra um terminal no seu computador e utilize os comandos a baixo na ordem que são apresentados:
git clone [email protected]:pauloricardoz/desafio-auto-trybe-back.git
cd desafio-auto-trybe-back
npm install
npm start
A aplicação está configurada para rodar na porta local 3000. Caso deseje utilizar outra porta utilize o arquivo
.env.example
para trocar para a porta desejada. Após a alteração renomeie o arquivo para.env
A API consta com 2 rotas:
/
=> caso alguém acesse via brower [GET
]/cars
=> Para as demais funcionalidades/
[GET
] Pegar todas os carros cadastrados/properties
[POST
] Filtra carros pelas properties passadas no body da requisição/
[POST
] Insere um novo carro/
[PUT
] Edita dados de um carro já cadastrado no banco/
[DELETE
] Deleta um carro cadastrado no banco
O projeto foi desenvolvido utilizando TDD, inicialmente com testes unitários, e posteriormente foi implementado um teste de integração.
Foi utilizado para o desenvolvimento desse projeto o NodeJS com Express para a criação básica, Mocha/Chai para a criação dos teste unitários e de integração.
Segue abaixo os atributos de um automóvel utilizados, os tipos de dados de cada um e a forma que foram armazenados no banco:
O banco escolhido para a aplicação foi Mongodb
, pela agilidade no desenvolvimento, facilidade de adição de novas informações sem necessitar re-estruturar toda a estrutura e pela robustes para lidar com grande volume de requisições.
A atual cobertura de testes é de:
98%
das linhas;
- Implementação do Swagger para documentação da API
- Implementação de Token de acesso
- Deplay no Heroku
- Implementação de transmissão de dados
in real time
através do SocketIO
![LinkedIn](./images/Paulo Ricardo Zambelli Taveira0003.jpg)