2.8 KiB
2.8 KiB
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çõesgallery/- Jornadas/Jogos (MatchesAdapter, Match.java)livegames/- Jogos em diretoclubs/- Equipas/Plantéistop_scorers/- Melhores Marcadoresnews/- 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.jsonnunca no version control