# VdcScore - Visão Geral do Projeto

## O que é
App Android (Java) chamada **VdcScore** que exibe dados de campeonatos locais de futebol (AFAVCD) em tempo real.

## Arquitetura
- **Scraper Java** (projeto separado `scrapper/`): Aplicaçãp autónoma que faz scraping da API HTML/JSON da AFAVCD, processa os dados e escreve no Firebase Realtime Database.
- **Firebase Realtime Database**: Centraliza todos os dados (Single Source of Truth).
- **App Android VdcScore**: Cliente de leitura que consome os dados do Firebase em tempo real via ValueEventListener.

## Estrutura de Dados no Firebase
```
Senior/
  standings/     - Tabelas classificativas por clube
  journeys/      - Jornadas com jogos (homeTeam, awayTeam, scores, date, field, matchReportUrl)
  players/       - Plantéis de cada equipa
  melhores_marcadores/ - Top scorers (Seniores e Juniores)
  noticias/      - Notícias da AFAVCD
  live_matches/  - Jogos preparados para acompanhamento em direto
Users/
  UID/           - Utilizadores (email, favoriteClub)
```

## Componentes Principais da App Android
- **models/**: `Club`, `Game`/`Match`, `Jornada`, `Player`, `TopScorer`, `News`
- **ui/**: Fragments + ViewModels para cada secção
  - `home/` - Classificações
  - `gallery/` - Jornadas/Jogos (MatchesAdapter, Match.java)
  - `livegames/` - Jogos em direto
  - `clubs/` - Equipas/Plantéis
  - `top_scorers/` - Melhores Marcadores
  - `news/` - Notícias (ecrã principal por defeito)
  - `definicoes/` - Definições
- **Autenticação**: LoginActivity, CriarContaActivity, RecuperarPasswordActivity, MainActivity

## Tecnologias
- **Scraper**: JSoup, GSON, Firebase Admin SDK, Gradle
- **Android**: ViewBinding, Glide, Firebase Auth, Firebase Realtime Database, Navigation Component, RecyclerView

## Estado Atual
- Scraper de Standings/Jornadas: ✅ Funcional
- Scraper de Melhores Marcadores: ✅ Funcional
- Scraper de Notícias: ✅ Funcional
- Scraper de Plantéis (PlayersScraper): 🔄 Em desenvolvimento
- UI Jornadas: ✅ Cartões premium com Glide, Ficha de Jogo
- UI Melhores Marcadores: ✅ Ecrã completo
- UI Notícias: ✅ No ecrã principal (Ínicio)
- UI Classificações: ✅ Funcional
- Autenticação Firebase: ✅ Implementada
- Live Matches: ✅ Preparação de jogos futuros

## Tarefas Pendentes
- Completar PlayersScraper (plantéis completos)
- Sistema Offline (Firebase cache local)
- Push Notifications (FCM)
- Testes finais de UI para campos opcionais null

## Convenções Importantes
- Models Android devem bater certo com models Scraper (nomes de atributos)
- Valores numéricos vêm como String da API - fazer parse para Integer
- Campos opcionais podem vir vazios (matchReportUrl, data) - UI deve lidar com null
- Chaves Firebase em minúsculas (standings, journeys, players)
- Serviços: `service-account.json` nunca no version control
