Files
cuidamais/documentacao_projecto/guia_arquitetura_app.md

55 lines
3.0 KiB
Markdown

# 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.*