LV
Back

// association management · adhonep.org.br

ADHONEP Meetup System

A desktop-style web application built for the ADHONEP association, providing member management, event scheduling, and access control through a multi-window ExtJS interface backed by a CodeIgniter PHP API.

Engineered with2009
Open live
ADHONEP Meetup System — screenshot 1

Screenshots

Overview

ADHONEP Meetup System is a browser-based, desktop-style web application built for the ADHONEP association (adhonep.org.br). It provides a centralized platform for managing the association's members, events, and operations.

The system was designed to give office staff a familiar desktop-application experience inside the browser. ExtJS 3.0's component library renders multi-window panels, sortable data grids, and rich form controls — all without page reloads. Every interaction stays within a single-page shell that behaves like a native application.

The backend is a PHP application built on CodeIgniter 2.1.3, exposing a JSON API consumed entirely by the ExtJS frontend. Controllers cover every core domain: member records (Pessoas), cities and locations (Cidades, Locais), scheduled events (Agenda), document downloads, shared ideas, and system-level configuration. A helper-based access control layer enforces login sessions before any protected resource is served.

A strict naming convention was established to keep the large ExtJS codebase organized across modules. Form IDs, grid column IDs, datastore IDs, window IDs, and field translation keys all follow predictable patterns derived from the entity name — for example, id-form-ins-pessoas, id-grid-pessoas, id-window-funcao-pessoas. This made it practical for a small team to maintain and extend a growing number of modules over several years without coordination overhead.

The system was originally deployed in 2009 and remained in active use through 2014.

Highlights

Reusable module framework

I built a base module system (Module.js, ClassesBase.js) paired with a strict naming convention so each new domain — members, events, cities, downloads, ideas — could be scaffolded from a shared grid/form/datastore/window template. This let a small team ship and maintain a growing set of modules over five years without rework or coordination overhead.

Desktop-in-the-browser experience

I delivered a multi-window ExtJS shell with a taskbar, start menu, draggable windows, and sortable data grids that never reloads the page. Non-technical office staff got a familiar, native-feeling tool, which shortened onboarding and kept all day-to-day member and event administration in one place.

Session-based access control

I implemented a helper-driven permissions layer (accesscontrol_helper, the permissoes module) that gates every protected API endpoint behind an authenticated session. This kept members' personal records private and restricted administrative actions to authorized staff, protecting the association's most sensitive data.