alumni_lookup

Sub-Phase 1.13: Community Landing Pages

Champion Portal Development Sub-Phase 1.13

Status: ✅ COMPLETE (January 8, 2026) Estimated Effort: 2–3 weeks
Focus: Champion-facing community pages and discovery

Prerequisites: Phase 1.12 (Community Foundation) complete

Related Documents:


Completion Summary

Completed: January 8, 2026

What Was Implemented

1.13.1 Community Show Page:

1.13.2 Communities Index:

1.13.3 Dashboard My Communities Widget:

1.13.4 Navigation Updates:

Tests: All 1661 tests pass (0 failures, 0 errors)

Files Created/Modified

Controllers:

Views:

Navigation:

Tests:


Table of Contents

  1. Overview
  2. Why This Sub-Phase Exists
  3. Design Decisions
  4. Internal Sub-Phases
  5. Routes & Controllers
  6. UI Mockups
  7. Scope
  8. Definition of Success
  9. Tests to Create
  10. Documentation Updates
  11. Questions Resolved

1. Overview

Phase 1.13 brings communities to life with landing pages that Champions can visit, browse, and discover. This is where the “emergent community” model becomes visible to users.

After Phase 1.13, Champions will be able to:


2. Why This Sub-Phase Exists

Making Communities Tangible

Phase 1.12 created communities in the database. Phase 1.13 makes them real to Champions by giving them a place to go.

The “Where Do I Belong?” Flow

Champion logs in
       │
       ▼
┌──────────────────────────────┐
│ Dashboard                    │
│ ┌──────────────────────────┐ │
│ │ 🏘️ My Communities         │ │
│ │ • Nashville District     │ │
│ │ • Music Business         │ │
│ │ • Phi Mu                  │ │
│ │         View All →       │ │
│ └──────────────────────────┘ │
└──────────────────────────────┘
       │
       ▼ (clicks "Nashville District")
┌──────────────────────────────┐
│ Nashville District           │
│ 127 Champions                │
│                              │
│ [Members] [News] [Events]    │
│                              │
│ ┌────┐ ┌────┐ ┌────┐ ┌────┐  │
│ │ 👤 │ │ 👤 │ │ 👤 │ │ 👤 │  │
│ │Jane│ │John│ │Sara│ │Mike│  │
│ └────┘ └────┘ └────┘ └────┘  │
│                              │
│ Latest News                  │
│ • Nashville Mixer Recap      │
│                              │
│ Upcoming Events              │
│ • Jan 15: Alumni Mixer       │
└──────────────────────────────┘

From JOBS-TO-BE-DONE.md:

Job C1: Find My Tribe

“When I move to a new city or want to expand my Belmont network, I want to find other Champions/alumni nearby, so I can build meaningful local connections.”

Job C9: Feel Like I Belong

“When I’m far from Nashville or years past graduation, I want to feel part of something bigger…”

Community landing pages are where Champions find their tribe and feel belonging.


3. Design Decisions (Confirmed Jan 8, 2026)

Decision Choice Rationale
Community index layout Champion’s communities → Suggested → “Explore All” link Not grouped by type; most champions only have 1-2 per type
“Explore All” page Grouped by type for discovery Only the browse-all view groups by type
Member display Grid of profile cards (paginated, verified only) Same privacy rules as Directory
News/Events on landing Only community-scoped content (not global) With “See all News/Events” links
Empty community handling Simplified view focused on invite CTA Primary goal: get them to invite others
Dashboard widget Replace “Community Snapshot” entirely My Communities becomes the primary widget
Navigation order Communities | Directory | Messages | [Name] Logo links to Dashboard; Events/News placement TBD

4. Internal Sub-Phases

Sub-Phase Name Est. Time
1.13.1 Community Show Page 3–4 days
1.13.2 Communities Index Page 2–3 days
1.13.3 Dashboard Widget 1–2 days
1.13.4 Navigation Updates 1 day
1.13.5 Testing & Polish 2–3 days

5. Routes & Controllers

Routes

# Champion Portal (config/routes.rb - champions subdomain)
constraints(SubdomainConstraint.new('champions')) do
  scope module: 'cp' do
    resources :communities, only: [:index, :show] do
      member do
        get :members
      end
    end
  end
end

Controller

# app/controllers/cp/communities_controller.rb
module Cp
  class CommunitiesController < Cp::BaseController
    before_action :authenticate_cp_champion!
    before_action :set_community, only: [:show, :members]
    
    def index
      @my_communities = current_cp_champion.communities.active.includes(:district)
      @explore_communities = Cp::Community.active
                                          .where.not(id: @my_communities.pluck(:id))
                                          .order(:name)
                                          .limit(20) if params[:explore]
    end
    
    def show
      @members = @community.champions
                           .verified
                           .includes(:alumni)
                           .order(created_at: :desc)
                           .page(params[:page])
                           .per(12)
      
      @news = Cp::NewsPost.published
                          .for_community(@community)
                          .recent
                          .limit(3)
      
      @events = Cp::Event.published
                         .for_community(@community)
                         .upcoming
                         .chronological
                         .limit(3)
    end
    
    def members
      @members = @community.champions
                           .verified
                           .includes(:alumni)
                           .order(created_at: :desc)
                           .page(params[:page])
                           .per(24)
      
      respond_to do |format|
        format.html
        format.turbo_stream
      end
    end
    
    private
    
    def set_community
      @community = Cp::Community.active.find_by!(slug: params[:id])
    end
  end
