Site desenvolvido para a entidade Mauá Esports.
O site consiste em centralizar e facilitar a administração das atividades esportivas, incluindo a gestão dos horários de treino, das horas PAE dos alunos e das informações sobre os times e campeonatos.
✔ Concluído.
Usuário (Sem Login):
. Fazer Login (Microsoft)
. Visualizar Informações (Mauá Esports)
. Visualizar Twitch
. Visualizar Times(Membros e Administradores)
. Visualizar Campeonatos
. Visualizar Novidades
. Visualizar Termos e Políticas
. Enviar Mensagem para Mauá Esports
Usuário (Com Login):
. Todas as funções disponíveis para o usuário
. Visualizar Treinos
. Visualizar Horas PAEs
. Editar Perfil
Administrador:
. Todas as funções disponíveis para o usuário
. Administrar Site
. Editar Site
React | Tailwind CSS | Vite | Node.js | MongoDB | MSAL - Microsoft | Python | Azure | Figma |
Nome |
---|
Alvaro Nogueira Junqueira Souza |
Antônio Vítor Bozzo de Napoli |
Felipe Brito Moulin Rodrigues |
Guilherme Viana Fim |
Luan Camara Lopes |
Victor Hugo Pinho |
@azure/msal-browser | versão ^4.11.1 | Biblioteca para autenticação Microsoft Azure AD no navegador.
@azure/msal-react | versão ^3.0.11 | Componentes React para integração com Microsoft Authentication Library.
@tailwindcss/vite | versão ^4.0.14 | Plugin Vite para integração com Tailwind CSS.
aos | versão ^2.3.4 | Biblioteca para animações on-scroll (Animate On Scroll).
axios | versão ^1.8.4 | Biblioteca para requisições HTTP.
bcrypt | versão ^5.1.1 | Hashing de senhas para segurança.
body-parser | versão ^1.20.3 | Middleware para parsing de corpo de requisições HTTP.
cors | versão ^2.8.5 | Habilita CORS para requisições entre origens.
dotenv | versão ^16.4.7 | Gerenciamento de variáveis de ambiente.
exceljs | versão ^4.4.0 | Biblioteca para criar e manipular arquivos Excel.
express | versão ^4.21.2 | Framework para criar servidores web e APIs.
express-validator | versão ^7.2.1 | Middleware para validação de dados em Express.
framer-motion | versão ^12.10.0 | Biblioteca para animações e transições em React.
jsonwebtoken | versão ^9.0.2 | Geração e verificação de tokens JWT.
lucide-react | versão ^0.503.0 | Biblioteca de ícones SVG para React.
mongoose | versão ^7.0.0 | ODM para trabalhar com MongoDB em Node.js.
mongoose-unique-validator | versão ^4.0.1 | Validação de unicidade para Mongoose.
multer | versão ^1.4.5-lts.2 | Middleware para upload de arquivos em Node.js.
path | versão ^0.12.7 | Utilitários para trabalhar com caminhos de arquivo.
pdfkit | versão ^0.17.1 | Biblioteca para geração de documentos PDF.
react | versão ^18.2.0 | Biblioteca JavaScript para construção de interfaces de usuário.
react-dom | versão ^18.2.0 | Renderização do React no DOM.
react-easy-crop | versão ^5.4.1 | Componente React para cropping de imagens.
react-icons | versão ^5.5.0 | Biblioteca de ícones populares para React.
react-markdown | versão ^10.1.0 | Componente React para renderização de Markdown.
react-quill | versão ^2.0.0 | Editor de texto rico para React baseado em Quill.
react-router-dom | versão ^7.3.0 | Roteamento para aplicações React.
react-tooltip | versão ^5.28.1 | Componente de tooltip para React.
rehype-raw | versão ^7.0.0 | Plugin para processar HTML raw em Markdown.
remark-gfm | versão ^4.0.1 | Plugin para suporte ao GitHub Flavored Markdown.
styled-components | versão ^6.1.16 | Biblioteca para estilização de componentes React com CSS-in-JS.
tailwindcss | versão ^4.0.14 | Framework CSS utilitário para estilização rápida.
uuid | versão ^11.1.0 | Geração de identificadores únicos universais.
ws | versão ^8.18.2 | Biblioteca WebSocket para Node.js.
Requisitos:
. Node.js 16+ para executar o backend e frontend (Vite)
. npm como gerenciador de pacotes
. MongoDB 5.0+ para banco de dados NoSQL
. Python 3.10+ (caso deseje gerar relatórios via /src/horas-pae-relatorios)
. IDE (VS Code recomendado)
Execução:
1. Clone o repositóro | git clone https://github.com/VictorHugo-7/S3-Site-MauaEsports
2. Navegue até o diretório do projeto | cd maua-esports
3. Instale as dependências | npm install
4. Configure as variáveis de ambiente | PORT=3000
| MONGO_URI=mongodb://localhost:27017/nome-do-banco
5. Inicialize o servidor | npm run dev
6. API para Relatórios de Horas PAEs (OPCIONAL) | cd/maua-esports/src/horas-pae-relatorios
| pip install -r requirements.txt
| python app.py
1. Clone o repositóro | git clone https://github.com/VictorHugo-7/S3-Site-MauaEsports
2. Navegue até o diretório do projeto | cd maua-esports
3. Instale as dependências | npm install
4. rode todos os testes | npm test
5. rode um teste específico | npm test nome_arquivo (exemplo: npm test usuarios.test.cjs)
1. Fork | Crie uma cópia do repositório no seu perfil
2. Clone | git clone https://github.com/VictorHugo-7/S3-Site-MauaEsports
3. Crie uma Branch | git checkout -b minha-branch
4. Faça as Alterações | Edite os arquivos e teste.
5. Commit e Push | git add .
| git commit -m "Descrição das alterações"
| git push origin minha-branch
6. Pull Request | Solicite a inclusão de suas mudanças no repositório original.
├── maua-esports/
│ ├── src/
│ │ ├── App.jsx
│ │ ├── authConfig.js
│ │ ├── index.css
│ │ ├── main.jsx
│ │ ├── components/
│ │ │ ├── AdicionarAdmin.jsx
│ │ │ ├── AdicionarMembro.jsx
│ │ │ ├── AdicionarTime.jsx
│ │ │ ├── Agendamento.jsx
│ │ │ ├── AlertaErro.jsx
│ │ │ ├── AlertaOk.jsx
│ │ │ ├── CancelarBtn.jsx
│ │ │ ├── CardAdmin.jsx
│ │ │ ├── CardJogador.jsx
│ │ │ ├── CardTime.jsx
│ │ │ ├── DeletarBtn.jsx
│ │ │ ├── EditarBtn.jsx
│ │ │ ├── ImageCropper.jsx
│ │ │ ├── ModalAdicionarAdmin.jsx
│ │ │ ├── ModalAdicionarJogador.jsx
│ │ │ ├── modalConfirmarExclusao.jsx
│ │ │ ├── ModalEditarAdmin.jsx
│ │ │ ├── ModalEditarJogador.jsx
│ │ │ ├── ModalEditarTime.jsx
│ │ │ ├── ModalNovoTime.jsx
│ │ │ ├── ModalUsuario.jsx
│ │ │ ├── NaoAutorizado.tsx
│ │ │ ├── NavBar.tsx
│ │ │ ├── PageBanner.jsx
│ │ │ ├── ProtectedRoute.tsx
│ │ │ ├── Rodape.jsx
│ │ │ ├── SalvarBtn.jsx
│ │ │ ├── UseImageCrop.jsx
│ │ │ ├── campeonatos/
│ │ │ │ ├── AddBtn.jsx
│ │ │ │ ├── Board.jsx
│ │ │ │ ├── Card.jsx
│ │ │ │ ├── CardModal.jsx
│ │ │ │ └── Column.jsx
│ │ │ ├── home/
│ │ │ │ ├── s1Apresentacao/
│ │ │ │ │ ├── Apresentacao.jsx
│ │ │ │ │ └── ApresentacaoModal.jsx
│ │ │ │ ├── s2Twitch/
│ │ │ │ │ └── Twitch.jsx
│ │ │ │ ├── s3Cards/
│ │ │ │ │ ├── Card.jsx
│ │ │ │ │ ├── CardLayout.jsx
│ │ │ │ │ └── CardModal.jsx
│ │ │ │ └── s4Novidade/
│ │ │ │ ├── Novidade.jsx
│ │ │ │ └── NovidadeModal.jsx
│ │ │ ├── padrao/
│ │ │ │ ├── Espaco.jsx
│ │ │ │ └── Margin.jsx
│ │ │ └── politicas/
│ │ │ ├── AddBtn.jsx
│ │ │ ├── ContentSection.jsx
│ │ │ └── Menu.jsx
│ │ ├── fonts/
│ │ │ └── Blinker-Regular.ttf
│ │ ├── horas-pae-relatorios/
│ │ │ ├── app.py
│ │ │ ├── config.py
│ │ │ ├── horas_pae_reporter.py
│ │ │ ├── requirements.txt
│ │ │ ├── fonts/
│ │ │ │ └── DejaVuSans.ttf
│ │ │ └── report-generator/
│ │ │ ├── __init__.py
│ │ │ └── templates/
│ │ │ └── base.html
│ │ └── pages/
│ │ ├── Admins.jsx
│ │ ├── AdminUsuarios.jsx
│ │ ├── Campeonatos.jsx
│ │ ├── Home.jsx
│ │ ├── HorasPae.jsx
│ │ ├── Membros.jsx
│ │ ├── NotFound.jsx
│ │ ├── Novidades.jsx
│ │ ├── Politicas.jsx
│ │ ├── Times.jsx
│ │ └── TreinosAdmin.jsx
│ ├── test-results/
│ │ └── junit.xml
│ ├── tests/
│ │ ├── setup.cjs
│ │ ├── integration/
│ │ │ ├── auth.test.cjs
│ │ │ ├── discord.test.cjs
│ │ │ └── api/
│ │ │ ├── admins.test.cjs
│ │ │ ├── home.test.cjs
│ │ │ ├── jogadores.test.cjs
│ │ │ ├── politicas.test.cjs
│ │ │ ├── times.test.cjs
│ │ │ ├── tournaments.test.cjs
│ │ │ ├── upload.test.cjs
│ │ │ └── usuarios.test.cjs
│ │ └── unit/
│ │ ├── middleware.test.cjs
│ │ └── models/
│ │ ├── admin.test.cjs
│ │ ├── jogador.test.cjs
│ │ ├── time.test.cjs
│ │ ├── tournament.test.cjs
│ │ └── usuario.test.cjs
│ ├── .eslintrc.cjs
│ ├── .gitignore
│ ├── backend.cjs
│ ├── declarations.d.ts
│ ├── index.html
│ ├── jest.config.cjs
│ ├── package-lock.json
│ ├── package.json
│ ├── twitch-service.cjs
│ └─── vite.config.js
├── LICENSE
├── README.md