Olá. Bem vindo ao projeto Trybe Futebol Clube (TFC). Este projeto do módulo de Back-end da Trybe consiste no desenvolvimento de uma aplicação para acompanhamento e gerenciamento de um campeonato de futebol.
- Dockerização da aplicação (frontend, backend e banco de dados) utilizando docker compose
- Modelagem de banco de dados MySQL utilizando o ORM Sequelize
- Acesso, extração e manipulação de dados de um banco de dados
- Desenvolvimento de API seguindo os padrões REST
- Paradigma de Programação Orientada a Objetos (P.O.O) e padrão S.O.L.I.D
- Implementação de testes de Integração
- Metodologia TDD (Teste Driven Development)
- Node.js;
- Express.js;
- MySQL;
- Sequelize(ORM);
- JWT(Autenticação);
- bcrypt.js;
- Docker;
- TypeScript;
- Mocha;
- Chai;
- Sinon.js;
Dentro de app/
temos duas pastas contendo o frontend e o backend da aplicação.
O frontend da aplicação foi desenvolvido pela Trybe e disponibilizada aos alunos.
- Autenticação e autorização de usuário;
- Consulta de times cadastrados;
- Cadastro de partidas;
- Edição de partidas;
- Consulta de partidas;
- Consulta de tabela atualizada do campeonato
É possível rodar o projeto tanto localmente quanto em containers.
dentro da raiz da aplicação, rode:
npm run compose:up
ou
npm run compose:up:dev
para rodar em desenvolvimento
para iniciar o backend acesse app/backend/
atualize o arquivo .env.example
para .env
e edite as variáveis de acordo com o acesso ao seu banco de dados local.
Depois, rode:
npm run prestart && npm run start
ou
npm run predev && npm run dev
para rodar em desenvolvimento.
para iniciar o frontend acesse app/frontend/
e rode:
npm run start
Os seguintes arquivos foram desenvolvidos parcialmente ou integralmente pela Trybe:
- os arquivos de configuração contidos na raiz do projeto;
- os arquivos de configuração contidos na pasta
app/backend/
exceto odockerfile
; - os arquivos contidos em
app/backend/src/database/seeders
eapp/backend/src/database/config
; - os arquivos
app/backend/src/app.ts
eapp/backend/src/index.ts
; - os arquivos contidos na pasta
app/frontend/