190 lines
7.3 KiB
Markdown
190 lines
7.3 KiB
Markdown
# 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
|