app atualizada para apresentação

This commit is contained in:
2026-06-16 14:23:41 +01:00
parent ae1bc0b3df
commit b1ba711a37
10 changed files with 348 additions and 44 deletions

View File

@@ -0,0 +1,63 @@
# 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