Use Cases
1. Overview
The Registration Portal supports multiple use cases covering person management, membership registration, and event registration. This document provides detailed scenarios demonstrating how users accomplish their goals, including acceptance criteria for implementation.
Phase 2 Enhancements are marked with the phase2 label and include:
-
Identity Selection (OIDC authentication option)
-
Manual Payment (QR code handoff)
-
Event Cancellation with refunds
-
Communication preference capture
2. Use Case 1: LinkedPerson Management
2.1. Overview
Goal: Manage a group of related people (family, friends, team) for registration purposes.
Actors:
-
Primary User (principal)
-
Related Persons (linked persons)
Preconditions:
-
User has received registration link with userKey
-
User has accessed the registration portal
2.2. Scenario 1.1: Add Family Member by ID Number
Context: Sarah wants to add her 10-year-old son Billy to register for a family membership.
Workflow:
-
Sarah accesses membership registration page
-
Clicks "+ Add Family Member"
-
Navigates to LinkedPerson search page
-
Selects "Search by ID Number"
-
Enters Billy’s 13-digit SA ID number:
1001150123089 -
System validates ID format ✓
-
System auto-extracts:
-
Date of Birth: 2010-11-15
-
Gender: Male (sequence 0123 < 5000)
-
-
System searches existing persons… no match found
-
System displays create person form with pre-populated data:
-
Identity Type: National ID (locked)
-
ID Number: 1001150123089 (locked)
-
Date of Birth: 2010-11-15 (locked)
-
Gender: Male (locked)
-
Country: South Africa (locked)
-
-
Sarah enters:
-
First Name: Billy
-
Last Name: Smith
-
Email: (leaves blank)
-
Contact Number: (leaves blank)
-
School: Pretoria High School
-
-
Clicks "Save"
-
System creates Person record
-
System creates LinkedPerson relationship:
-
Principal: Sarah (ID: 1)
-
Linked Person: Billy (ID: 3)
-
Type: FAMILY
-
-
Returns to membership registration page
-
Billy now appears in person selection table
Outcome: Billy is now linked to Sarah and available for membership registration.
2.3. Scenario 1.2: Add Friend by Date of Birth
Context: John wants to add his friend Mike to register together for a race event.
Workflow:
-
John accesses event registration page
-
Clicks "+ Add Person"
-
Navigates to LinkedPerson search
-
Selects "Search by Date of Birth"
-
Selects birth date: 1985-03-15 (year → month → day drill-down)
-
Clicks "Search"
-
System finds 3 matches:
-
Mike Johnson - 1985-03-15 - Male
-
Michael Smith - 1985-03-15 - Male
-
Michelle Roberts - 1985-03-15 - Female
-
-
John reviews the list
-
Clicks "Select" next to Mike Johnson
-
System displays Mike’s details for confirmation
-
John verifies identity and clicks "Link Person"
-
System creates LinkedPerson relationship:
-
Principal: John (ID: 5)
-
Linked Person: Mike (ID: 7)
-
Type: FRIEND
-
-
Returns to event registration
-
Mike now appears in participant selection
Outcome: Mike is linked to John and can be registered for the event.
2.4. Scenario 1.3: Edit Existing Linked Person
Context: Sarah needs to update Billy’s school information.
Workflow:
-
Sarah accesses membership registration
-
Sees Billy in linked persons table
-
Clicks "Edit" button next to Billy’s name
-
System navigates to edit person form
-
Identity fields are locked (ID number, DOB, gender)
-
Sarah updates:
-
School: Pretoria High School → Centurion High School
-
-
Clicks "Save"
-
System updates Person record
-
Returns to registration page
-
Changes are reflected in the table
Outcome: Billy’s information is updated without creating a duplicate.
3. Use Case 2: Membership Registration
3.1. Overview
Goal: Apply for organizational membership with multiple family members.
Actors:
-
Membership Applicant (principal)
-
Family Members (linked persons)
Preconditions:
-
User received membership invitation email
-
Membership period is open for registration
3.2. Scenario 2.1: Family Membership Application
Context: Sarah applies for a family membership for herself and her two children.
Workflow:
Step 1: Access Registration
-
Sarah receives email:
Subject: 2024 Running Club Membership Now Open Dear Sarah Smith, Registration for the 2024 Running Club membership is now open. Click here to register: https://app.runningclub.com/membership/register/42?u=abc123&h=5d41402a... Best regards, Running Club
-
Sarah clicks the link
-
System validates userKey and hash ✓
-
System loads membership registration page
Step 2: Person Selection
-
System displays linked persons:
Select Family Members: ☐ Sarah Smith | 1985-03-15 | Available ☐ Billy Smith | 2010-11-03 | Available ☐ Emma Smith | 2013-07-20 | Available
-
Sarah selects herself and both children ☑
-
Selected count updates: "3 participants selected"
-
Pricing preview: "Total: R 1,000.00"
-
Sarah clicks "Continue"
Step 3: Question Workflow
-
Question 1: "Does anyone have any medical conditions?"
☐ Sarah Smith ☑ Billy Smith ☐ Emma Smith
Sarah checks Billy (he has asthma)
-
Question 2: "What is your emergency contact number?"
Sarah Smith: [0821234567] Billy Smith: [0821234567] Emma Smith: [0821234567]
-
Question 3: "Who will be the primary contact person?"
(●) Sarah Smith ( ) Billy Smith ( ) Emma Smith
Sarah selects herself
-
Question 4: "What are your T-shirt sizes?"
Sarah Smith: [Dropdown: M] Billy Smith: [Dropdown: L] Emma Smith: [Dropdown: S]
-
Question 5: "I accept the terms and conditions"
[X] Accept for all members [X] Sarah Smith - I accept the terms and conditions [X] Billy Smith - I accept the terms and conditions [X] Emma Smith - I accept the terms and conditions
Step 4: Payment
-
System displays summary:
Registration Complete! Membership Summary: - Sarah Smith (Adult) R 500.00 - Billy Smith (Junior) R 300.00 - Emma Smith (Junior) R 200.00 ---------- Total: R 1,000.00 [Proceed to Payment] -
Sarah clicks "Proceed to Payment"
-
System redirects to payment gateway
-
Sarah completes payment
-
Gateway redirects back to portal
-
System displays confirmation:
Payment Successful! Membership Numbers: - Sarah Smith: M2024-1523 - Billy Smith: M2024-1524 - Emma Smith: M2024-1525 A confirmation email has been sent to [email protected]
Outcome: Family membership successfully registered and paid.
3.3. Scenario 2.2: Resume Incomplete Registration
Context: John started a membership application but didn’t complete payment. He returns 2 days later.
Workflow:
-
John clicks original registration link
-
System detects existing ProcessInstance in SUSPENDED state
-
System displays dialog:
Existing Registration Detected A previous registration attempt was found from 2 days ago. Would you like to: [Start Fresh] [Resume]
-
John clicks "Resume"
-
System loads ProcessInstance
-
System restores state:
-
Selected persons: John, Mike (2 persons)
-
Completed questions: 1-3 of 5
-
Current step: Question 4
-
-
System displays Question 4 with previous selections intact
-
John completes Questions 4-5
-
Normal payment flow continues
-
Registration completed
Outcome: John successfully completes registration without re-entering previous answers.
4. Use Case 3: Event Participant Registration
4.1. Overview
Goal: Register participants for an event (race, tournament, competition).
Actors:
-
Event Participant (registrant)
-
Additional Participants (friends, family, team members)
Preconditions:
-
Event registration is open
-
User has received event registration link
4.2. Scenario 3.1: Individual Race Registration
Context: Emma wants to register herself for a 10km fun run.
Workflow:
-
Emma receives SMS:
Running Club 10km Fun Run - March 15 Register now: https://app.runningclub.com/register?eventId=15&orgId=8&userKey=xyz789
-
Emma clicks link
-
System validates userKey ✓
-
System loads event registration page
-
System displays event details:
Event: 10km Fun Run Date: March 15, 2024 Location: Centurion, Gauteng Distance: 10km Entry Fee: R 150.00 Registration Closes: March 10, 2024
-
System displays participant selection:
Select Participants: ☑ Emma Smith | 2013-07-20 | Female
-
Emma is automatically selected (only person available)
-
Pricing: "Total: R 150.00 (1 participant)"
-
Emma clicks "Register"
-
System creates EventParticipant record
-
System creates Order
-
System redirects to payment gateway
-
Emma completes payment
-
System displays confirmation:
Registration Successful! Emma Smith - Bib Number: B1523 You will receive your race pack at: Race Expo: March 14, 2024, 10:00-18:00 Centurion Mall Race Start: March 15, 2024, 07:00 Good luck!
Outcome: Emma successfully registered for the race.
4.3. Scenario 3.2: Team Registration
Context: Coach David registers 5 team members for a relay race.
Workflow:
-
David accesses team registration link
-
System loads his linked persons (team members):
Select Participants: ☐ David Lee | 1980-05-12 | Coach ☐ James Brown | 1995-08-20 | Athlete ☐ Lisa Wong | 1997-03-15 | Athlete ☐ Tom Anderson | 1996-11-08 | Athlete ☐ Kelly Martinez | 1998-01-25 | Athlete ☐ Chris Taylor | 1999-07-30 | Athlete
-
David selects 4 athletes for the relay team
-
System displays team total: "Total: R 600.00 (4 participants × R 150.00)"
-
David clicks "Register"
-
System assigns consecutive bib numbers:
-
James Brown: T1001
-
Lisa Wong: T1002
-
Tom Anderson: T1003
-
Kelly Martinez: T1004
-
-
Payment and confirmation follow
-
Email sent with team details
Outcome: Relay team successfully registered.
4.4. Scenario 3.3: Registration with Age Restriction
Context: Billy (age 10) tries to register for an adult-only race.
Workflow:
-
Sarah tries to register Billy for "Half Marathon 21km"
-
System validates participant eligibility
-
System detects age restriction:
-
Race: Half Marathon 21km
-
Minimum Age: 16 years
-
Billy’s Age: 10 years
-
-
System displays error:
Registration Error Billy Smith is not eligible for this race. Reason: Participant is under minimum age requirement (16 years) Please select a different race or participant.
-
System suggests alternatives:
-
5km Junior Run (Ages 8-15)
-
1km Kids Dash (Ages 5-10)
-
-
Sarah navigates back and selects "5km Junior Run"
-
Billy is eligible ✓
-
Registration proceeds successfully
Outcome: System prevents ineligible registration, guides user to appropriate event.
5. Use Case Variations
5.1. Variation: Free Registration
Context: Organisation offers promotional free membership.
Differences:
-
Pricing shows: R 0.00
-
Payment step skipped
-
Membership activated immediately
-
Confirmation email sent without payment receipt
5.2. Variation: Multiple Registration Attempts
Context: User tries to register person who is already registered.
Workflow:
-
User selects person who has active membership
-
Person shows status: "Registered"
-
Checkbox is disabled (canSelect = false)
-
Tooltip displays: "Already has active membership"
-
User cannot select this person
-
User can view existing membership details
5.3. Variation: Registration Window Closed
Context: User accesses registration link after closing date.
Workflow:
-
User clicks registration link
-
System checks membership period:
-
Registration End Date: 2024-01-31
-
Current Date: 2024-02-05
-
-
System displays message:
Registration Closed Registration for 2024 Running Club membership closed on January 31, 2024. Please contact the club administrator for late registration requests. Email: [email protected] Phone: 012 345 6789
-
Registration form is not displayed
-
Contact information provided for inquiries
6. User Journey Maps
6.1. Journey: First-Time Membership Applicant
Stage 1: Discovery
├─ Receive invitation email
├─ Click registration link
└─ Land on registration page
Stage 2: Setup
├─ Review membership benefits
├─ Add family members (if any)
├─ Select persons for membership
└─ Click Continue
Stage 3: Application
├─ Answer question 1
├─ Answer question 2
├─ Answer question 3
├─ Answer question 4
├─ Accept terms
└─ Review summary
Stage 4: Payment
├─ Redirect to payment gateway
├─ Enter payment details
├─ Confirm payment
└─ Return to portal
Stage 5: Confirmation
├─ View membership numbers
├─ Receive confirmation email
└─ Done
Average Time: 8-12 minutes
Pain Points:
-
Adding family members (if not already linked)
-
Answering multiple questions
-
Payment gateway redirect
Improvements:
-
Pre-populate data where possible
-
Progress indicator for questions
-
Save and resume functionality
6.2. Journey: Returning Event Participant
Stage 1: Access
└─ Click event link from SMS/email
Stage 2: Selection
├─ Review event details
├─ Select participants (self already selected)
└─ Click Register
Stage 3: Payment
├─ Redirect to payment
├─ Complete payment
└─ Return to portal
Stage 4: Confirmation
├─ View bib number
├─ Note race pack collection details
└─ Done
Average Time: 3-5 minutes
Pain Points:
-
Minimal friction for returning users
Improvements:
-
Remember payment method for faster checkout
-
Push notifications for race day reminders
7. Error Scenarios
7.1. Invalid Registration Link
Symptoms:
-
User clicks old/expired link
-
Hash validation fails
-
System shows error page
Resolution:
-
Request new registration link
-
Contact organization administrator
8. Use Case 4: Identity Selection [phase2]
|
This use case provides scenario examples for authentication flows. For comprehensive authentication requirements including rationale, flow specifications, and matching algorithms, see Authentication Requirements. |
8.1. Overview
Goal: Allow users to authenticate via multiple methods while protecting personal information and maximising registration conversion.
Actors:
-
Registration User
-
Identity Provider (external)
Preconditions:
-
User has accessed registration URL (
/membership/{membershipTypeId}or/event/{eventId}) -
Tenant configuration determines available authentication options
8.2. Scenario 4.1: Active Session (Automatic Redirect)
Context: Sarah has already authenticated and returns to register for another event.
Workflow:
-
Sarah clicks event registration link
-
System detects valid JWT in session
-
System redirects immediately to Registration Overview (HTTP 302)
-
No authentication page is displayed
Acceptance Criteria:
-
Valid JWT bypasses Identity Selection screen
-
Immediate redirect to registration (no page flash)
-
User profile and linked persons loaded from session
Outcome: Sarah proceeds directly to registration without re-authenticating.
8.3. Scenario 4.2: Hash-Based Authentication
Context: John receives an invitation email with a secure registration link.
Workflow:
-
John clicks link:
https://app.example.com/event/15?u=abc123&h=5d41402a… -
System validates hash parameters against backend
-
Backend issues new JWT for John’s profile
-
System redirects to Registration Overview (HTTP 302)
-
John’s linked persons are loaded
Acceptance Criteria:
-
Hash-based URLs bypass Identity Selection screen when valid
-
New JWT issued, overriding any existing session
-
Invalid hash shows Identity Selection screen (not error page)
-
Hash parameters cleared from URL after validation
Outcome: John accesses registration directly via secure link with profile loaded.
8.4. Scenario 4.3: OIDC Authentication
Context: Mike wants to register for a race and signs in with his Google account.
Workflow:
-
Mike clicks event registration link (no hash parameters)
-
System displays Identity Selection screen:
How would you like to continue? [Sign in with Google] [Sign in with Apple] [Continue as Guest] Sign in to access your saved profile and linked persons.
-
Mike clicks "Sign in with Google"
-
System redirects to Google OIDC authentication
-
Mike authenticates with Google
-
Google redirects back to Registration Portal
-
System matches OIDC identity to existing user profile (or creates new)
-
System loads Mike’s linked persons
-
Registration Overview displays with Mike’s profile data
Acceptance Criteria:
-
Identity providers configured for tenant are displayed
-
OIDC provider redirect initiates correctly
-
Successful authentication returns to registration flow
-
Existing linked persons loaded after authentication
-
Session persists across page refresh
-
Failed authentication shows error and allows retry
Outcome: Mike is authenticated and sees his existing linked persons.
8.5. Scenario 4.4: Guest Access (Quick Registration)
Context: Jane arrives at an event without credentials and wants to register quickly.
Workflow:
-
Jane scans QR code from event banner:
https://app.example.com/event/15?u=G -
System detects
u=G(explicit guest mode) -
System displays guest details capture:
Quick Registration Enter your details to continue: First Name: [Jane ] Last Name: [Doe ] Cellphone: [0821234567 ] [Continue]
-
Jane enters her details and clicks Continue
-
System creates new
OrgUserwith generated UUID -
System searches for existing person matching cellphone + names
-
Match found: Jane’s existing Person record becomes principal
-
No match: New Person created with provided details
-
Registration Overview displays (linked persons NOT shown in guest mode)
Acceptance Criteria:
-
Guest mode triggered by
u=Gparameter -
Minimal details captured: first name, last name, cellphone
-
Person matching prioritises cellphone number
-
New OrgUser created with generated UUID
-
Previously linked persons NOT displayed in guest mode
-
User must explicitly add persons via Link Person
Outcome: Jane registers quickly without credentials.
8.6. Scenario 4.5: Guest Access with Relaxed Person Matching
Context: John (existing user) arrives at late registration without credentials, with his wife Jane.
Workflow:
-
John selects guest mode
-
John enters: "John Smith", "0821234567"
-
System identifies John via cellphone + name match
-
John’s existing Person record becomes principal
-
John clicks "Add Person" to register Jane
-
System knows Jane is linked to John from previous session
-
Link Person screen shows Jane’s name first, unmasked:
Add Person Suggested matches (from your previous registrations): - Jane Smith, Female [Select] Search for another person: [Search by ID Number] [Search by Date of Birth]
-
John selects Jane without needing to enter identifying details
-
Both proceed to registration
Acceptance Criteria:
-
Known linked persons appear first in Add Person suggestions
-
Known linked persons displayed without masking
-
Relaxed matching applied when principal identified
-
User can still search for unknown persons normally
Outcome: John registers himself and Jane quickly despite not having credentials.
8.7. Scenario 4.6: Deferred Account Creation
Context: Jane completed registration as guest and receives invitation to create account.
Workflow:
-
Jane completes guest registration and payment
-
Confirmation screen displays:
Registration Complete! Would you like to create an account? Your linked persons will be saved for future registrations. [Create Account] [Maybe Later]
-
Jane clicks "Maybe Later"
-
Jane receives email after 24 hours:
Subject: Save your registration details Hi Jane, Create an account to: - Access your registration history - Quickly register for future events - Keep your family members linked [Create Account]
-
Jane clicks link and creates account
-
System detects email matches existing guest registration
-
System prompts to merge:
We found existing registrations with this email. Would you like to link them to your new account? - 10km Fun Run (March 2024) - Jane Doe - 5km Family Run (March 2024) - Jane Doe, Billy Doe [Link Registrations] [Skip]
Acceptance Criteria:
-
Account creation offered after successful registration
-
Email invitation sent for deferred account creation
-
Existing registrations detected by email match
-
Merge prompt displayed for matching records
-
Guest registrations linked to new account on merge
Outcome: Jane’s guest registration is linked to her new account.
9. Use Case 5: Manual Payment [phase2]
9.1. Overview
Goal: Allow users to complete registration with manual payment at registration desk.
Actors:
-
Registration User
-
Staff Member (separate system, out of scope)
Preconditions:
-
User has completed registration workflow
-
Manual payment option is enabled for tenant/event
9.2. Scenario 5.1: Manual Payment with QR Code
Context: David is at a race expo and wants to pay cash at the registration desk.
Workflow:
-
David completes event registration questions
-
System displays Payment Selection screen:
How would you like to pay? Total: R 350.00 [Pay Online] [Pay at Registration Desk]
-
David clicks "Pay at Registration Desk"
-
System generates unique reference:
REF-2024-8A3F -
System displays Manual Payment screen:
Present this code at the registration desk [QR CODE IMAGE] Reference: REF-2024-8A3F Amount: R 350.00 The staff member will scan this code to process your payment. [Cancel] [I've completed payment]
-
David shows QR code to staff member
-
Staff scans/enters reference on admin system (out of scope)
-
Staff captures payment details and confirms
-
Backend receives payment confirmation
-
David’s screen updates to Confirmation
Acceptance Criteria:
-
Manual Payment option displayed when configured
-
Unique reference number generated
-
QR code encodes reference number
-
QR code and reference clearly displayed
-
Amount shown matches registration total
-
Screen updates when backend confirms payment
-
Timeout/expiry handling for pending payments
Implementation Scope:
| Area | Component | Deliverables |
|---|---|---|
Frontend |
Registration Portal (Angular) |
Payment selection screen, QR code display component, payment status polling, timeout handling UI |
Backend |
admin-service (Java) |
Payment reference generation API, QR code data endpoint, payment status endpoint, callback webhook handler |
Integration |
Staff Admin System |
Callback integration for payment confirmation (out of scope for portal) |
Outcome: David completes registration via cash payment at desk.
9.3. Scenario 5.2: Manual Payment Timeout
Context: Lisa generates a QR code but doesn’t complete payment at the desk.
Workflow:
-
Lisa selects "Pay at Registration Desk"
-
System displays QR code with reference
-
Lisa doesn’t present to staff within session timeout
-
System shows timeout message:
Payment session expired Your registration has been saved. You can complete payment by: - Returning to this page and generating a new code - Contacting the registration desk [Generate New Code] [Return to Registration]
Acceptance Criteria:
-
Session timeout configured (e.g., 30 minutes)
-
Timeout message displayed clearly
-
Option to generate new reference
-
Registration preserved in pending state
-
User can resume and complete payment later
Implementation Scope:
| Area | Component | Deliverables |
|---|---|---|
Frontend |
Registration Portal (Angular) |
Timeout detection, timeout message display, regenerate code action, resume flow navigation |
Backend |
admin-service (Java) |
Session timeout configuration, reference expiry logic, new reference generation, pending registration state management |
Outcome: Lisa can generate new code or complete payment later.
10. Use Case 6: Event Cancellation [phase2]
10.1. Overview
Goal: Allow users to cancel event registrations and receive appropriate refunds.
Actors:
-
Registration User (original payer)
Preconditions:
-
User has existing event registration
-
User was the original payer for the registration
-
Event has not yet occurred
10.2. Scenario 6.1: Cancellation with Refund (≥7 days before event)
Context: Sarah registered Billy for a race but he’s injured. The event is 14 days away.
Workflow:
-
Sarah accesses event registration page
-
Registration Overview shows Billy’s registration:
Registered Participants: Billy Smith | Bib: B1523 | 10km Run | Registered [View Details] [Cancel Registration]
-
Sarah clicks "Cancel Registration"
-
System calculates refund (14 days before event):
Cancel Registration Participant: Billy Smith Event: 10km Run - March 15, 2024 Original Amount: R 350.00 Refund Calculation: - Cancellation: 14 days before event - Refund Policy: 90% refund (10% admin fee) - Refund Amount: R 315.00 [Go Back] [Confirm Cancellation]
-
Sarah clicks "Confirm Cancellation"
-
System processes cancellation
-
System displays confirmation:
Registration Cancelled Billy Smith's registration for 10km Run has been cancelled. Refund: R 315.00 will be processed to your original payment method within 5-7 business days. [Return to Event]
Acceptance Criteria:
-
Cancel option visible for registered participants
-
Only original payer can cancel
-
Days until event calculated correctly
-
Refund amount calculated: 90% for ≥7 days
-
Confirmation required before cancellation
-
Registration status updated to Cancelled
-
Refund information displayed clearly
-
Cancellation confirmation shown
Implementation Scope:
| Area | Component | Deliverables |
|---|---|---|
Frontend |
Registration Portal (Angular) |
Cancel button on Registration Overview, cancellation confirmation dialog, refund calculation display, success confirmation screen |
Backend |
admin-service (Java) |
Cancellation eligibility API (payer check), refund calculation service, cancellation processing endpoint, registration status update |
Outcome: Billy’s registration is cancelled with 90% refund.
10.3. Scenario 6.2: Cancellation without Refund (<7 days before event)
Context: John wants to cancel his registration 3 days before the event.
Workflow:
-
John accesses event registration
-
Clicks "Cancel Registration"
-
System shows no-refund warning:
Cancel Registration Participant: John Smith Event: 10km Run - March 15, 2024 Original Amount: R 350.00 Refund Calculation: - Cancellation: 3 days before event - Refund Policy: No refund within 7 days - Refund Amount: R 0.00 WARNING: Cancellations within 7 days of the event are not eligible for refunds. [Go Back] [Confirm Cancellation]
-
John confirms cancellation
-
Registration cancelled, no refund issued
Acceptance Criteria:
-
No refund for cancellations <7 days before event
-
Clear warning about no refund
-
User must explicitly confirm
-
Registration cancelled regardless of refund
Implementation Scope:
| Area | Component | Deliverables |
|---|---|---|
Frontend |
Registration Portal (Angular) |
No-refund warning display, explicit confirmation checkbox/button |
Backend |
admin-service (Java) |
Refund policy enforcement (0% for <7 days), same cancellation processing as Scenario 6.1 |
Outcome: John’s registration cancelled without refund.
10.4. Scenario 6.3: Cannot Cancel (Not Original Payer)
Context: Mike tries to cancel a registration that Sarah paid for.
Workflow:
-
Mike accesses registration showing Billy (Sarah’s son)
-
Billy shows as "Registered" but Mike didn’t pay
-
Cancel option is not displayed
-
View Details shows:
Billy Smith - Registered This registration was made by another user. Contact the original registrant to make changes.
Acceptance Criteria:
-
Cancel option hidden for non-payers
-
Message explains why cancel unavailable
-
Original payer can still cancel
Implementation Scope:
| Area | Component | Deliverables |
|---|---|---|
Frontend |
Registration Portal (Angular) |
Conditional cancel button visibility, informational message for non-payers |
Backend |
admin-service (Java) |
Payer identification in registration data, eligibility check in cancellation API |
Outcome: Mike cannot cancel; Sarah (original payer) must do it.
11. Use Case 7: Communication Preferences [phase2]
11.1. Overview
Goal: Capture user’s preferred notification channels during registration.
Actors:
-
Registration User
Preconditions:
-
User is in registration question workflow
-
Communication preference question configured in ProcessDefinition
11.2. Scenario 7.1: Select Communication Preferences
Context: Sarah is completing membership registration and reaches the communication preferences question.
Workflow:
-
Sarah progresses through registration questions
-
System displays communication preference question:
How would you like to receive updates and notifications? Select all that apply: [ ] Email [ ] SMS [ ] WhatsApp Note: We'll use these channels for registration confirmations, event reminders, and important updates. [← Back] [Next →]
-
Sarah selects Email and WhatsApp
-
System validates at least one option selected
-
Sarah clicks Next
-
Registration continues with preferences saved
Acceptance Criteria:
-
Three options displayed: Email, SMS, WhatsApp
-
Multiple selections allowed
-
At least one selection required
-
Preferences saved with registration
-
Back navigation preserves selections
-
Question appears for both Membership and Event registration
Implementation Scope:
| Area | Component | Deliverables |
|---|---|---|
Frontend |
Registration Portal (Angular) |
Communication preference question component, multi-select checkbox group, validation (at least one), state persistence on navigation |
Backend |
admin-service (Java) |
ProcessDefinition configuration for communication question, preference storage in registration data |
Outcome: Sarah’s notification preferences are captured for backend use.
11.3. Scenario 7.2: Communication Preferences for Multiple Persons
Context: Sarah is registering her family and needs to set preferences for each person.
Workflow:
-
Communication preference question displays for all selected persons:
How would you like to receive updates and notifications? Sarah Smith: [X] Email [ ] SMS [X] WhatsApp Billy Smith: [X] Email [ ] SMS [ ] WhatsApp Emma Smith: [X] Email [ ] SMS [ ] WhatsApp [← Back] [Next →]
-
Sarah sets preferences for each family member
-
Children default to Email only (no phone)
Acceptance Criteria:
-
Preferences captured per person when multiple registrants
-
Default selection can be configured
-
All persons must have at least one channel
-
UI clearly shows which person each selection applies to
Implementation Scope:
| Area | Component | Deliverables |
|---|---|---|
Frontend |
Registration Portal (Angular) |
Per-person preference display, grouped checkbox layout, per-person validation, default selection handling |
Backend |
admin-service (Java) |
Per-person preference storage, default preference configuration in ProcessDefinition |
Outcome: Individual preferences captured for each family member.
12. Use Case Summary
| Use Case | Description | Phase | Azure DevOps Feature |
|---|---|---|---|
UC-1: LinkedPerson Management |
Add, search, link persons to profile |
Existing |
Membership Registration |
UC-2: Membership Registration |
Multi-person membership application |
Existing |
Membership Registration |
UC-3: Event Participant Registration |
Register participants for events |
Existing + Phase 2 |
Event Registration |
UC-4: Identity Selection |
Multi-method authentication: OIDC, hash-based, guest access |
Phase 2 |
Membership Registration, Event Registration |
UC-5: Manual Payment |
QR code payment handoff to staff |
Phase 2 |
Membership Registration, Event Registration |
UC-6: Event Cancellation |
Cancel registrations with refund rules |
Phase 2 |
Event Registration |
UC-7: Communication Preferences |
Capture notification channel preferences |
Phase 2 |
Membership Registration, Event Registration |
12.1. UC-4 Scenario Summary
| Scenario | Description | Key Feature |
|---|---|---|
4.1 |
Active session automatic redirect |
No page displayed, immediate 302 |
4.2 |
Hash-based authentication |
Secure invitation links |
4.3 |
OIDC authentication |
Google, Apple, organisation IdPs |
4.4 |
Guest access (Quick Registration) |
Walk-up registration, minimal details |
4.5 |
Guest with relaxed matching |
Known persons shown without masking |
4.6 |
Deferred account creation |
Post-registration account invitation |