// gestão de associações · adhonep.org.br
ADHONEP Meetup System
Uma aplicação web em estilo desktop construída para a associação ADHONEP, oferecendo gestão de membros, agendamento de eventos e controle de acesso por meio de uma interface multijanela em ExtJS apoiada por uma API PHP em CodeIgniter.

Capturas de tela
Visão geral
O ADHONEP Meetup System é uma aplicação web em estilo desktop, rodando no navegador, construída para a associação ADHONEP (adhonep.org.br). Ele oferece uma plataforma centralizada para gerenciar os membros, os eventos e as operações da associação.
O sistema foi projetado para dar à equipe do escritório uma experiência familiar de aplicação desktop dentro do navegador. A biblioteca de componentes do ExtJS 3.0 renderiza painéis multijanela, grids de dados ordenáveis e controles de formulário ricos — tudo sem recarregar a página. Cada interação permanece dentro de um shell de página única que se comporta como uma aplicação nativa.
O backend é uma aplicação PHP construída sobre o CodeIgniter 2.1.3, expondo uma API JSON consumida inteiramente pelo frontend em ExtJS. Os controllers cobrem cada domínio central: registros de membros (Pessoas), cidades e locais (Cidades, Locais), eventos agendados (Agenda), downloads de documentos, ideias compartilhadas e configuração de sistema. Uma camada de controle de acesso baseada em helpers exige sessões de login antes de servir qualquer recurso protegido.
Uma convenção de nomes rígida foi estabelecida para manter a grande base de código ExtJS organizada entre os módulos. IDs de formulário, IDs de coluna de grid, IDs de datastore, IDs de janela e chaves de tradução de campos seguem padrões previsíveis derivados do nome da entidade — por exemplo, id-form-ins-pessoas, id-grid-pessoas, id-window-funcao-pessoas. Isso tornou prático para uma pequena equipe manter e estender um número crescente de módulos ao longo de vários anos, sem overhead de coordenação.
O sistema foi originalmente implantado em 2009 e permaneceu em uso ativo até 2014.
Destaques
Framework de módulos reutilizável
Construí um sistema de módulos base (Module.js, ClassesBase.js) somado a uma convenção de nomes rígida para que cada novo domínio — membros, eventos, cidades, downloads, ideias — pudesse ser gerado a partir de um template compartilhado de grid/formulário/datastore/janela. Isso permitiu a uma pequena equipe publicar e manter um conjunto crescente de módulos ao longo de cinco anos, sem retrabalho ou overhead de coordenação.
Experiência de desktop no navegador
Entreguei um shell ExtJS multijanela com barra de tarefas, menu iniciar, janelas arrastáveis e grids de dados ordenáveis que nunca recarrega a página. A equipe não técnica do escritório ganhou uma ferramenta familiar, com cara de nativa, o que encurtou o treinamento e manteve toda a administração diária de membros e eventos em um só lugar.
Controle de acesso baseado em sessão
Implementei uma camada de permissões movida a helpers (accesscontrol_helper, o módulo permissoes) que protege cada endpoint de API atrás de uma sessão autenticada. Isso manteve privados os dados pessoais dos membros e restringiu ações administrativas à equipe autorizada, protegendo os dados mais sensíveis da associação.