# 📋 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 |