/trybe_futebol_clube

RESTfull API and database for fullstack web application about football matches and rankings (Project developed during the Trybe course with the front-end developed by Trybe).

Primary LanguageTypeScript

Trybe Futebol Clube (TFC) Project

TFC app Screen Shot

Sumário

  1. Sobre o Projeto
  2. Para Iniciar a Aplicação Localmente
  3. Contribuições e Autoria

Sobre o Projeto

O projeto Trybe Futebol Clube (TFC) é uma aplicação fullstack de um site informativo sobre partidas e classificações de futebol. Nesse projeto foi desenvolvido o back-end, composto por uma API REST que acessa banco de dados relacional, com rotas para leitura, cadastro e edição de informações sobre partidas de futebol e classificações de times. A API construída é consumida por um front-end desenvolvido e provido pela Trybe.

Contexto

Esse projeto foi desenvolvido por Juliana Álvares, como parte do processo de aprendizado do Módulo de Back-end, do curso de Desenvolvimento Web da Trybe 🚀

"A Trybe é uma escola do futuro para qualquer pessoa que queira mudar de vida e construir uma carreira de sucesso em tecnologia, onde a pessoa tem a possibilidade de só pagar quando conseguir um bom trabalho."

O programa conta com mais de 1.500 horas de aulas presenciais e online, aborda introdução ao desenvolvimento de software, front-end, back-end, ciência da computação, engenharia de software, metodologias Ágeis e habilidades comportamentais.

Tecnologias Utilizadas

Linguagens:

  • TypeScript
  • JavaScript - ES6

Back-end:

  • MySQL
  • Node.js
  • Express
  • Sequelize
  • JWT

Testes (back-end):

  • Mocha
  • Chai

Auxiliares (Execução):

  • Docker

Funcionalidades Implementadas

  • Construção de banco de dados MySQL, utilizando a ORM (Object Relational Mapper) Sequelize, com base no seguinte diagrama de Entidade-Relacionamento fornecido pela Trybe:

    Diagrama ER do Banco

    Fonte: TRYBE, 2022

  • API REST com os seguintes endpoints, conectados ao banco de dados, desenvolvida em modelo de camadas MSC (Model, Service e Controller):

    TFC API Routes

    Tais rotas possibilitam as seguintes funcionalidades no front-end:

    • Visualização da tabela e classificação geral dos times, com pontuações;
    • Visualização da tabela e classificação dos times mandantes, com pontuações;
    • Visualização da tabela e classificação dos times visitantes, com pontuações;
    • Visualização de dados de todas as partidas;
    • Visualização de dados das partidas em andamento;
    • Visualização de dados das partidas finalizadas;
    • Login com identificação da pessoa usuária e habilitação de permissões correspondentes;
    • Editar gols de partida em andamento (para usuário administrador);
    • Finalizar partida em andamento (para usuário administrador);
    • Cadastrar nova partida (para usuário administrador).

Para Iniciar a Aplicação Localmente

Para rodar esta aplicação localmente é necessário garantir o cumprimento dos pré-requisitos, fazer uma cópia do repositório e executar as instruções a seguir. Neste projeto é sugerido o uso do Docker, a partir do docker-compose já configurado no repositório, que subirá os serviços frontend, backend e db, via containers chamados app_frontend, app_backend e db.

Obs.: No docker-compose estão configuradas as seguintes portas por serviço: db na porta 3002, backend na porta 3001 (url base: http://localhost:3001), frontend na porta 3000 (url base: http://localhost:3000/).

Pré-requisitos

Clonando o Repositório

  git clone git@github.com:AlvaresJu/trybe_futebol_clube.git

Rodando Serviços com docker-compose e Executando a Aplicação

  cd trybe_futebol_clube/
  npm run compose:up

Após confirmação dos 3 containers rodando, acessar página: http://localhost:3000/

Obs.: Dados (email e senha) para login como administrador, para testes via front-end, estão contidos no arquivo: app/backend/src/database/seeders/20211205212238-users.js

Executando Testes do Back-end e Análise de Cobertura

  docker exec -it app_backend sh
  npm test
  npm run test:coverage

Parando a Aplicação e Descendo os Containers

  npm run compose:down

Contribuições e Autoria

Como descrito, este projeto foi proposto pela Trybe e desenvolvido por Juliana Álvares durante o curso de Desenvolvimento Web realizado. Por isso, foram disponibilizados pela Trybe alguns arquivos base de configurações e auxiliares ao desenvolvimento do projeto, além de toda a parte do front-end. Segue especificação de autoria dos principais documentos:

Arquivos/diretórios desenvolvidos pela autora do projeto (Juliana Álvares):

README.md | images/** | app/frontend/Dockerfile | quase todos os arquivios em app/backend/**

Arquivos/diretórios desenvolvidos pela Trybe:

Arquivos com configurações iniciais do projeto, como: .editorconfig | apps_install.sh | db.exemple.sql | dockerfile_dennylist.sh | versão inicial de package.json e package-lock.json | app/backend/.sequelizerc | app/backend/nyc.config.js | app/backend/tsc_eval.sh | app/backend/tsconfig.json | app/backend/src/database/config/** | praticamente todos os arquivos em app/frontend/**