Documentação

This commit is contained in:
Carlos Correia
2026-05-03 23:31:31 +01:00
commit d24cb3242a
167 changed files with 14263 additions and 0 deletions

View File

@@ -0,0 +1,189 @@
# Estrutura do Projeto - Check Theeth Kids
## Visão Geral
O **Check Theeth Kids** é um aplicativo Flutter desenvolvido para ajudar crianças e pais a manterem uma boa saúde bucal através de educação interativa, quizzes e acompanhamento.
## Estrutura de Pastas
```
check_theeth_kids/
├── lib/
│ ├── main.dart # Ponto de entrada da aplicação
│ ├── logged_home.dart # Tela principal para usuários logados
│ ├── auth_gate.dart # Gerenciamento de autenticação
│ ├── home_screen.dart # Tela inicial para não logados
│ ├── gates/
│ │ └── debug_launch_gate.dart # Controle de inicialização
│ ├── quiz/ # Sistema de quiz educativo
│ │ ├── quiz1.dart # Quiz completo com 20 perguntas
│ │ ├── quiz2.dart # (obsoleto - integrado ao quiz1.dart)
│ │ ├── quiz3.dart # (obsoleto - integrado ao quiz1.dart)
│ │ ├── quiz4.dart # (obsoleto - integrado ao quiz1.dart)
│ │ ├── quiz5.dart # (obsoleto - integrado ao quiz1.dart)
│ │ ├── quiz_extended.dart # (obsoleto - integrado ao quiz1.dart)
│ │ ├── quiz_complete.dart # Backup do sistema completo
│ │ ├── quiz_question_screen.dart # Tela genérica de perguntas
│ │ ├── quiz_result.dart # Tela de resultados do quiz
│ │ ├── quiz_prefs.dart # Preferências e configurações
│ │ └── quiz_random.dart # Sistema de quiz aleatório
│ ├── screens/
│ │ ├── hello_splash_screen.dart # Tela de splash inicial
│ │ ├── curiosidade_screen.dart # Tela de curiosidades
│ │ └── video_screen.dart # Tela de vídeos educativos
│ └── assets/ # Recursos estáticos
│ ├── images/
│ ├── animations/
│ └── videos/
├── documentação/ # Documentação do projeto
├── pubspec.yaml # Dependências e configurações
└── README.md # Documentação geral
```
## Arquivos Principais
### Arquivos de Navegação e Autenticação
#### `main.dart`
- **Função**: Ponto de entrada da aplicação
- **Responsabilidade**: Inicializa Firebase e define o widget raiz `MyApp`
- **Importância**: Essencial para o funcionamento do app
#### `auth_gate.dart`
- **Função**: Gerenciamento de estado de autenticação
- **Lógica**:
- Se usuário logado → `LoggedHomeScreen`
- Se não logado → `HomeScreen`
- **Dependências**: Firebase Auth
#### `gates/debug_launch_gate.dart`
- **Função**: Controle de inicialização e splash screen
- **Responsabilidade**: Gerencia transição entre splash e autenticação
### Tela Principal do Aplicativo
#### `logged_home.dart`
- **Função**: Tela principal para usuários autenticados
- **Componentes**:
- AppBar animado com informações do usuário
- Sistema de perfil com upload de fotos
- Gerenciamento de crianças
- Seção de clínicas parceiras
- Biblioteca de vídeos educativos
- Sistema de quiz integrado
- Interface com animações Lottie
- **Estado**: StatefulWidget com múltiplos gerenciadores de estado
### Sistema de Quiz
#### `quiz/quiz1.dart` (ARQUIVO PRINCIPAL)
- **Função**: Sistema completo de quiz com 20 perguntas
- **Estrutura**: Contém todas as 20 perguntas em um único arquivo
- **Fluxo**: Quiz1 → Quiz2 → ... → Quiz20 → Resultados
- **Pontuação**: Máximo de 100 pontos (5 pontos por pergunta)
#### `quiz/quiz_question_screen.dart`
- **Função**: Tela genérica reutilizável para perguntas
- **Componentes**:
- Exibição de perguntas e respostas
- Sistema de navegação (próximo/anterior)
- Feedback visual para respostas
- Controle de pontuação
#### `quiz/quiz_result.dart`
- **Função**: Tela de resultados com feedback personalizado
- **Recursos**:
- Exibição de pontuação final
- Mensagens motivacionais baseadas no desempenho
- Opção de refazer o quiz
### Tela de Conteúdo Educativo
#### `screens/curiosidade_screen.dart`
- **Função**: Exibição de curiosidades sobre saúde bucal
- **Recursos**: Conteúdo educativo com imagens e textos
#### `screens/video_screen.dart`
- **Função**: Reprodução de vídeos educativos
- **Integração**: YouTube Player para conteúdo em vídeo
### Tela Inicial
#### `home_screen.dart`
- **Função**: Tela de boas-vindas para usuários não autenticados
- **Componentes**: Botões de login e cadastro
#### `screens/hello_splash_screen.dart`
- **Função**: Tela de splash inicial com animações
- **Duração**: Transição automática para tela principal
## Fluxo da Aplicação
1. **Inicialização**: `main.dart``DebugLaunchGate`
2. **Splash**: `HelloSplashScreen` (2-3 segundos)
3. **Autenticação**: `AuthGate` verifica estado do usuário
4. **Tela Principal**:
- Não logado → `HomeScreen`
- Logado → `LoggedHomeScreen`
5. **Navegação Interna**:
- Quiz → Sistema de 20 perguntas
- Vídeos → `VideoScreen`
- Curiosidades → `CuriosidadeScreen`
- Perfil → Sistema de gerenciamento
## Dependências Principais
### Firebase
- **firebase_core**: Configuração base
- **firebase_auth**: Autenticação de usuários
- **cloud_firestore**: Banco de dados
- **firebase_storage**: Armazenamento de imagens
### UI e Animações
- **flutter/material.dart**: UI Material Design
- **lottie**: Animações vetoriais
- **youtube_player_flutter**: Reprodução de vídeos
### Utilitários
- **image_picker**: Seleção de imagens da galeria/câmera
- **shared_preferences**: Armazenamento local de preferências
## Configurações Importantes
### Firebase
- **Projeto**: `check-theeth-kids-db`
- **Configuração**: Necessário arquivo `google-services.json` (Android) e `GoogleService-Info.plist` (iOS)
### Assets
- **Imagens**: Configuradas em `pubspec.yaml`
- **Animações**: Arquivos Lottie na pasta `assets/animations/`
- **Vídeos**: Integrados via YouTube Player
## Estado Atual do Projeto
### ✅ Funcionalidades Completas
- Sistema de autenticação Firebase
- Tela principal com todas as funcionalidades
- Sistema de quiz com 20 perguntas
- Upload e gerenciamento de fotos de perfil
- Sistema de gerenciamento de crianças
- Biblioteca de vídeos educativos
- Sistema de resultados do quiz
### ⚠️ Pontos de Atenção
- Configuração Firebase Web requer credenciais específicas
- Algumas dependências podem estar desatualizadas (43 packages com versões mais recentes)
- Sistema de quiz completamente integrado em um único arquivo
### 🔄 Manutenção
- **Atualização de dependências**: Recomendado revisar packages desatualizados
- **Firebase Web**: Configurar credenciais para plataforma web
- **Testes**: Implementar testes unitários e de integração
## Próximos Passos Recomendados
1. **Atualização de Dependências**: Revisar e atualizar packages desatualizados
2. **Configuração Firebase Web**: Adicionar credenciais para plataforma web
3. **Testes Automatizados**: Implementar suíte de testes
4. **Otimização**: Revisar performance e otimizar carregamento
5. **Documentação de API**: Documentar endpoints e estruturas de dados