55 lines
3.0 KiB
Markdown
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.*
|