mongo-car-shop-api
🚗 MongoDB Car Shop
📃 About/Sobre
:us: English
MongoDB, Node.js, Express.js, TypeScript, OOP (Object-Oriented Programming) and SOLID project developed by Gustavo da Silva at the end of Unit 30 of Trybe's Web Development course. I was approved with 100% of the mandatory and optional requirements met.
We had to develop a RESTful API for a Car shop using OOP (Object-Oriented Programming) and SOLID principles with a MongoDB database. We also had to implement unit tests.
:brazil: Português
Projeto de MongoDB, Node.js, Express.js, TypeScript, POO (Programação Orientada a Objetos) e SOLID desenvolvido por Gustavo da Silva ao final do Bloco 30 do curso de Desenvolvimento Web da Trybe. Fui aprovado com 100% dos requisitos obrigatórios e opcionais atingidos.
Tivemos que desenvolver uma API RESTful para uma loja de veículos utilizando POO (Programação Orientada a Objetos) e princípios de SOLID com um banco de dados MongoDB. Também tivemos que implementar testes unitários.
:man_technologist: Developed Skills/Habilidades Desenvolvidas
:us: English
- Create classes
- Define types and interfaces
- Use OOP concepts such as Abstraction, Encapsulation, Inheritance, Composition and Polymorfism
- Use SOLID principles, such as Single Responsability, Open/Closed, Dependency Inversion, Substitution (Liskov) and Interface Segregation
- Develop a Express.js application with TypeScript
- Use a MongoDB database
- Use Mongoose.js with TypeScript
- Create a RESTful API
- Implement unit tests
:brazil: Português
- Criar classes
- Definir types e interfaces
- Utilizar conceitos de POO como: Abstração, Encapsulamento, Herança, Composição e Polimorfismo
- Utilizar princípios de SOLID como: Responsabilidade Única, Aberto/Fechado, Inversão de dependência, Substituição de Liskov e Segragação de Interfaces
- Desenvolver uma aplicação Express.js com TypeScript
- Utilizar um banco de dados MongoDB
- Utilizar o Mongoose.js com TypeScript
- Criar uma API RESTful
- Implementar testes unitários
🛠️ Tools/Ferramentas
- TypeScript
- Node.js
- Express.js
- Mongoose.js
- MongoDB
- Mocha.js
- Chai.js
- Sinon.js
- Docker
- OOP (Object-Oriented Programming)
- SOLID
🛠️ Installation and execution/Instalação e execução
:us: English
To run this application you need to have Git, Docker and Docker Compose installed on your machine. Docker Compose needs to be at 1.29 version or superior.
1 - Clone the repository and enter the application folder
git clone [email protected]:raphaelalmeidamartins/mongodb-car-shop.git && cd mongodb-car-shop
2 - Run the containers by running the command below in the application folder
docker-compose up -d --buid
3 - Access the documentation and make requests to the server running on the port 3001
Access the route http://localhost:3001/docs to see documentation and try the API. If you prefer, you can use a HTTP requests client of your choice (Insomnia, Thunder Client, etc) to make requests.
:brazil: Português
Para rodar está aplicação é necessário ter Git, Docker e o Docker Compose instalados no seu computador. O Docker Compose precisa estar na versão 1.29 ou superior.
1 - Clone o repositório e entre na pasta da aplicação
git clone [email protected]:GusttavoCDN/mongo-car-shop-api.git && cd mongo-car-shop-api
2 - Rode os containers executando o comando abaixo na pasta raiz da aplicação
docker-compose up -d
3 - Acesse a documentação e faça requisições para o servidor aberto na porta 3001
Acesse a rota http://localhost:3001/docs para acessar a documentação e testar a API. Se preferir, utilize um cliente de requisições HTTP de sua preferência (Insomnia, Thunder Client, etc) para fazer as requisições.
📚 Documentation/Documentação
:us: English
With the application running, enter the http://localhost:3001/docs route on your browser to see documentation.
:brazil: Português
Com a aplicação em execução, acesse a rota http://localhost:3001/docs no navegador para ver a documentação.
🧪 Tests coverage/Cobertura de testes
:us: English
Run the following command in the root directory of the project to check the tests coverage:
npm run test:coverage
:brazil: Português
Execute o comando abaixo no diretório raiz do projeto para verificar a cobertura de testes.
npm run test:coverage