Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/elisaborba/trybe-futebol-club
Aplicação em TypeScript que gerencia times de futebol. Usa Express.js para as requisições HTTP, com Sequelize para armazenar dados dos times e partidas, JWT para autenticação e oferece funcionalidades de CRUD para times, classificação e partidas.
https://github.com/elisaborba/trybe-futebol-club
docker express jwt-authentication mocha mocha-chai mysql nodejs sequelize sinon typescript
Last synced: about 1 month ago
JSON representation
Aplicação em TypeScript que gerencia times de futebol. Usa Express.js para as requisições HTTP, com Sequelize para armazenar dados dos times e partidas, JWT para autenticação e oferece funcionalidades de CRUD para times, classificação e partidas.
- Host: GitHub
- URL: https://github.com/elisaborba/trybe-futebol-club
- Owner: ElisaBorba
- Created: 2024-04-24T18:30:11.000Z (7 months ago)
- Default Branch: main
- Last Pushed: 2024-04-24T21:38:05.000Z (7 months ago)
- Last Synced: 2024-10-10T22:41:26.204Z (about 1 month ago)
- Topics: docker, express, jwt-authentication, mocha, mocha-chai, mysql, nodejs, sequelize, sinon, typescript
- Language: TypeScript
- Homepage:
- Size: 733 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# ⚽ Trybe Futebol Club
Esta aplicação foi desenvolvida para gerenciar partidas de futebol entre times. Utiliza TypeScript, Express.js e Sequelize para proporcionar uma experiência de gerenciamento de partidas de forma eficiente e segura.## 💻 Tecnologias Utilizadas
* Node.js
* Express.js
* TypeScript
* MySQL
* JWT Authentication
* Sequelize
* Docker### Estrutura do Projeto
```
├── backend/
│ ├── src/
│ │ ├── controllers/
│ │ ├── database/
│ │ ├── interfaces/
│ │ ├── middlewares/
│ │ ├── models/
│ │ ├── routes/
│ │ ├── services/
│ │ ├── tests/
│ │ ├── utils/
│ │ ├── app.ts
│ │ └── server.ts
│ ├── frontend/
│ └── ...
```
### JWT Authentication
Para acessar rotas protegidas, é necessário adicionar o token JWT no header da requisição:
`Bearer `* **Controllers**: Gerenciam as requisições HTTP, como LeaderboardController para classificação, MatchesController para partidas e TeamsController para times.
* **Middlewares**: validateLogin (valida o formato de login) e validateToken (validação do token).
* **Models**: Fornece métodos de interação com o database, como LeaderboardModel para classificação, MatchesModel para partidas, UserModel para o login e TeamModel para times.
* **Services**: Contêm a lógica de negócio e interagem com os models para operações no banco de dados.
* **Utils**: Possui as funções, teamStandingFormatter para formatar dados de classificação, sortLeaderboard para ordenar a classificação e mapStatusHTTP para mapear status HTTP para códigos numéricos.### Como Executar
1️⃣ Instale as dependências:
```
npm install
```
2️⃣ Inicializando com docker:
```
npm run compose:up
```
🎲 Execute as migrations e popule o banco de dados:
```
npm run db:reset
```
### 🧪 Execução dos no diretório tests/
```
npm run test
```