Files
VdcScoreLive/docs/01-project-plan.md
2026-05-05 17:12:06 +01:00

3.4 KiB

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)

  • Definição de requisitos
  • Stack tecnológica
  • Arquitetura do sistema
  • Design system
  • Firebase schema
  • 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