🇺🇸 English
MongoDB, Node.js, Express.js, TypeScript, OOP (Object-Oriented Programming) and SOLID project developed by Raphael Martins at the end of Unit 30 (Back-end Development Module) 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.
🇧🇷 Português
Projeto de MongoDB, Node.js, Express.js, TypeScript, POO (Programação Orientada a Objetos) e SOLID desenvolvido por Raphael Martins ao final do Bloco 30 (Módulo Desenvolvimento Back-end) 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.
🇺🇸 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
🇧🇷 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
- TypeScript
- Node.js
- Express.js
- Mongoose.js
- MongoDB
- Mocha.js
- Chai.js
- Sinon.js
- Docker
- OOP (Object-Oriented Programming)
- SOLID
🇺🇸 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.
git clone git@github.com:raphaelalmeidamartins/mongodb-car-shop.git && cd mongodb-car-shop
docker-compose up -d --buid
Access the route http://localhost:3001/docs/en to see the English 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.
🇧🇷 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.
git clone git@github.com:raphaelalmeidamartins/mongodb-car-shop.git && cd mongodb-car-shop
docker-compose up -d --build
Acesse a rota http://localhost:3001/docs/br para acessar a documentação em português 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.
🇺🇸 English
With the application running, enter the http://localhost:3001/docs/en route on your browser to see the English documentation.
🇧🇷 Português
Com a aplicação em execução, acesse a rota http://localhost:3001/docs/br no navegador para ver a documentação em português.
🇺🇸 English
Run the following command in the root directory of the project to check the tests coverage:
npm run test:coverage
🇧🇷 Português
Execute o comando abaixo no diretório raiz do projeto para verificar a cobertura de testes.
npm run test:coverage