5.3 KiB
Relatório Técnico - MyCondominium
1. Visão Geral do Projeto
O MyCondominium é uma aplicação web moderna dedicada à gestão de condomínios. Permite uma interação contínua entre administradores e moradores, fornecendo ferramentas para gestão de quotas, ocorrências de manutenção, reservas de espaços comuns, faturação e comunicação em tempo real (chat privado, global e em grupo).
2. Arquitetura de Código e Tecnologias
A aplicação foi desenvolvida focada na simplicidade de implementação e execução, dispensando a necessidade de servidores complexos (arquitetura Serverless) e processos de build pesados.
Tecnologias Utilizadas:
- HTML5 & CSS3: Estrutura base e definições globais.
- JavaScript (React standalone): O coração da aplicação (localizado no ficheiro
index.html). O uso de React importado diretamente pelo browser (esm.sh/react) juntamente com o compilador Babel (@babel/standalone) permite criar componentes interativos, gerir estados (useState,useEffect) de forma reativa sem necessitar de instalar Node.js ou usar ferramentas como Vite/Webpack no ambiente de produção final. - Tailwind CSS (via CDN): Utilizado para o design visual, garantindo uma interface bonita, responsiva (adaptada a telemóveis) e com suporte automático para Dark Mode (Modo Escuro).
- Lucide-React: Biblioteca de ícones moderna utilizada ao longo de toda a interface.
- PWA (Progressive Web App): A aplicação contém um ficheiro
manifest.jsone configurações detheme-color, permitindo que os utilizadores a "instalem" nos seus telemóveis como se fosse uma aplicação nativa.
3. Base de Dados (Backend)
O projeto não tem um servidor backend tradicional; em vez disso, utiliza a infraestrutura segura e em tempo real da Google (Firebase).
3.1. Autenticação (Firebase Auth)
Gere os logins e registos. Garante que apenas utilizadores validados acedem à plataforma.
3.2. Firebase Realtime Database
É uma base de dados NoSQL (baseada em documentos JSON) que envia atualizações para todos os utilizadores no exato momento em que algo muda, sem precisarem de fazer refresh à página.
Estrutura da Base de Dados (Nós Principais):
condominos/: Guarda a lista de moradores, informações de contacto (NIF, Telemóvel), número da fração e o estatuto de aprovação (pendente vs aprovado).financas/: Registo contabilístico do condomínio (despesas como "Limpeza" e receitas como "Quotas").manutencao/: Pedidos de reparação reportados pelos moradores, com prioridade, localização e estado ("Resolvido", "Em Progresso").reservas/: Calendário de ocupação dos espaços comuns (Salão de Festas, Ginásio, etc.).faturacao/efaturas/: Registo e emissão de recibos e avisos de cobrança gerados pelo sistema.notificacoes/: Sistema de alertas (dividido entre pastasadmineID_do_morador) para avisar o utilizador de ações pendentes ou sucessos.mural_mensagens/: Histórico do chat "Fórum Geral" onde todos os moradores interagem.mensagens_privadas/: Canais de comunicação 1-para-1. O ID do caminho é gerado combinando os IDs dos dois utilizadores.grupos_chat/: Contém as definições dos grupos criados (Nome do grupo, lista de IDs de membros autorizados e quem o criou).mensagens_grupo/: Mensagens restritas aos grupos de chat criados.
4. Publicação e Alojamento (Hosting)
A aplicação está hospedada no Firebase Hosting, uma rede de distribuição global (CDN) ultrarrápida.
- URL Oficial Atual: https://mycondominium-web.web.app
- Configuração de Segurança e Performance (
firebase.json):- Cache-Control: Os recursos estáticos têm instruções para ficar na cache dos browsers durante 1 ano, permitindo que a app carregue quase instantaneamente após a primeira visita.
- Rewrites (SPA): Qualquer URL acedido é reencaminhado para o
index.html. Isto previne que ocorra um Erro 404 se um utilizador fizer "Refresh" no browser.
5. Como Fazer Atualizações (Guia Passo-a-Passo)
Se quiser editar o código e publicar uma nova versão, o processo é o seguinte:
- Editar Localmente: Abra os seus ficheiros (
index.html,style.css, etc.) no seu editor de código (como o VS Code) e faça as modificações desejadas. Pode testar abrindo oindex.htmlno seu browser localmente. - Abrir o Terminal: No seu Mac, abra o terminal e navegue para a pasta do projeto (
cd /Users/230414/GestorCondominio). - Fazer o Deploy: Execute o comando que envia os ficheiros novos para o servidor:
./firebase deploy --only hosting - Verificar: Aguarde que o terminal diga
Deploy complete!. A partir desse segundo, a alteração está disponível mundialmente no link do projeto.
6. Conclusão
A plataforma está otimizada para ser expansível, rápida e orientada ao "Real-time". A eliminação da barreira de reloads de página cria a sensação de uma aplicação fluida. Toda a lógica condicional está bem contida dentro da função componente App() em React, com validações sólidas como as de NIF e Cartão de Cidadão isoladas em funções utilitárias.