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

4.6 KiB

📋 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

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 Ecrã principal com 3 tabs
02_AgendaActivity.md Agenda alternativa com calendário
03_ChatActivity.md Chat em tempo real
04_DetalhePacienteActivity.md Detalhes do paciente
05_EditarPerfilActivity.md Edição do perfil médico
06_PerfilMedicoActivity.md Visualização do perfil
07_Models.md Classes de dados (Consulta, Medico, etc.)
08_Adapters.md Adaptadores RecyclerView
09_Autenticacao.md Login e Registo
10_Configuracao_Gradle.md Configuração do projeto
11_Layouts_XML.md Layouts das Activities e itens RecyclerView
12_Layouts_Extras_e_Drawables.md Fragments, Dialogs e recursos visuais