O WarTracker é um painel para liderança de clãs do Clash Royale. Ele centraliza login, visão de guerra, histórico, membros, preferências de usuário e informações do clã em uma interface única, com foco em organizar o time e reduzir ruído visual no acompanhamento das guerras.
O objetivo do projeto é ajudar líderes e co-líderes a:
- acompanhar a guerra atual e os ataques pendentes;
- visualizar membros ativos e desempenho do clã;
- consultar histórico de guerras sem poluir a tela com dados irrelevantes;
- controlar preferências do usuário e acesso ao painel;
- usar uma interface simples para consulta rápida no dia a dia do clã.
O projeto é dividido em duas partes:
backend/: API em Node.js com Express e MongoDB/Mongoose.frontend/: aplicação em React com Vite, Tailwind CSS e Lucide Icons.
O fluxo funciona assim:
- o usuário acessa a landing page;
- faz login informando a tag do jogador;
- o backend consulta a API do Clash Royale;
- se o jogador for líder ou co-líder do clã monitorado, um JWT é gerado;
- o frontend salva o token e carrega o dashboard;
- o dashboard busca dados do perfil, preferências, estatísticas do clã e histórico de guerras.
- Hero principal com chamada para o painel.
- Seção O Projeto explicando a proposta do WarTracker.
- Seção Recursos apresentando os blocos principais do sistema.
- Menu responsivo para desktop e mobile.
- Login por tag do jogador.
- Validação de cargo via API oficial do Clash Royale.
- Restrição de acesso para líderes e co-líderes.
- Geração de token JWT para manter a sessão.
- Visão da guerra atual do clã.
- Total de medalhas do clã.
- Quantidade de ataques pendentes.
- Quantidade de membros participando.
- Lista de membros com status formatado.
- Histórico de guerra com dados normalizados.
- Preferências do usuário.
- Busca visual por membro.
- Ações de imprimir e compartilhar ranking.
- Normalização de respostas entre frontend e backend.
- Filtragem de ex-membros para reduzir poluição no histórico.
- Tratamento de tags com padronização para evitar diferenças de formatação.
- React 19
- Vite
- Tailwind CSS
- Lucide React
- Node.js
- Express
- MongoDB
- Mongoose
- JWT
- CORS
- Axios
- bcryptjs
backend/
config/
database.js
controllers/
clanController.js
middleware/
auth.js
models/
Clan.js
User.js
routes/
auth.js
clan.js
user.js
utils/
crApi.js
seed.js
server.js
frontend/
src/
components/
Dashboard.jsx
LandingPage.jsx
LoginPage.jsx
App.jsx
main.jsx
App.css
index.css
POST /api/auth/login
GET /api/clan/statsGET /api/clan/history
GET /api/user/profilePUT /api/user/profileGET /api/user/preferencesPUT /api/user/preferences
Crie o arquivo backend/.env com algo neste formato:
PORT=5000
MONGODB_URI=sua_string_de_conexao_do_mongodb
JWT_SECRET=seu_segredo_jwt
CLAN_TAG=#SUA_TAG_AQUISe você for rodar o frontend localmente, o endereço padrão da API é http://localhost:5000.
cd backend && npm install
cd ../frontend && npm installcd backend
npm run devcd frontend
npm run dev- O backend se conecta ao MongoDB antes de subir o servidor.
- O frontend foi preparado para consumir respostas com formatos diferentes de
_id,id,tageclanTag. - O CORS do backend inclui portas comuns do Vite, como
5173e4173.
Este projeto foi pensado para pessoas que administram clãs e precisam de um painel direto para acompanhar guerra, membros e histórico sem depender de planilhas ou conferência manual constante.
Este projeto é uma ferramenta de fã e não é afiliado à Supercell. Os nomes, marcas e ativos do jogo pertencem aos seus respectivos donos.