🇺🇸 English
Node.js, Express.js, TypeScript, OOP (Object-Oriented Programming) and SOLID project developed by Raphael Martins at the end of Unit 28 (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 front-end application that was already developed. It's an application to check matches' data and the leaderboard of a soccer competition. It's possible to register and update matches. The authentication is handled with JSON Web Tokens. We also had to implement integration tests.
🇧🇷 Português
Projeto de Node.js, Express.js, TypeScript, POO (Programação Orientada a Objetos) e SOLID desenvolvido por Raphael Martins ao final do Bloco 28 (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 aplicação front-end que já estava implementada. É uma aplicação para conferir dados de partidas e a classificação geral de timess em um campeonato de futebol. É possível cadastrar e atualizar partidas. A autenticação é feita com JSON Web Token. Também tivemos que implementar testes de integração.
🇺🇸 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 Sequelize.js with TypeScript
- Create a RESTful API
- Implement integration 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 o Sequelize.js com TypeScript
- Criar uma API RESTful
- Implementar testes de integração
- TypeScript
- Node.js
- Express.js
- Sequelize.js
- MySQL
- React
- Mocha.js
- Chai.js
- Sinon.js
- Docker
- OOP (Object-Oriented Programming)
- SOLID
🇺🇸 English
To run this application you need to have Git, Docker, Node and Docker Compose installed on your machine. Docker Compose needs to be at 1.29 version or superior and Node needs to be at 16 version.
git clone [email protected]:raphaelalmeidamartins/trybe-futebol-clube.git && cd trybe-futebol-clube
npm run compose:up
- email: [email protected]
- password: secret_admin
- email: [email protected]
- password: secret_user
🇧🇷 Português
Para rodar está aplicação é necessário ter Git, Docker, Node e o Docker Compose instalados no seu computador. O Docker Compose precisa estar na versão 1.29 ou superior e o Node na versão 16.
git clone [email protected]:raphaelalmeidamartins/trybe-futebol-clube.git && cd trybe-futebol-clube
npm run compose:up
- email: [email protected]
- password: secret_admin
- email: [email protected]
- password: secret_user
🇺🇸 English
Run the following command in the root directory of the project to check the tests coverage:
cd ./app/backend/ && npm install && npm run test:coverage
Note: right now the tests cover about 99% of all the lines. I'll still implement a few more tests to reach 100% coverage.
🇧🇷 Português
Execute o comando abaixo no diretório raiz do projeto para verificar a cobertura de testes.
cd ./app/backend/ && npm install && npm run test:coverage
Observação: no momento os testes cobrem cerca de 99% das linhas. Ainda implementarei mais alguns testes para atingir 100% de cobertura.