O ArenaHub é uma plataforma B2B (SaaS) premium projetada para revolucionar a gestão de arenas esportivas (Padel, Beach Tennis, Futebol). Este repositório contém o Painel Administrativo Web, a interface Single Page Application (SPA) onde o dono da arena gerencia toda sua operação.
Diferente de agendas comuns, o ArenaHub resolve as "dores reais" do proprietário de um complexo esportivo:
- Otimização de ocupação com recursos de Matchmaking (Partidas Abertas).
- CRM com Nivelamento Técnico de jogadores.
- Gestão centralizada de faturamento (Quadras + Consumo de Bar/PDV no mesmo ticket).
A stack foi escolhida com foco em produtividade, performance e manutenibilidade para escalar rapidamente:
- Core: React 18, TypeScript
- Build Tool: Vite (Builds extremamente rápidos)
- Roteamento: React Router DOM
- Estilização: Tailwind CSS v3
- Componentes UI: shadcn/ui (Componentes acessíveis e customizáveis)
- Ícones: Lucide React
- Estado do Servidor: TanStack Query v5 (Gerenciamento impecável de cache e loading states)
- Autenticação: Clerk (Proteção Enterprise-grade)
- Requisições HTTP: Axios
Diferente de estruturas agrupadas por tipo de arquivo, este projeto encapsula a lógica de negócio em Features. Cada feature funciona como um módulo quase independente.
src/
├── app/ # Ponto de entrada (App.tsx, roteamento global)
├── components/ # Componentes UI GLOBAIS e genéricos (Botões, Inputs, Cards)
├── features/ # 🌟 O NÚCLEO DA APLICAÇÃO
│ ├── auth/ # Autenticação (Login, Registro, Profile)
│ ├── analytics/ # Telas de relatórios financeiros e de ocupação
│ ├── courts/ # Gestão de quadras e status de manutenção
│ ├── customers/ # Base de clientes com classificação de nível técnico
│ ├── dashboard/ # Tela principal consolidada e agenda imediata
│ ├── reservations/ # Fluxo crítico: Reservas, Matchmaking e Consumo
│ ├── settings/ # Configuração da Arena e Grade de Horários
│ └── team/ # Controle de acesso de funcionários
├── lib/ # Utilitários globais (axios instance, tailwind merge)
└── providers/ # React Contexts
Certifique-se de ter o Node.js v20+ instalado.
npm installCrie um arquivo .env na raiz baseando-se no ambiente de produção:
VITE_API_URL=http://localhost:3000/apinpm run devAcesse http://localhost:5173 no seu navegador. O servidor de desenvolvimento suporta Hot Module Replacement (HMR).
- Mobile-First Real: Tabelas extensas (como a agenda) possuem scroll horizontal estilizado, garantindo que o gestor possa operar a arena 100% pelo smartphone.
- Temas: Suporte arquitetural para Light/Dark mode via
ThemeProvider. - Experiência Premium: Uso de micro-interações e badges de destaque (como o indicador visual de PARTIDA ABERTA).
A aplicação foi desenhada para hospedagem serverless/edge. O deploy é otimizado para a plataforma Vercel:
- Conecte este repositório à Vercel.
- Defina o Framework Preset como
Vite. - Configure as variáveis de ambiente necessárias (
VITE_API_URL). - Os deploys automáticos ocorrerão a cada push na branch principal.