end

6. UI Mockups

Dashboard “My Communities” Widget

┌─────────────────────────────────────────────────────────────┐
│ 🏘️ My Communities                               View All →  │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ 📍 Nashville District                      127 members  │ │
│ │    Your local Bruin community                          │ │
│ └─────────────────────────────────────────────────────────┘ │
│                                                             │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ 🎵 Music Business                           42 members  │ │
│ │    College of Entertainment & Music Business           │ │
│ └─────────────────────────────────────────────────────────┘ │
│                                                             │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ 🏛️ Phi Mu                                   18 members  │ │
│ │    Greek Life                                          │ │
│ └─────────────────────────────────────────────────────────┘ │
│                                                             │
└─────────────────────────────────────────────────────────────┘

Communities Index Page (/communities)

┌─────────────────────────────────────────────────────────────────────────┐
│ My Communities                                                          │
│ Find your people in communities you belong to                           │
├─────────────────────────────────────────────────────────────────────────┤
│                                                                         │
│ [My Communities]  [Explore All]                                         │
│                                                                         │
│ ─────────────────────────────────────────────────────────────────────   │
│                                                                         │
│ 📍 Districts                                                            │
│ ┌───────────────────┐ ┌───────────────────┐ ┌───────────────────┐       │
│ │ Nashville         │ │                   │ │                   │       │
│ │ 127 members       │ │                   │ │                   │       │
│ │ Your local Bruins │ │                   │ │                   │       │
│ └───────────────────┘ └───────────────────┘ └───────────────────┘       │
│                                                                         │
│ 🎓 Colleges                                                             │
│ ┌───────────────────┐ ┌───────────────────┐                             │
│ │ Music Business    │ │ Nursing           │                             │
│ │ 42 members        │ │ 28 members        │                             │
│ │ Entertainment &...│ │ College of Health │                             │
│ └───────────────────┘ └───────────────────┘                             │
│                                                                         │
│ 🏛️ Organizations                                                        │
│ ┌───────────────────┐ ┌───────────────────┐ ┌───────────────────┐       │
│ │ Phi Mu            │ │ SAAC              │ │ Towering Trad.    │       │
│ │ 18 members        │ │ 12 members        │ │ 8 members         │       │
│ │ Greek Life        │ │ Athletics         │ │ Campus Tradition  │       │
│ └───────────────────┘ └───────────────────┘ └───────────────────┘       │
│                                                                         │
│ 💼 Industries                                                           │
│ ┌───────────────────┐ ┌───────────────────┐                             │
│ │ Music Industry    │ │ Healthcare        │                             │
│ │ 35 members        │ │ 22 members        │                             │
│ │ Professional      │ │ Professional      │                             │
│ └───────────────────┘ └───────────────────┘                             │
│                                                                         │
└─────────────────────────────────────────────────────────────────────────┘

Community Landing Page (/communities/nashville)

┌─────────────────────────────────────────────────────────────────────────┐
│ ← Back to Communities                                                   │
├─────────────────────────────────────────────────────────────────────────┤
│                                                                         │
│ ╭───────────────────────────────────────────────────────────────────╮   │
│ │  📍 Nashville District                                            │   │
│ │                                                                   │   │
│ │  127 Champions in your local community                            │   │
│ │                                                                   │   │
│ │  Your fellow Bruins in the Nashville metro area. Connect with     │   │
│ │  neighbors, attend local events, and build lasting friendships.   │   │
│ ╰───────────────────────────────────────────────────────────────────╯   │
│                                                                         │
│ ─────────────────────────────────────────────────────────────────────   │
│                                                                         │
│ 👥 Members                                                  View All →  │
│                                                                         │
│ ┌────────────┐ ┌────────────┐ ┌────────────┐ ┌────────────┐             │
│ │   [Photo]  │ │   [Photo]  │ │   [Photo]  │ │   [Photo]  │             │
│ │  Jane Doe  │ │  John Smith│ │  Sara Lee  │ │  Mike Chen │             │
│ │  '15 Music │ │  '18 Nurs. │ │  '20 Bus.  │ │  '12 Eng.  │             │
│ │  Business  │ │            │ │            │ │            │             │
│ └────────────┘ └────────────┘ └────────────┘ └────────────┘             │
│                                                                         │
│ ─────────────────────────────────────────────────────────────────────   │
│                                                                         │
│ 📰 Latest News                                                          │
│                                                                         │
│ ┌───────────────────────────────────────────────────────────────────┐   │
│ │ Nashville Alumni Mixer Recap                           Jan 5      │   │
│ │ Over 50 Bruins gathered at the annual Nashville mixer...          │   │
│ │                                                   Read More →     │   │
│ └───────────────────────────────────────────────────────────────────┘   │
│                                                                         │
│ ─────────────────────────────────────────────────────────────────────   │
│                                                                         │
│ 📅 Upcoming Events                                                      │
│                                                                         │
│ ┌───────────────────────────────────────────────────────────────────┐   │
│ │ JAN  Spring Networking Social                                     │   │
│ │ 20   Belmont University • 6:00 PM                    [RSVP →]     │   │
│ └───────────────────────────────────────────────────────────────────┘   │
│                                                                         │
│ ┌───────────────────────────────────────────────────────────────────┐   │
│ │ FEB  Nashville Bruin Brunch                                       │   │
│ │ 8    The Pancake Pantry • 10:00 AM                   [RSVP →]     │   │
│ └───────────────────────────────────────────────────────────────────┘   │
│                                                                         │
└─────────────────────────────────────────────────────────────────────────┘

