Files
cuidamais/documentacao_projecto/guia_arquitetura_app.md

3.0 KiB

Guia Completo da Aplicação - Cuida+

Este documento fornece uma visão geral técnica e funcional de toda a aplicação Cuida+.

1. Visão Geral

A Cuida+ é uma aplicação móvel Android desenvolvida em Java, focada na gestão de saúde pessoal. Permite aos utilizadores gerir as suas medicações, agendar consultas médicas e realizar uma triagem preliminar baseada em Inteligência Artificial.

2. Tecnologias Utilizadas

  • Linguagem: Java (Android SDK).
  • Base de Dados & Auth: Firebase (Authentication, Firestore, Realtime Database).
  • Inteligência Artificial: Google Gemini API (para o chat de triagem).
  • Notificações: AlarmManager para lembretes de medicação.

3. Arquitetura de Pastas e Módulos

🔵 Autenticação (ui/auth)

  • Login/Registo: Gerido pelo Firebase Auth.
  • Recuperação de Password: Envio de emails automáticos para redefinição.
  • Ficheiros: LoginActivity, RegisterActivity, ForgotPasswordActivity.

🟢 Gestão de Medicação (ui/medication)

  • Funcionalidades: Adicionar, editar e eliminar medicamentos.
  • Destaque: Suporte para múltiplos horários por medicamento com alarmes independentes.
  • Integração: Pesquisa em tempo real de nomes de medicamentos no Firebase (Realtime DB).
  • Ficheiros: MedicationFragment, MedicationDialog, MedicationViewModel.

📅 Agenda e Consultas (ui/appointments & ui/schedule)

  • Visualização: Lista de consultas futuras e passadas.
  • Agendamento: Escolha de data e slots de tempo disponíveis para marcar com médicos registados no sistema.
  • Ficheiros: AppointmentsFragment, ScheduleAppointmentFragment.

🤖 Triagem IA - SNS24 (ui/sns24)

  • Funcionalidade: Um chat inteligente onde o utilizador descreve sintomas.
  • Lógica: Usa a classe Gemini.java para processar a linguagem natural e sugerir o nível de urgência (triagem).
  • Botão de Emergência: Se o sistema detetar gravidade, oferece a opção de localizar o hospital mais próximo.

⚙️ Utilitários e Segundo Plano (utils & services)

  • AlarmScheduler: Centraliza a lógica de agendamento de alarmes no sistema Android.
  • AlarmReceiver: Ouve os eventos do sistema e dispara notificações sonoras e visuais.
  • NotificationHelper: Gera as notificações push que aparecem no telemóvel.

4. Modelos de Dados (data/model)

  • User / Perfil: Informação básica do utilizador (nome, foto, contacto).
  • Medication: Nome, horários (comma-separated), dosagem, notas e estado.
  • Appointment: Médico, data, hora e notas da consulta.

5. Fluxo de Dados

  1. O utilizador interage com o Fragment (Interface).
  2. O ViewModel processa os dados e comunica com o Firebase Firestore.
  3. O Firestore atualiza os dados na nuvem em tempo real (SnapshotListeners).
  4. O ViewModel recebe a atualização e reflete as mudanças na UI automaticamente através de LiveData.

Este guia serve como referência para novos programadores ou para auditoria do projeto.