Registration Portal

1. Overview

The Registration Portal is a self-service web application that enables users to register for memberships and events. Built as a JHipster gateway application, it provides streamlined, process-driven workflows for onboarding Members and Event Participants.

Application Type: JHipster Gateway with OAuth2 Authentication

1.1. Multi-Tenant Architecture

The Registration Portal supports multi-tenant operation where a single application instance serves multiple organizations:

  • URL-based Tenant Determination - The organization is determined from the URL (e.g., subdomain or path parameter)

  • Data Isolation - Each organization data is completely isolated from other organizations

  • Shared Infrastructure - Single application deployment serves all organizations

  • Custom Branding - Each organization can have custom branding and configuration

1.2. User Identity Model

The portal uses a flexible user identity system:

User ID:

  • Unique identifier for each user across the system

  • Can be an anonymous profile or authenticated user

  • Persisted across sessions via Device ID

User Profile:

  • External ID - Links to authentication provider (e.g., WordPress user ID, Keycloak user ID)

  • Device ID - Browser-based identifier stored in localStorage for anonymous users

  • User Key - Secure token for registration workflows (sent via email/SMS links)

This model allows users to:

  • Start registration workflows without creating an account

  • Resume registration from the same browser

  • Link multiple persons to a single user profile

  • Transition from anonymous to authenticated user

2. Key Features

The Registration Portal provides three main functional areas:

2.1. LinkedPerson Management

Manage groups of related people for simplified registration:

  • Family Members - Group family members for family membership pricing

  • Friends - Manage friend groups for group registrations

  • Club/Team Members - Club administrators and team managers can manage their rosters

  • Person Lookup - Search for existing persons in the system or create new records

  • Profile Linking - Link existing User/Person records to the current user profile

See LinkedPerson Management for details.

2.2. Membership Registration

Process-driven workflow for membership applications:

  • Person Selection - Choose which LinkedPersons to include in membership

  • Pricing Tiers - Automatic calculation of individual vs. family pricing

  • Adult/Child Classification - Group participants into appropriate pricing categories

  • Form-Based Process - Sequential questions with back navigation support

  • Batch Processing - Handle all members simultaneously (e.g., ask School for all at once)

  • Indemnity Acknowledgement - Organisation-specific indemnity forms

2.3. Event Participant Registration

Comprehensive participant information capture:

  • Participant Details - School, emergency contacts, insurance, doctor information

  • Guardian Information - Capture guardian details for minors

  • Team Assignment - Team name and affiliation

  • License Verification - National Federation license/membership check

  • Day License - Manage day license inclusion if no active license

  • Form-Based Process - Sequential questions with back navigation

  • Batch Processing - Handle all participants simultaneously

  • Indemnity Acknowledgement - Event-specific indemnity forms

3. Architecture Overview

Technology Stack:

  • Frontend: Angular, TypeScript, PrimeNG

  • Gateway: JHipster 8.11.0, Spring Boot, Spring Cloud Gateway

  • Authentication: OAuth2 with JWT tokens

  • Backend: admin-service (Spring Boot REST API)

  • Database: MySQL (via admin-service)

See Architecture for detailed architectural documentation.

4. Process Flow Integration

The Registration Portal leverages the Process entities (ProcessDefinition, ProcessInstance, ProcessStep) to create dynamic, sequential form workflows:

Process Characteristics:

  • Sequential Steps - One question/screen at a time

  • Back Navigation - Users can go back to previous steps

  • Batch Processing - Single question asked for all participants/members simultaneously

  • Dynamic Forms - Process definitions drive form structure

  • Progress Tracking - Visual indicators show progress through workflow

See Process Flow Integration for implementation details.

5. Module Documentation

This documentation is organized into the following modules:

5.1. Requirements

Functional and non-functional requirements for the Registration Portal:

5.2. Architecture

JHipster gateway architecture and technical design:

5.3. Design

Feature design and implementation details: