Frontend web da API RPG HxH — plataforma open source de RPG de mesa com temática Hunter x Hunter, baseada no sistema Hunter Legacy.
| Tecnologia | Finalidade |
|---|---|
| React 19 | UI |
| TypeScript (strict) | Linguagem e contrato de tipos |
| Vite | Build e dev server |
| Tailwind CSS 4 | Estilo (tema claro/escuro via classe dark) |
| TanStack Query | Estado de servidor (mutations/queries, cache) |
| React Router 7 | Rotas e guards de autenticação |
Espelha a filosofia de Functional Slices do backend:
src/
├── features/ # Fatias verticais
│ ├── auth/ # Login (components/, api/, pages/)
│ └── rooms/ # Salas (listagem, criação, cards)
├── shared/ # Camada reutilizável
│ ├── api/ # Client HTTP (JWT + envelope ResponseDTO), tipos da API
│ ├── components/ # UI burra: Button, Input, ThemeToggle
│ └── lib/ # auth (token), theme (ThemeProvider)
└── app/ # Wiring: router, providers, App
Fronteiras: feature não importa feature; todo acesso à API passa pelos hooks de api/; shared/ não conhece regra de negócio.
# 1. Instale as dependências
npm install
# 2. Configure o ambiente
cp .env.example .env # VITE_API_URL=http://localhost:8080
# 3. Suba o backend rpg-hxh (com FRONTEND_ORIGIN=http://localhost:5173 no .env dele)
# 4. Rode o dev server
npm run dev # http://localhost:5173| Script | Descrição |
|---|---|
npm run dev |
Dev server com HMR |
npm run build |
Type-check (tsc --noEmit) + build de produção |
npm run preview |
Serve o build de produção |
npm run gen:api |
Gera tipos TypeScript do OpenAPI do backend (backend rodando) |
- Login — autenticação via
POST /loginda API; JWT lido do headerAuthorizatione armazenado localmente; erros de validação exibidos por campo; tema claro/escuro com persistência. - Registro — criação de conta via
POST /registercom erros por campo vindos da API; redireciona para o login com aviso de sucesso. - Salas — listagem das salas do usuário com criação via modal; tela da sala com lista de membros (badge de Mestre), convite copiável (Master-only) e edição/exclusão; menu do usuário com logout.
Open source, como o backend.
Feito com ☕ e Nen por jogadores, para jogadores.