Empty Community State

┌─────────────────────────────────────────────────────────────────────────┐
│ 📍 Boise District                                                       │
│ 2 Champions                                                             │
├─────────────────────────────────────────────────────────────────────────┤
│                                                                         │
│ ┌───────────────────────────────────────────────────────────────────┐   │
│ │                                                                   │   │
│ │  🌱 This community is just getting started!                       │   │
│ │                                                                   │   │
│ │  You're one of the first Bruins here. Help grow your              │   │
│ │  local community by inviting other Belmont alumni.                │   │
│ │                                                                   │   │
│ │  [Invite Alumni to Boise]                                         │   │
│ │                                                                   │   │
│ └───────────────────────────────────────────────────────────────────┘   │
│                                                                         │
│ 👥 Current Members                                                      │
│                                                                         │
│ ┌────────────┐ ┌────────────┐                                           │
│ │   [Photo]  │ │   [Photo]  │                                           │
│ │   You!     │ │  Other     │                                           │
│ │            │ │  Person    │                                           │
│ └────────────┘ └────────────┘                                           │
│                                                                         │
└─────────────────────────────────────────────────────────────────────────┘

7. Scope

In Scope

Feature Description
/communities index List Champion’s communities grouped by type
/communities/:slug show Community landing page with members, news, events
/communities/:slug/members Full paginated member list
Dashboard widget “My Communities” showing top communities
Community cards Reusable card component for listings
Member cards Profile preview cards in member grid
News section Community-targeted news on landing page
Events section Community-targeted events on landing page
Empty states Encouraging messages for sparse communities
Navigation Add “Communities” to main nav

Out of Scope (Deferred)

Feature Reason Target Phase
Dynamic community creation Separate logic phase Phase 1.14
Community discussion boards Phase 3 feature Phase 3
Community admin/moderation Future need Phase 2+
Community invitations Needs invite system Backlog
Community search Nice-to-have Backlog
Community notifications Needs notification system Phase 2+

8. Definition of Success

Functional Acceptance Criteria

Design Criteria

Performance Criteria


9. Tests to Create

Controller Tests

# test/controllers/cp/communities_controller_test.rb
class Cp::CommunitiesControllerTest < ActionDispatch::IntegrationTest
  test "index requires authenticated champion"
  test "index shows champion's communities"
  test "index groups communities by type"
  test "index explore tab shows other active communities"
  test "show displays community landing page"
  test "show displays community members"
  test "show displays community news"
  test "show displays community events"
  test "show returns 404 for inactive community"
  test "members paginates members list"
  test "members responds to turbo_stream"
end

Helper Tests

# test/helpers/cp/communities_helper_test.rb
class Cp::CommunitiesHelperTest < ActionView::TestCase
  test "community_type_icon returns correct icon"
  test "community_type_label returns human-readable label"
  test "community_member_count_text handles singular and plural"
end

View Tests

# test/views/cp/communities_test.rb
class Cp::CommunitiesViewTest < ActionDispatch::IntegrationTest
  test "index renders community cards"
  test "show renders member grid"
  test "show renders news section"
  test "show renders events section"
  test "show renders empty state for sparse community"
end

10. Documentation Updates

After completing Phase 1.13:


11. Questions Resolved

Question Answer Date
Show all communities or just Champion’s? Champion’s by default, “Explore” tab for others Jan 7, 2026
How to display members? Grid of profile cards, paginated Jan 7, 2026
What content on landing page? Members, news, events for that community Jan 7, 2026
Dashboard widget behavior? Show top 3-5 communities Jan 7, 2026
Empty community handling? Encouraging message + invite CTA Jan 7, 2026

Files to Create

New Files

Files to Modify