alumni_lookup

Feature 2: Profile Management

⚠️ PLANNING DOCUMENT - This describes features that are NOT YET IMPLEMENTED.


Overview

Champion profiles allow alumni to share information about themselves with the Champion community while maintaining control over their privacy.

Design Principle: Champions reflect what alumni already do. Profiles must highlight belonging and agency.


Profile Completion Wizard

New champions are guided through a multi-step wizard to complete their profile. The wizard is designed to be:

Wizard Steps

Step Name Required Purpose
1 Basic Info Yes First name, last name, preferred name, college last name
2 Location & Contact No* Street address, phone (*ZIP already collected at signup)
3 Professional No Employer, job title, industry
4 Affinities No “What groups were you part of at Belmont?”
5 Photo No Profile photo upload

Wizard UX Guidelines


Profile Sections

2.0 Education Information

Source: Pulled from Alumni record after BUID verification

Field Source Editable Notes
Degree Alumni table No Could have multiple (undergrad + grad)
Major Degrees table No Multiple possible
College Majors → Colleges No Multiple possible
Graduation Year Degrees table No Privacy controls apply

Privacy Controls for Graduation Year:


2.1 Personal Identity

Field Required Notes
Preferred name Yes Display name throughout portal
Legal name No For matching/verification
Maiden name No For search - labeled “last name while at Belmont if different”
Profile photo No Upload/replace/remove

2.2 Contact Information

Field Required Privacy Options
Phone No All Champions / Region only / Hidden
Email Yes All Champions / Region only / Hidden
Street Address No All Champions / Region only / Hidden
City, State, ZIP Yes All Champions / Region only / Hidden
District Auto Derived from ZIP
Region Auto Derived from District, can be overridden

District/Region Assignment:


2.3 Employment

Field Required Notes
Employer No Current employer name
Title No Current job title
Industry No Preset list - aligns with industry-based engagement

Industry List Example:


2.4 Affinity

Champions can self-select affinities representing groups they were part of at Belmont.

Data Model:

Selection UI: | Component | Purpose | |———–|———| | Typeahead search | Quick find for users who know what they’re looking for | | Category accordions | Browse by category (collapsed by default to avoid overwhelm) | | Selected tags | Display current selections as removable chips/badges |

Categories (from existing affinities table):

Key Decisions:

Future Enhancement (Backlog):


2.5 Champion Roles

Field Notes
Primary Role Community Builder, Connection Advisor, Digital Ambassador, Generous Giver
Secondary Roles Optional, multiple allowed
Role Quiz Link Can retake quiz to update role selection

Decision Made: Champions can select multiple roles and change them seasonally.


2.6 Contact Preferences

Who can contact you:

Preferred contact channels:


Privacy Model

Visibility Levels

Level Who Can See
All Champions Any authenticated Champion
Region Only Champions in same primary region
Hidden Only the Champion themselves (and admins)

Per-Field Privacy

Each contact field can have its own privacy setting:


Profile Completeness

Completion Indicators

Track and display profile completion to encourage full profiles:

Section Weight
Photo uploaded 15%
Contact info complete 20%
Employment info 15%
Affinity selected 15%
Champion role selected 20%
Privacy settings configured 15%

Nudges


UI/UX Considerations

Profile View (Own)

Profile View (Other Champions)


Technical Notes

Data Location Decisions

Temporal data (changes over time) → Champion table:

Permanent data → Alumni table:

Bridge: Champion record links to Alumni record via buid foreign key.

CRM Change Tracking

Profile edits are tracked via the unified crm_data_changes table for export to Advancement Services:

# When Champion updates their profile:
CrmDataChange.create!(
  buid: champion.linked_alumni&.buid,
  contact_id: champion.linked_alumni&.contact_id,
  cp_champion_id: champion.id,
  source_table: 'cp_champions',
  field_name: 'phone',
  old_value: '(615) 555-1234',
  new_value: '(615) 555-9999',
  change_source: 'champion_portal',
  changed_by_type: 'Cp::Champion',
  changed_by_id: champion.id
)

Full Architecture: See UNIFIED_DATA_SYNC.md