criação do website
This commit is contained in:
105
docs/01-project-plan.md
Normal file
105
docs/01-project-plan.md
Normal file
@@ -0,0 +1,105 @@
|
||||
# 01 — Plano do Projeto
|
||||
|
||||
## Objetivo
|
||||
|
||||
Criar um **website de administração** que sirva de backend para uma aplicação de liga de futebol. A aplicação cliente já está desenvolvida e lê dados em tempo real da Firebase. Este dashboard é o único ponto de escrita.
|
||||
|
||||
---
|
||||
|
||||
## Problema a Resolver
|
||||
|
||||
A aplicação cliente mostra dados em tempo real mas não tem interface de edição. É necessário um painel de administração que permita:
|
||||
- Atualizar resultados durante os jogos (em tempo real)
|
||||
- Gerir toda a estrutura da liga (clubes, jogadores, jornadas)
|
||||
- Manter estatísticas atualizadas automaticamente
|
||||
|
||||
---
|
||||
|
||||
## Âmbito do Projeto
|
||||
|
||||
### In Scope
|
||||
- Dashboard de administração web (SPA)
|
||||
- Autenticação segura (apenas administradores)
|
||||
- CRUD completo de jogos, clubes, jogadores
|
||||
- Atualização de resultados em tempo real (live)
|
||||
- Gestão de jornadas e classificação
|
||||
- Estatísticas automáticas (calculadas a partir dos resultados)
|
||||
- Interface responsiva (desktop-first, mas funcional em tablet)
|
||||
|
||||
### Out of Scope
|
||||
- Aplicação cliente (já existe)
|
||||
- API REST separada (Firebase é o backend direto)
|
||||
- App móvel de administração
|
||||
- Sistema de utilizadores múltiplos com permissões granulares (v1)
|
||||
|
||||
---
|
||||
|
||||
## Fases de Desenvolvimento
|
||||
|
||||
### Fase 0 — Planeamento e Design (ATUAL)
|
||||
- [x] Definição de requisitos
|
||||
- [x] Stack tecnológica
|
||||
- [x] Arquitetura do sistema
|
||||
- [x] Design system
|
||||
- [x] Firebase schema
|
||||
- [x] Mockup interativo
|
||||
- [ ] Review e aprovação
|
||||
|
||||
### Fase 1 — Setup e Fundação
|
||||
**Estimativa:** 1-2 sessões
|
||||
- [ ] Inicializar projeto Vite + React + TypeScript
|
||||
- [ ] Configurar Firebase SDK
|
||||
- [ ] Configurar React Router
|
||||
- [ ] Implementar autenticação Firebase Auth
|
||||
- [ ] Layout base (sidebar + header + content area)
|
||||
- [ ] Design system (cores, tipografia, componentes base)
|
||||
|
||||
### Fase 2 — Módulo de Jogos (Core)
|
||||
**Estimativa:** 2-3 sessões
|
||||
- [ ] Listagem de jogos por jornada
|
||||
- [ ] Criação de jogo
|
||||
- [ ] **Live Score Editor** — atualização em tempo real
|
||||
- [ ] Finalizar jogo (resultado final)
|
||||
- [ ] Histórico de jogos
|
||||
|
||||
### Fase 3 — Módulo de Gestão
|
||||
**Estimativa:** 2 sessões
|
||||
- [ ] CRUD de Clubes
|
||||
- [ ] CRUD de Jogadores (com clube associado)
|
||||
- [ ] Gestão de Jornadas
|
||||
- [ ] Classificação (calculada automaticamente)
|
||||
|
||||
### Fase 4 — Estatísticas e Extras
|
||||
**Estimativa:** 1-2 sessões
|
||||
- [ ] Artilheiros (golos por jogador)
|
||||
- [ ] Assistências
|
||||
- [ ] Cartões (amarelos/vermelhos)
|
||||
- [ ] Dashboard overview com métricas
|
||||
|
||||
### Fase 5 — Polish e Deploy
|
||||
**Estimativa:** 1 sessão
|
||||
- [ ] Testes e bug fixes
|
||||
- [ ] Otimização de performance
|
||||
- [ ] Deploy (Firebase Hosting)
|
||||
- [ ] Configuração de domínio
|
||||
|
||||
---
|
||||
|
||||
## Critérios de Sucesso
|
||||
|
||||
1. Administrador consegue atualizar um resultado em menos de 10 segundos
|
||||
2. A alteração aparece na app cliente em menos de 2 segundos (Firebase real-time)
|
||||
3. Zero inconsistências na classificação (calculada automaticamente)
|
||||
4. Interface funcional em desktop e tablet
|
||||
5. Acesso protegido por autenticação
|
||||
|
||||
---
|
||||
|
||||
## Riscos e Mitigações
|
||||
|
||||
| Risco | Probabilidade | Mitigação |
|
||||
|---|---|---|
|
||||
| Schema Firebase incompatível com app cliente | Alta | Documentar schema existente antes de escrever |
|
||||
| Conflitos de escrita simultânea | Baixa | Usar Firebase transactions |
|
||||
| Performance com muitos listeners real-time | Média | Limitar listeners ativos, usar pagination |
|
||||
| Segurança (acesso não autorizado) | Alta | Firebase Security Rules rigorosas |
|
||||
Reference in New Issue
Block a user