Files
cuidamais_med/docs/00_VISAO_GERAL.md
2026-04-22 12:41:12 +01:00

109 lines
4.6 KiB
Markdown

# 📋 Med Cuida+ — Visão Geral do Projeto
## O que é?
O **Med Cuida+** é uma aplicação Android destinada a **médicos**, permitindo-lhes gerir os seus pacientes, consultas e perfil profissional. A aplicação comunica com o **Firebase** (Authentication + Firestore) para guardar e sincronizar dados em tempo real.
---
## 🏗️ Estrutura do Projeto
```
com.example.medcuida.pro/
├── MainActivity.java ← Ecrã principal (Agenda + Pacientes + Perfil)
├── AgendaActivity.java ← Ecrã de agenda alternativo (com calendário)
├── ChatActivity.java ← Chat em tempo real entre médico e paciente
├── DetalhePacienteActivity.java ← Detalhes de um paciente específico
├── EditarPerfilActivity.java ← Edição do perfil do médico
├── PerfilMedicoActivity.java ← Visualização do perfil do médico
├── models/ ← Classes de dados (POJOs)
│ ├── Consulta.java ← Modelo de uma consulta médica
│ ├── Medico.java ← Modelo de um médico
│ ├── Mensagem.java ← Modelo de uma mensagem de chat
│ └── Paciente.java ← Modelo de um paciente
├── ui/
│ ├── adapters/ ← Adaptadores para listas (RecyclerView)
│ │ ├── ConsultaAdapter.java ← Lista de consultas na agenda
│ │ ├── MensagemAdapter.java ← Lista de mensagens no chat
│ │ └── PacienteAdapter.java ← Lista de pacientes
│ │
│ └── auth/ ← Autenticação
│ ├── LoginActivity.java ← Ecrã de login
│ └── RegisterActivity.java ← Ecrã de registo de médico
└── services/ ← (Vazio — reservado para serviços futuros)
```
---
## 🔧 Tecnologias Utilizadas
| Tecnologia | Versão | Finalidade |
|---|---|---|
| **Android SDK** | compileSdk 35 / minSdk 24 | Plataforma base |
| **Java** | 1.8 | Linguagem de programação |
| **Firebase Auth** | via BoM 32.7.2 | Autenticação de utilizadores |
| **Firebase Firestore** | via BoM 32.7.2 | Base de dados em tempo real |
| **Material Design** | 1.11.0 | Componentes visuais modernos |
| **Navigation Component** | 2.7.7 | Navegação entre fragments |
| **Retrofit + OkHttp** | 2.9.0 / 4.10.0 | Chamadas HTTP e JSON |
| **Google Generative AI** | Última versão | Integração com Gemini AI |
| **Guava** | 31.1 | Operações assíncronas |
---
## 🗄️ Coleções Firestore
| Coleção | Descrição |
|---|---|
| `utilizadores` | Todos os utilizadores (pacientes e médicos) |
| `medicos` | Dados específicos dos médicos (duplicado para compatibilidade) |
| `consultas` | Consultas médicas agendadas |
| `consultas/{id}/mensagens` | Sub-coleção com mensagens de chat de uma consulta |
| `medicamentos` | Medicamentos registados por pacientes |
---
## 🔄 Fluxo da Aplicação
```mermaid
graph TD
A[LoginActivity] -->|Credenciais válidas| B{Verificar Perfil}
B -->|Existe em 'medicos'| C[MainActivity]
B -->|Existe em 'utilizadores'| C
B -->|Não existe| D[Erro: Sem perfil]
E[RegisterActivity] -->|Registo com sucesso| C
C -->|Tab Agenda| F[Ver Consultas do Dia]
C -->|Tab Pacientes| G[Lista de Pacientes]
C -->|Tab Perfil| H[Ver/Editar Perfil]
F -->|Clicar consulta| I[DetalhePacienteActivity]
G -->|Clicar paciente| I
I -->|Botão Chat| J[ChatActivity]
H -->|Editar| K[EditarPerfilActivity]
```
---
## 📁 Índice da Documentação
| Ficheiro | Conteúdo |
|---|---|
| [01_MainActivity.md](./01_MainActivity.md) | Ecrã principal com 3 tabs |
| [02_AgendaActivity.md](./02_AgendaActivity.md) | Agenda alternativa com calendário |
| [03_ChatActivity.md](./03_ChatActivity.md) | Chat em tempo real |
| [04_DetalhePacienteActivity.md](./04_DetalhePacienteActivity.md) | Detalhes do paciente |
| [05_EditarPerfilActivity.md](./05_EditarPerfilActivity.md) | Edição do perfil médico |
| [06_PerfilMedicoActivity.md](./06_PerfilMedicoActivity.md) | Visualização do perfil |
| [07_Models.md](./07_Models.md) | Classes de dados (Consulta, Medico, etc.) |
| [08_Adapters.md](./08_Adapters.md) | Adaptadores RecyclerView |
| [09_Autenticacao.md](./09_Autenticacao.md) | Login e Registo |
| [10_Configuracao_Gradle.md](./10_Configuracao_Gradle.md) | Configuração do projeto |
| [11_Layouts_XML.md](./11_Layouts_XML.md) | Layouts das Activities e itens RecyclerView |
| [12_Layouts_Extras_e_Drawables.md](./12_Layouts_Extras_e_Drawables.md) | Fragments, Dialogs e recursos visuais |