Arquivos
Bundle OKF 0.1 · 7 conceitos · julianscunha/Fut.Manager
Open source Repository Open in the app JSON README (API)
About
# Arquivos
- [Visão Geral da Arquitetura](architecture.md) - Visão geral da arquitetura do Fut.Manager, cobrindo o backend Node/Express, persistência Postgres e frontend React.
- [Guia de Início Rápido](quickstart.md) - Guia inicial para desenvolvedores que desejam entender e trabalhar no repositório Fut.Manager.
- [Mapa de Origem do Repositório](source-map.md)
# Diretórios
- [architecture](architecture/)
- [design](design/)
- [guide](guide/)
- [operations](operations/)
Details
- Kind
- OKF bundles
- Topic
- Maps, weather & travel
- Publisher
- julianscunha
- Origin
- okf_github
- Category
- dados
- Version
- 0.1
- Open pull requests
- 4
- Last push
- 2026-09-08T12:43:13Z
- Repository state
- ativo
- Language
- TypeScript
- License
- MIT
- Added
- 2026-09-08 09:02:43
- Updated
- 2026-09-08 09:02:43
- Origin id
julianscunha/Fut.Manager:openwiki/index.md
README
<p align="center"> <img src="public/banner.svg" alt="Fut.Manager" width="100%"> </p> # ⚽ Fut.Manager **O cockpit completo para quem administra um racha.** Mensalistas, reservas, sorteio de times equilibrado, financeiro, mural social e ranking técnico — tudo em um só lugar, pensado para ser usado no campo, pelo celular, minutos antes da bola rolar. [](LICENSE) [](package.json) [](tsconfig.json) [](package.json) [](https://supabase.com) [](openwiki/operations/deploy-guide.md) --- ## O que é isso Todo grupo de futebol society passa pelas mesmas dores: quem vai jogar, quem paga o quê, como sortear times justos, onde ficam as fotos da resenha e quem realmente é bom em campo. O **Fut.Manager** resolve tudo isso em um único aplicativo web, mobile-first, para o administrador do grupo (e para cada atleta) usar sem depender de planilha, grupo de WhatsApp lotado de enquete ou papel. Nasceu como o sistema real de um grupo de futebol e evoluiu para uma plataforma completa e **white-label** — hoje roda em produção sobre Postgres (Supabase), é hospedável em qualquer lugar que rode um container Docker, e o nome exibido na interface é 100% configurável: defina a variável `APP_NAME` no seu `.env` com o nome do seu próprio grupo e ele se propaga automaticamente por toda a UI, notificações e mensagens de compartilhamento — sem tocar em nenhuma linha de código. ## ✨ Funcionalidades - **Gestão de atletas** — cadastro completo, categorias (mensalista/reserva), soft delete que preserva histórico e ranking mesmo após saída do jogador. - **Sorteio inteligente de times** — algoritmo Monte Carlo (até 5.000 iterações) que equilibra Overall, garante presença mínima de posições defensivas/ofensivas por time e aprende afinidades históricas de duplas e trios. - **Confirmação de presença e fila de reservas** — deadline configurável, convocação automática de reservas por ordem de fila quando um mensalista cancela. - **Financeiro** — cobrança mensal automática, isenção de goleiros/reservas, controle de pagamentos e eventos sociais (churrascos, confraternizações) com regras de isenção próprias. - **Ranking técnico e Hall da Fama** — avaliações por atributo (defesa, passe, finalização, drible, físico...), Overall calculado, streaks por temporada, duplas/trios mais fortes. - **Museu do Clube** — mural social com galeria de memórias, momentos épicos, linha do tempo de rodadas e central de comunicação/avisos. - **Avatares de jogador com IA** — geração automática de card/retrato esportivo a partir da foto do atleta, via OpenRouter ou Gemini. - **Feito para o campo** — interface mobile-first de verdade: alvos de toque generosos, tabelas que viram cards no celular, menus que não quebram em tela pequena. - **White-label por variável de ambiente** — o nome do seu grupo (`APP_NAME`) é a única coisa que muda entre a sua instalação e a de qualquer outra pessoa que clonar este projeto. Nenhum dado pessoal ou nome de grupo fica hardcoded no código-fonte. ## 🧱 Stack técnica | Camada | Tecnologia | |---|---| | Frontend | React 19 + TypeScript + Vite + Tailwind CSS | | Backend | Node.js + Express (processo único, serve API e frontend) | | Banco de dados | PostgreSQL via [Supabase](https://supabase.com) | | Armazenamento de mídia | Supabase Storage | | Autenticação | JWT próprio + bcrypt (sem dependência do Supabase Auth) | | Geração de avatar (IA) | [OpenRouter](https://openrouter.ai) (recomendado) ou Google Gemini | | Hospedagem | [Render](https://render.com) (Web Service via Docker) | Arquitetura de monólito único e deliberada: o mesmo processo Express serve a API REST e o build estático do frontend, o que mantém o custo de hospedagem baixo (um serviço só) sem abrir mão de nenhuma funcionalidade. ## 🚀 Começando ### Pré-requisitos - Node.js 20+ - Uma conta [Supabase](https://supabase.com) (plano free cobre o uso de um racha comum) - Opcional: uma chave [OpenRouter](https://openrouter.ai/keys) ou [Gemini](https://ai.google.dev) para geração de avatar com IA ### Setup local ```bash git clone https://github.com/julianscunha/Fut.Manager.git cd Fut.Manager npm install cp .env.example .env.local # defina APP_NAME com o nome do seu grupo, credenciais do Supabase, JWT_SECRET, etc. npm run dev ``` Acesse `http://localhost:3000`. Login padrão criado pelo schema inicial: `admin@racha.com` / `admin` — **troque essa senha antes de expor o sistema publicamente**. ### Scripts disponíveis ```bash npm run dev # servidor de desenvolvimento (tsx + Vite em middleware mode, com HMR) npm run build # build de produção (frontend via Vite + backend via esbuild) npm start # roda o build de produção npm run lint # type-check (tsc --noEmit) npm run clean # remove dist/ ``` ## ☁️ Deploy em produção Guia completo, passo a passo, para colocar seu próprio racha no ar (setup do Supabase, schema SQL, variáveis de ambiente, deploy no Render): **[openwiki/operations/deploy-guide.md](openwiki/operations/deploy-guide.md)**. Antes de ir ao ar, use o **[openwiki/operations/deploy-checklist.md](openwiki/operations/deploy-checklist.md)** para conferir cada etapa de segurança e funcionamento. ## 📚 Documentação Toda a documentação de arquitetura, decisões de produto e auditorias vive em [`openwiki/`](openwiki/): | Documento | Conteúdo | |---|---| | [Visão Geral da Arquitetura](openwiki/architecture.md) | Arquitetura do sistema (Node/Express + React + Postgres) | | [Hardening de Segurança](openwiki/architecture/security.md) | Correções de segurança e autenticação JWT/bcrypt | | [Relatório de Auditoria](openwiki/architecture/audit-report.md) | Auditoria funcional, de segurança e de UX/mobile | | [Guia de Deploy](openwiki/operations/deploy-guide.md) | Deploy em produção (Supabase + Render) | | [Checklist de Deploy](openwiki/operations/deploy-checklist.md) | Checklist de verificação pré/pós-deploy | | [Handoff](openwiki/operations/handoff.md) | Histórico de entregas e decisões arquiteturais | | [Visual System](openwiki/design/visual-system.md) | Direção de arte e identidade visual | | [Permissões do Sistema](openwiki/guide/permissions.md) | Roles (admin, auxiliar, jogador), matriz de capacidades e mapeamento role ↔ category | Para quem for trabalhar no código com o Claude Code, veja também o [`CLAUDE.md`](CLAUDE.md) na raiz — mapeia a arquitetura e as regras de negócio essenciais. ## 🤝 Contribuindo Issues e pull requests são bem-vindos! Veja o [guia de contribuição](CONTRIBUTING.md) para setup local, convenções de código e como abrir um PR. ## 📄 Licença Distribuído sob a licença [MIT](LICENSE).