alumni_lookup

Champion Portal — Backlog

Ideas, enhancements, and future considerations captured during development. Items here are NOT committed to any phase — they’re candidates for prioritization.


Table of Contents

  1. Architecture Ideas
  2. UX Enhancements
  3. Technical Improvements
  4. Phase-Specific Deferrals
  5. Database Cleanup
  6. Future Enhancements

1. Architecture Ideas

1.1 Unified Admin Portal (admin.bualum.co)

Added: December 4, 2025 (Phase 1 planning)

Idea: Create a separate admin portal at admin.bualum.co that consolidates settings from both Lookup Portal and Champion Portal.

Benefits:

Considerations:

Status: Captured for future consideration. Current plan continues with verification queue in Lookup Portal, but this is a strong candidate for Phase 2 or later.


1.2 Cross-Portal Navigation

Added: December 4, 2025 (Phase 1 planning)

Idea: Users with permissions to multiple portals should have an easy way to switch between them.

Implementation options:

Status: Should implement in Phase 1.5 when building the Champion Portal header. Simple dropdown with links to Lookup/Champions based on user permissions.


1.3 District Name Management UI

Added: December 4, 2025 (Phase 1.1 implementation)

Idea: Admin interface to edit district display names without direct database access.

Context: Districts are imported from CSV with long MSA names (e.g., “Nashville-Davidson–Murfreesboro–Franklin”) but we want short display names (e.g., “Nashville”). The csv_name column preserves the original for import matching, while name is the editable display name.

Scope:

Target: Phase 1.5 (Admin tools) or Phase 2

Priority: Medium — seed script auto-generates short names, but staff will want to customize ~50 key metros

Status: Should implement in Phase 1.5 when building the Champion Portal header. Simple dropdown with links to Lookup/Champions based on user permissions.


2. UX Enhancements

2.1 ZIP Code Autocomplete

Added: December 4, 2025

Idea: Type-ahead autocomplete for ZIP code entry that shows city/state as user types.

Priority: Low (ZIP entry is one-time during signup)


2.2 Profile Photo Cropping

Added: December 4, 2025

Idea: Client-side image cropping before upload to ensure consistent profile photos.

Libraries to consider: Cropper.js, react-image-crop

Priority: Medium (better UX, but not blocking)


2.3 PWA Support

Added: December 4, 2025

Idea: Add service worker and manifest for Progressive Web App capabilities.

Benefits:

Priority: Medium (good for mobile-first, but not Phase 1)


2.4 Email Address Change Flow

Added: December 11, 2025 (Phase 1.4)

Issue: Champions have no clear way to change their email address. Email serves dual purposes:

  1. Authentication — used for sign-in (especially important for password auth)
  2. Contact — displayed in directory (with privacy controls)

Considerations:

Possible flows:

  1. Simple change — Update email, send confirmation to new address, revert if not confirmed within X days
  2. Separate fields — Add contact_email field, keep email for auth only
  3. Email aliases — Allow multiple emails, designate one for contact display

Priority: Medium — users will ask for this eventually

Target: Phase 2


2.5 Simplify First Name Fields ✅ IMPLEMENTED

Added: December 11, 2025 (Phase 1.4)
Implemented: December 12, 2025 (Phase 1C)

Issue: The current flow asks for “Legal First Name” and “Preferred First Name” which feels bureaucratic. The legal name isn’t really needed except for identity matching.

Solution Implemented: Option 2 — single “First Name” field for most users, collapsible section for optional legal name and maiden name

Changes:

Result: Cleaner, less bureaucratic signup flow while still capturing legal name when needed


2.6 Profile Page Visual Refresh

Added: December 11, 2025 (Phase 1.4)

Issue: The profile show/edit pages feel “clunky and full of words” with similar styling across sections. Hard to scan.

Problems identified:

Research needed:

Possible improvements:

  1. Bolder section headers — Larger text, colored underlines, or icons
  2. Card-based sections — Each section in its own card with subtle shadows
  3. Visual icons — Add icons before each section header (📍 Location, 💼 Professional, etc.)
  4. Color coding — Different accent colors per section
  5. Progress/completion indicators — Show which sections are complete
  6. Whitespace — More breathing room between sections
  7. Two-column layout — Primary info left, secondary right

