5.8 KiB
🏥 Med Cuida+ : Tudo Sobre a App (Manual Completo)
Este documento centraliza TUDO sobre o projeto Med Cuida+. Se procuras entender a aplicação de uma ponta à outra — desde o que ela faz para o utilizador até como o código está estruturado —, este é o ficheiro certo.
1. 🌟 O que é a aplicação e para que serve?
O Med Cuida+ é uma aplicação móvel para médicos. O objetivo principal é dar aos profissionais de saúde uma ferramenta móvel para gerirem o seu dia a dia. A aplicação permite:
- Ver a Agenda: Consultas agendadas para o próprio dia ou para os próximos dias.
- Gerir Pacientes: Aceder à lista de pacientes, ver os detalhes de cada um e o seu histórico.
- Comunicar: Um sistema de chat direto com os pacientes.
- Gerir o Perfil Profissional: Editar dados médicos (especialidade, biografia, foto).
Toda a infraestrutura de dados funciona na nuvem através do Firebase. Isto significa que as alterações feitas na app refletem-se em tempo real (ex: uma nova mensagem no chat aparece imediatamente).
2. 📂 A Estrutura do Código (Onde está cada coisa?)
O projeto Android está dividido em várias camadas. Vamos explicar tudo o que está dentro de app/src/main/java/com/example/medcuida/pro/:
📍 Activities (Os ecrãs da aplicação)
MainActivity.java: É o "coração" da app. Contém a barra de navegação inferior (Bottom Navigation) que permite alternar entre três abas: Agenda, Pacientes e Perfil.AgendaActivity.java: Um ecrã dedicado à visualização do calendário de consultas, com filtros por data.ChatActivity.java: O ecrã onde o médico troca mensagens com o paciente. Lê as mensagens do Firestore e atualiza a interface (RecyclerView) automaticamente.DetalhePacienteActivity.java: Quando clicas num paciente, este ecrã mostra todas as informações dele (dados pessoais, relatórios, etc.).PerfilMedicoActivity.java: O ecrã que mostra as informações do médico logado.EditarPerfilActivity.java: O ecrã que permite ao médico atualizar o seu nome, especialidade, foto de perfil, etc., guardando depois as mudanças na base de dados.
📦 Models (A representação dos dados)
Dentro da pasta models/, temos as classes que moldam a informação:
Medico.java: Guarda oid,nome,especialidade,email, etc.Paciente.java: Guarda as informações dos doentes.Consulta.java: Regista adata,hora,medicos(lista ou string),pacienteId, e ostatus(ex: cancelada, pendente).Mensagem.java: Guarda otexto,remetenteId,timestamppara o Chat.
🔌 Adapters (A ponte entre os dados e o ecrã)
Dentro de ui/adapters/, estes ficheiros pegam nas listas de dados (Models) e "desenham-nas" no ecrã:
ConsultaAdapter: Desenha cada "caixinha" de consulta na agenda.PacienteAdapter: Cria as linhas da lista de pacientes.MensagemAdapter: Diferencia as mensagens recebidas das enviadas (balão à esquerda vs balão à direita).
🔐 Autenticação (Login e Registo)
Dentro de ui/auth/:
LoginActivity.java: Verifica o email/password no Firebase Auth e depois confere na base de dados (Firestore) se esse email pertence a um perfil de "médico" antes de deixar entrar.RegisterActivity.java: Permite criar uma nova conta de médico.
3. 🗄️ A Base de Dados (Firebase Firestore)
A aplicação não tem uma base de dados local; usa o Firebase Firestore. Estas são as "tabelas" (coleções) que fazem tudo funcionar:
utilizadores: Guarda os dados de todas as pessoas que usam a app e os pacientes.medicos: Uma coleção paralela com informações específicas dos profissionais.consultas: Todos os agendamentos. Cada consulta tem associada a si um ID do médico e um ID do paciente.consultas/{consulta_id}/mensagens: Sub-coleções. Cada consulta tem o seu próprio chat independente!medicamentos: Registos da medicação recomendada/em uso.
4. 🎨 O Design e a Interface (XML e Drawables)
A parte visual vive em app/src/main/res/:
layout/: Onde estão os ficheiros XML que desenham os botões, os textos e as imagens. Ficheiros comoactivity_main.xmlouitem_consulta.xml.drawable/: Onde estão guardados os ícones (comoic_nav_agenda.xml,ic_nav_pacientes.xml) e os fundos com cantos arredondados (shapes) que dão o aspeto moderno à aplicação.menu/: Contém omenu_bottom.xmlque cria a barra de navegação principal da app.
5. ⚙️ Como a App Funciona por Trás dos Panos (Fluxo)
- O Médico abre a app: Vai para o
LoginActivity. - Faz Login: A app vai ao Firebase perguntar "Este email e password estão corretos?". Se sim, a app vai ao Firestore e pergunta "Este utilizador tem o perfil na coleção
medicos?". - Entra na
MainActivity: A app carrega o seu ID. De imediato, aMainActivityfaz uma busca ao Firestore pelasconsultascuja data seja a de hoje e onde omedicoIdcorresponda a este médico. - Abre um Chat: O médico clica num doente. A
ChatActivityarranca. UmSnapshotListener(um espião em tempo real) é colocado na sub-coleçãomensagens. Qualquer mensagem nova que lá caia, a app atualiza o ecrã instantaneamente.
💡 Próximos Passos & Manutenção
- Se precisares de alterar a Aparência: Vais à pasta
res/layout/. - Se precisares de adicionar um Novo Dado (ex: NIF): Vais ao modelo (
Medico.java), e alteras a lógica onde os dados são gravados (ex:EditarPerfilActivity.java). - Se houver um Erro de Login: O código a rever está na
LoginActivity.java.
(Este documento cobre absolutamente toda a arquitetura da aplicação Med Cuida+ de forma resumida e direta ao ponto!)