alumni_lookup

Feature 3: Directory & Search

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


Overview

The Champion Directory makes it easy for Champions to find and connect with each other. This is central to the Connection Advisor role and the belonging narrative.

Design Principle: Connection is at the heart of the Champion community. Make it easy to find people who share your interests, location, or background.


Search Filters

Modeled after the internal Alumni Lookup, but simplified for the Champion audience.

Filter Type Notes
Name Text Searches preferred name, legal name, maiden name
Graduation Year Dropdown/Range From Alumni record
College Dropdown From Alumni record
Major Dropdown From Alumni record
Affinity Typeahead From Champion’s cp_affinities — reuses affinity selector component
Region Dropdown Primary or “visiting” region
District Dropdown More granular than region
Industry Dropdown From Champion profile
Champion Role Dropdown Community Builder, Connection Advisor, etc.

Affinity Filter

The affinity filter uses the same typeahead component as the profile affinity selector:

Filter Interactions


Display Options

List View (Preferred)

| Column | Content | |——–|———| | Photo | Thumbnail or placeholder | | Name | Preferred name | | Location | City, State (if visible) | | Role | Champion role badge(s) | | Affinity | Primary affinity | | Actions | View Profile, Message |

Card View (Preferred by Community Builders)

┌─────────────────────────┐
│ [Photo]                 │
│ Preferred Name          │
│ City, State             │
│ ─────────────────────── │
│ Role: Community Builder │
│ Industry: Healthcare    │
│ Affinity: Greek Life    │
│ ─────────────────────── │
│ [View] [Message]        │
└─────────────────────────┘

Map View (Future - Phase 5)

Privacy Note: Map shows approximate location only. No precise addresses displayed.


Profile View

When viewing another Champion’s profile:

Visible Information (based on privacy settings)

Always Visible

Hidden Based on Privacy

Actions


Search Results Behavior

Default Sort

Alternative Sorts

Pagination


Regional Filtering

Default Behavior

When a Champion logs in, results default to:

  1. Their primary region first
  2. All regions available via filter

“Visit Mode”

When a Champion “visits” another region:


Privacy-Aware Display

For Each Field

def display_field?(field, viewer, owner)
  case owner.privacy_setting_for(field)
  when 'all_champions'
    true
  when 'region_only'
    viewer.region == owner.region
  when 'hidden'
    viewer == owner  # Only self can see
  end
end

Placeholder for Hidden Fields


Required Decisions


Technical Notes

Search Implementation Options

Option A: Simple SQL LIKE

Option B: PostgreSQL Full-Text Search

Option C: Elasticsearch

Recommendation: Start with PostgreSQL full-text search, matching Alumni Lookup implementation.

Index Requirements