alumni_lookup

Phase 17: Champions Landing Page & Legacy Signup Retirement

Status: Complete (17.1, 17.2, 17.3, 17.4)
Priority: High
Estimated Sub-Phases: 4


Overview

Create a publicly accessible landing page at belmontalum.com/champions (the redirect target for alumnichampions.com) that educates visitors about the Alumni Champions program and encourages them to create an account. Simultaneously retire the legacy champion signup flow (/signups/*) and ensure the ChampionSignup data conversion pipeline is preserved and documented.

Context

Goals

  1. Educate & Convert (Champions): When someone already asking “how can I get more involved?” visits alumnichampions.com, they land on a page that shows them the impact they can make and how the Champions program solves what they’re trying to achieve
  2. Clarify the Generic Landing Page: The existing / landing page needs to clearly articulate the two tiers — joining the Alumni Network, and then becoming an Alumni Champion — so visitors understand what they’re signing up for and what’s inside
  3. Repurpose Existing Content: Adapt the existing /champion-info page (Phase 13.7) as the public-facing /champions page
  4. Clean Architecture: Remove the legacy public signup flow while preserving the data conversion pipeline
  5. Preserve Historical Data: Keep staff management tools and conversion pipeline for marketing push

Sub-Phase Plan

Phase 17.1: Public Champions Landing Page

Goal: Create a publicly accessible page at /champions (the redirect target for alumnichampions.com) that educates visitors about the Alumni Champions program and encourages signup.

Approach: Repurpose /champion-info

The existing /champion-info page (Phase 13.7, Cp::ChampionInfoController) already has excellent content:

Plan: Create a new public version of this content at /champions that:

  1. Is publicly accessible (no auth required)
  2. Adapts the authenticated page’s content for an anonymous audience
  3. Adds signup/login CTAs instead of role-management CTAs
  4. Includes social proof (champion count, top cities — from existing LandingController pattern)
  5. Includes a “How It Works” section mapping to the actual signup flow

Audience & Positioning

The /champions page targets people in the “second tier” of interest — alumni who are already asking:

These aren’t cold prospects. They’ve heard about the program (word of mouth, event, email, social) and are looking for the answer to “what does this actually look like?” The page must show them that the Champions program is the vehicle for the impact they want to make.

Tone: Purpose-driven, impact-focused, warm. Not recruitment. Not “join our numbers.” More: “Here’s how alumni like you are already making a difference — and here’s how you can too.”

Content Sections

  1. Hero — Impact-focused, not program-focused
    • Lead with the outcome, not the label: what Champions actually do and the difference it makes
    • Speak to their motivation: serving, connecting, giving back
    • Primary CTA: Create an account / Get started
  2. The Impact — What Champions actually do
    • Real examples of impact: a coffee meetup that turned into a job lead, a mentoring conversation, an alumni event in their city
    • Adapted from existing /champion-info content but reframed for an external audience who hasn’t seen it before
    • Show that “being a Champion” isn’t a title — it’s showing up intentionally
  3. Four Ways to Serve — Champion roles framed as impact paths
    • Community Builder, Connection Advisor, Digital Ambassador, Giving Advocate
    • Frame as: “Here’s how alumni like you are already contributing” — not “pick your role”
    • Each role shows the impact it creates, not just the description
    • Pull from ChampionRoleService + ALUMNI_CHAMPIONS__ROLES_FRAMEWORK.md
  4. How It Works — Simple 3-step visual
    • Create your account → Complete your profile → Find your community
    • Maps to: /signup → profile wizard → communities
    • Low-friction messaging: “It takes 2 minutes to get started”
  5. Social Proof — Champion count + top cities (reuse LandingController pattern)
    • Frame as: “X alumni in Y cities are already doing this”
  6. Both Served and Serving — What being in the network looks like
    • Brief mention that Champions don’t just give — they get: connections, community, daily ideas, recognition
    • This addresses the implicit question: “Is it worth my time?”
  7. CTA — Primary: /signup. Secondary: /login

  8. FAQ (lightweight, optional)
    • “Is this only for recent graduates?” → No
    • “Do I have to be active?” → Show up however works for you
    • “What does it cost?” → Free, always
    • “What if I’m not sure which role fits me?” → You’ll discover that during onboarding

Technical Notes

Deliverables

What Was Implemented

Controller: app/controllers/cp/champions_landing_controller.rb

View: app/views/cp/champions_landing/show.html.erb

Route: GET /championscp/champions_landing#show (as: :cp_champions_landing)

Tests: test/controllers/cp/champions_landing_controller_test.rb

Interview Decisions Recorded

  1. Controller pattern: ApplicationController (PoliciesController pattern), layout "champions"
  2. Route: /champions on belmontalum.com domain, directly accessible
  3. Signed-in redirect:/champion-info (authenticated version of same content)
  4. Role cards: Informational only, NO links (anonymous user can’t access role pages)
  5. Social proof: True Champions (verified + primary_role present) count + city count
  6. OG meta: Title “Alumni Champions Belmont University”, Description “Discover how Belmont alumni are making an impact…”
  7. Footer: Champions layout footer automatically included (legal links, social media)

Phase 17.2: Generic Landing Page Refresh

Goal: Update the existing landing page at / (Cp::LandingController#show) to clearly articulate the two-tier value proposition: joining the Alumni Network, and then becoming an Alumni Champion.

Current State

The existing landing page (Phase 5.1a) has:

It’s warm and inviting, but it doesn’t explain what the app actually is, what you’ll find inside, or why it’s worth creating an account. It also doesn’t distinguish between the two tiers of engagement.

What Needs to Change

The refreshed landing page should clearly communicate:

  1. What this is — An alumni network for Belmont Bruins
    • What you’ll find inside: directory, communities, events, connections, messaging
    • Why it’s worth signing up (what’s behind the door)
  2. Tier 1: Join the Network — For every Belmont alum
    • Reconnect with classmates, find Bruins in your city, stay in the loop
    • Low bar, high value: “Your people are already here”
  3. Tier 2: Become a Champion — For alumni who want to do more
    • Brief tease of what Champions do (link to /champions for full story)
    • “Already asking how you can serve? Learn about Alumni Champions.”
    • This is the bridge to the /champions page
  4. Both served and serving — What life in the network looks like
    • You get connected. You get community. You get ideas.
    • And when you’re ready, you help others find the same.

Technical Notes

Deliverables

What Was Implemented

View: app/views/cp/landing/show.html.erb

Tests: test/controllers/cp/landing_controller_test.rb

Controller: No changes needed — same stats queries.


Phase 17.3: Legacy Signup Flow Retirement

Goal: Remove the old /signups/* public champion signup flow and clean up associated code, while preserving the data conversion pipeline.

What Gets Removed

Routes:

Controllers:

Views:

Mailer:

Helper:

Initializer:

What Gets PRESERVED

Critical — Data Conversion Pipeline:

Staff Management (Phase 17.3 decision):

Model & Services (still needed):

Redirect Strategy

Deliverables

What Was Implemented

Removed:

Preserved:

Routes:

Tests: 2 new redirect tests, full suite 4219 runs, 0 failures


Phase 17.4: Staff Management & Data Catalog

Goal: Keep the internal ChampionSignup staff management interface, document the data pipeline, and catalog how legacy data is used.

Context

Staff management at /champion_signups on alumnilookup.com provides:

This data will be actively used when marketing the new Alumni Network — staff will reference legacy signups to identify prospects and the conversion pipeline will use it to pre-fill new accounts.

Decision: Keep Read-Only + Conversion Pipeline

No new ChampionSignup records will be created after removing the legacy public flow. Keep the staff interface for:

Data Usage Catalog

Document how ChampionSignup data flows through the system:

Flow Source Destination Mechanism
Profile Pre-fill ChampionSignup (by email match) Cp::Champion profile ConfirmationsController#apply_legacy_signup_data calls signup.to_champion_attributes during email confirmation
Staff Reference ChampionSignup records Staff dashboard at /champion_signups ChampionSignupsController (index, show, export)
CRM Export ChampionSignup data Engagement stats CSV EngagementStatsController includes champion_signup_status, champion_signup_role, champion_signup_date
Engagement Metrics ChampionSignup.completed.count Overview dashboard EngagementStats::OverviewService counts unique completed BUIDs
Alumni Association ChampionSignup.buidAlumni.buid Alumni record view Alumni has_many :champion_signups (FK via buid)

Fields Mapped by to_champion_attributes

(Needs verification — read ChampionSignup#to_champion_attributes to confirm exact mapping)

Expected: first_name, last_name, maiden_name, graduation_year, email, phone, street, city, state, zip_code, selected_role/result_role, lifestage_interest, belonging_categories, vocation

Deliverables

What Was Implemented


Dependencies

Risk Assessment

Sequencing Notes

Phases 17.1 and 17.2 can be built in either order or in parallel — they’re independent pages. However, the generic landing page (17.2) will link to /champions (17.1), so 17.1 should be deployed first or simultaneously.

Phase 17.3 (legacy retirement) should come after 17.1 is live, so the /signups/new redirect has a destination.

Phase 17.4 (data catalog) can happen anytime.

DNS / Heroku Notes


What Was Implemented

(To be updated as sub-phases are completed)