Engaging OS powers a new group registration system

A large schools association needed to handle group registrations for their year-round events. Using the Engaging OS enterprise engine, we delivered a system beyond their specifications that's role-based and future-ready.

One of the largest such organizations in the United States, serving over 74,000 students at over 140 member schools, an Assocation needed a new registration system for managing their multiple annual events — especially their complex Annual Conference. They turned to Engaging to build their new event registration portal.

A snap!

Engaging committed not only to replicating but besting the outgoing Registration Manager. Unlike that system, the new one actually stores data, thereby streamlining event registration and maintaining an historic record of events and attendances. As highlighted in their “Introduction to NEW Events Portal” PDF:

Because school members are stored with the school, registration becomes a snap!

Previously, registration managers needed to re-enter each attendees' details for each event, an administrative chore particularly burdensome for larger schools. Now, they need only check a box next to someone's name.

The system already handles:

  • Event tracks/streams (single-choice pathways within events) 
  • Event sessions (each with its own cost, venue, date & time)
  • Discounts for events series (each promoted and purchasable from its sibling events)
  • Bulk pricing (set in ranges)
  • Member and non-member pricing
  • Speakers and other descriptive aspects of an event such as its target audiences, topics, testimonials, photos and agenda
  • Dietary preferences (set per person then override-able for each event)
  • Saving then returning to a registration before submitting
  • Adding additional attendees to already-submitted registrations

Registration signup forms only appear during each event's configured registration period. For payments, the Association chose to keep their current processor Authorize.net (like Trevor, we panicked, but then we handled it).

Green shoots

The Assocation is enjoying other new benefits of the system, such as:

  • Automated nametags: Event nametags can be generated directly, eliminating the manual merge process.
  • Instant reports: Comprehensive reports are available at all times, streamlining what was previously a manual process involving collating data from various sources. Any report can be instantly sorted, filtered and exported to a CSV file.
  • Log in as: System administrators can log in as other users without needing their passwords, providing necessary perspective on the system’s usability vis-a-vis all types of users.
  • Manual resend: While notification emails are triggered automatically by defined events, such as a registration, they can also be manually resent.

On the go, day and night

Although the most common usage for the system is from a desk during work hours, the system nonetheless reduces neatly for mobile-sized screens and sports a rather dashing Dark Mode.

It also builds on the Association's branding, utilizing the fonts and colors of their main site.

Unto semantic blocks

To reduce cognitive load on users, each content type has its own distinct typographic treatment; we call this semantic typography. Here this extends further to semantic blocks; for each event, not only its title but all its aspects — its date, location, topics, registration deadlines and more — appear consistently across the system as a unit.

Engaging OS

Powering these and other enhancements is Engaging OS, our role-based engine for organization-wide systems.

Built on the Vue framework Nuxt and the backend-as-a-service Directus, and informed by business process management systems such as CamundaEngaging OS is the culmination to date of our experience in developing such systems.

Refactoring the domain model

During development we made three adjustments to the domain model.

Save before submitting an event registration

The first happened when the Association requested that school's registration managers be able to save their Registrations before submitting them. Given the long lead times between registering and events taking place, during which staff members can come and go or change jobs, this real-world requirement seemed obvious once mentioned.

The difficulty was that submitting a registration — that is, an entry containing a relationship to an event, an attending school, and any number of attendees — involves creating for each attendee an immutable Attendances entry. While it's of course possible to write these to the database then remove them at the will of the registration manager upon each save, doing so seemed a violation of good taste; these Attendances should not really exist until the registration has been submitted, even if they have a status to exclude them from consideration.

Instead, our solution for saving rather than submitting a Registration entry was to list, in a new JSON field in Registrations entitled Attendees, each potential attendee (and eventually, other information such as which sessions they are marked to attend), then clearing this Attendees field upon submitting and generating all the Attendances entries.

Add to a submitted event registration

The second adjustment came due to a similar real-world requirement: to be able to add attendees to a registration even after it's been submitted. This forced the addition to the domain model of the Payments collection; with that, multiple Payments could be associated with a single Registration.

Simultaneously register for other upsold events 

The final adjustment came when we realized that bundling events into series to enable discounts means that an event's registration form must be aware of the school's attendances to sibling events. Also, a Payment will now have to handle more than one Registration, since registering for a particular event may now handle registering for other events. This requires decoupling payments from registrations, fortunately already done earlier by our need to add more attendees even after registration submission.

Future-ready

After launch, the events director wrote:

I love that it is so customizable; after working through all of our events the first year and making the customizable changes, this is going to run really smoothly in the future with the specific fields we need, which is awesome... People have complimented how easy it will be to register in the future, and I believe that will help encourage registrations in general.

We're looking forward to adding new functionality wherever and whenever needed.