Files
CheckTheethKids/documentação/01-estrutura-do-projeto.md
Carlos Correia d24cb3242a Documentação
2026-05-03 23:31:31 +01:00

7.3 KiB

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.dartDebugLaunchGate
  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