Trybe Futebol Clube

O objetivo deste projeto era desenvolver uma API com Typescript seguindo o método TDD e os principios da POO.

Trybe Futebol Clube

O objetivo deste projeto era desenvolver uma API com Typescript seguindo o método TDD e os principios da POO(Programação orientada a objeto) e também os principios de SOLID, o serviço de frontend já desenvolvido esperava apenas o desenvolvimento do backend com a regra de negocio adequada para popular corretamente o frontend, seu banco de dados é gerenciado pelo Sequelize, seguindo a arquitetura MSC.

  • Tecnologias utilizadas: Typescript, TDD, POO, Sequelize, Node.js, JWT, Joi, Docker, docker-compose, Mocha, Chai, Sinon, MySQL.

Funcionamento

Foram desenvolvidas rotas de GET, POST e PATCH para o funcionamento da API, algumas com seus middlewares para validação do token de usuário gerado pelo JWT, são geradas para o front dados sobre as partidas tanto em andamento quanto já finalizadas, além de dados sobre os times e a tabela de lideres, as validações para inserção de dados em sua maioria são validadas pelo JOI, além de terem suas próprias interfaces do typescript.

Importante

  • Caso deseje ver o funcionamento da aplicação localmente siga os procedimentos abaixo:

O frontend utiliza a porta 3000, o backend a 3001 e o banco de dados a 3002, então certifique-se de ter todas elas disponíveis antes de executar o passo abaixo ou altere as mesmas nos seus respectivos arquivos docker-compose na pasta app.

Clone o repositório e instale as dependências tanto do frontend quanto do backend rodando o comando: npm run install:apps na raiz do projeto, já para visualizar toda a aplicação será necessário ter o docker instalado em sua máquina, após isso só executar o comando: npm run compose:up ou npm run compose:up:dev(o segundo comando serve para que se algo for alterado o container se atualiza automaticamente, tornando assim desnecessário que ele seja reiniciado caso aja alguma alteração nos arquivos).

Os testes desenvolvidos por mim para o backend podem ser executados entrando na pasta raiz do backend dentro da pasta app, com o comando: npm run test ou somente npm test.