Priority: Medium-High — affects user perception of quality

Target: Phase 2 (UX polish sprint)


3. Technical Improvements

3.1 Account Merge Tool

Added: December 4, 2025

Idea: Tool for staff to merge duplicate Champion accounts if someone signs up multiple times before verification.

Priority: Low (can handle manually initially)


3.2 API-First Endpoints

Added: December 4, 2025

Idea: Build Champion Portal features with RESTful API endpoints to support future native mobile app.

Status: Keep in mind during Phase 1 implementation. Controller actions should be API-friendly.


3.3 “Smaller Area” District Handling

Added: December 4, 2025

Idea: Champions in small districts (non-highlighted areas) may not have a full “district view” if there are few champions nearby.

Possible solutions:

Priority: Address during Phase 1.4 (Directory) or Phase 2


4. Phase-Specific Deferrals

Items intentionally deferred from specific phases:

Item Original Phase Reason Deferred Target Phase
Push notifications Phase 1 Not needed for MVP Phase 4+
Map view Phase 1 Complexity Phase 5
Visit mode (secondary cities) Phase 1 Complexity Phase 5
Apple Sign In Phase 1.3 Focus on Google first Future
Facebook OAuth Phase 1.3 Focus on Google first Future
SSO account linking Phase 1.3 Complexity (edge case handling) Phase 2+
Account settings (connect/disconnect Google) Phase 1.3 Profile edit covers basics Phase 1.4 or 2
Sync imported affinities to profile Phase 1.4 Requires BUID verification first Phase 2+
Drop cp_profile_changes table Phase 1.1 Superseded by crm_data_changes Post-Affinaquest

5. Database Cleanup

5.1 Drop cp_profile_changes Table

Added: December 9, 2025 (Affinaquest unified sync planning)

Context: The cp_profile_changes table was created in Phase 1.1 as a changelog for CRM exports. It has been superseded by the unified crm_data_changes table (see UNIFIED_DATA_SYNC.md).

Current Status:

Migration Plan:

  1. ✅ Create new crm_data_changes table (Affinaquest Phase 1)
  2. ⏳ Update Champion Portal profile editing to use crm_data_changes (Phase 1.4 or 2)
  3. ⏳ Drop cp_profile_changes table after Champion Portal is using unified table
  4. ⏳ Remove Cp::ProfileChange model

Migration to Create:

class DropCpProfileChanges < ActiveRecord::Migration[7.1]
  def up
    drop_table :cp_profile_changes
  end
  
  def down
    # Recreate table if needed to rollback
    create_table :cp_profile_changes do |t|
      t.references :cp_champion, foreign_key: { to_table: :cp_champions }, null: false
      t.string :field_name, null: false
      t.string :table_name, null: false
      t.text :old_value
      t.text :new_value
      t.string :changed_by_type
      t.bigint :changed_by_id
      t.timestamps
    end
    
    add_index :cp_profile_changes, [:cp_champion_id, :created_at]
    add_index :cp_profile_changes, :created_at
    add_index :cp_profile_changes, :field_name
  end
end

Target: After Affinaquest import is live and Champion Portal profile editing uses crm_data_changes


6. Future Enhancements

6.1 Sync Imported Affinities

Added: December 8, 2025 (Phase 1.4 planning)

Idea: For verified champions (those with BUID linked), show their CRM-imported affinities from alumni_affinities and allow bulk add to their cp_affinities profile.

Flow:

  1. Champion is verified (BUID linked to account)
  2. System checks alumni_affinities for their BUID
  3. If affinities exist, show “We found X groups from your time at Belmont”
  4. Champion can review list and “Add all” or select individual ones
  5. Selected affinities copied to cp_affinities

Benefits:

Priority: Medium — nice engagement boost, but self-selection works fine for MVP

Target: Phase 2 (post-MVP)


How to Use This Document

  1. Add new ideas as they come up during development
  2. Include context — when was it added, what triggered the idea
  3. Estimate priority — High/Medium/Low
  4. Reference in phase planning — when ready to implement, move to appropriate phase doc

Last updated: December 9, 2025