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
See Membership Registration Workflow for details.
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
See Event Participant Registration Workflow for details.
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:
-
Use Cases - Detailed use case documentation
-
Security Requirements - Security needs and constraints
5.2. Architecture
JHipster gateway architecture and technical design:
-
Security Architecture - Authentication and authorization
-
API Proxy Design - Gateway proxy configuration
5.3. Design
Feature design and implementation details:
-
LinkedPerson Management - Managing person groups
-
Membership Registration - Membership workflow
-
Event Registration - Event participant workflow
-
Process Flow Integration - Process entity integration
-
Phase 2 Registration - Unified registration design
-
Security Implementation - Security code details
-
Entra ID User Provisioning - Identity provider integration
6. Related Documentation
-
Domain Entities - Entity definitions
-
Process Entities - Process workflow entities
-
Frontend Applications - Related frontend apps