app atualizada para apresentação
This commit is contained in:
63
memories/repo/vdcscore-overview.md
Normal file
63
memories/repo/vdcscore-overview.md
Normal 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
|
||||
Reference in New Issue
Block a user