Beta Environment
Staging Environment

Champion Portal Roadmap

Track the development progress of the Belmont Alumni portal. This page shows what's working and what's still in development.

Complete
In Progress
Not Started
1

Phase 1: Foundations ✓ Complete

Auth, Profile, Directory, Regional structure, Dashboard — the core identity and discovery features.

View Documentation
1.1 — Database & Models
Complete

Database tables and models for Champion Portal foundations.

Features:

  • Cp::Champion model with Devise integration
  • Cp::ProfileChange model for CRM export tracking
  • Districts and Regions with associations
  • ZIP code lookup (39,305 ZIP codes → 820 districts → 7 regions)
  • Geographic seed data rake task
1.2 — Email Authentication
Complete

Email-based signup, verification, login, and password reset.

Features:

  • Signup with name, email, ZIP code
  • Email confirmation with password setting
  • Login/logout with session management
  • Password reset flow
  • Custom Devise mailer for champion subdomain
  • Mobile-first responsive UI
1.3 — SSO Authentication
Complete

Social login with Google OAuth.

Features:

  • Google OAuth integration via OmniAuth
  • SSO callback controller
  • ZIP code prompt after SSO signup
  • Profile controller for view/edit
  • Multi-model Devise OmniAuth support
1.4 — Profile & Directory
Complete

Profile completion wizard and Champion directory search.

Features:

  • 5-step profile wizard (linear onboarding flow)
  • Section-based profile editor (tabbed for returning users)
  • Profile show page ('How Others See You' preview)
  • Photo upload with ActiveStorage
  • Affinities multi-select picker
  • Privacy indicators on profile
  • Education section from linked alumni record
  • OAuth BUID conflict resolution
1.5 — Dashboard & Admin
Complete

Admin verification tools in Lookup Portal for managing champion BUID linking.

Features:

  • Champions namespace at /champions with portal_admin access
  • Dashboard with quick stats, verification funnel, regional breakdown
  • Verification Queue: approve/reject pending BUID matches
  • AJAX alumni search by name, email, or BUID
  • Manual BUID linking for champions without matches
  • District Management in Settings > Reference Data
  • 41 new tests (18 verifications + 23 districts)
1.6 — Dashboard, Directory & Metrics
Complete

Complete Staging MVP: champion dashboard, directory enhancements, activity tracking.

Features:

  • Activity tracking infrastructure (cp_activity_events table)
  • Cp::ActivityRecorder service for login, profile_edit, directory_search, profile_view
  • 'Alumni in Your District' preview cards
  • Community stats (total alumni, alumni in district)
  • District-only location visibility for dashboard and directory
  • Graduation Year filter (hierarchical: decades + individual years)
  • College filter (from linked alumni records)
  • District filter (autocomplete, reuses existing district_autocomplete_controller.js)
  • Affinity typeahead UI (backend exists)
  • Sort dropdown (Name A-Z, Recently Joined)
1.7 — In-App Messaging
Complete

Champion-to-Champion direct messaging with smart email notifications.

Features:

  • Threaded conversations (1:1 with group-ready schema)
  • Message inbox with unread badges and conversation previews
  • 'Send Message' button on directory profile cards
  • Emoji reactions (❤️ 😂 😮 😢 😠 👍) with optimistic UI
  • Smart notifications (email if unread after 5 min, background job)
  • Mute and archive thread controls
  • Activity tracking (message_thread_started, message_sent)
  • Only verified Champions can send/receive
1.8 — Admin Dashboard & Engagement Scoring
Complete

Champions admin dashboard with engagement scoring for staff visibility into Champion activity.

Features:

  • Champions Admin Dashboard (/champions namespace)
  • Searchable/filterable Champions list (name, email, verification, role, district)
  • Pagination (25 per page) with sort options (signup date, last name)
  • Champion detail view with activity timeline and stats
  • Profile completion % calculation (10 core fields) with progress bars
  • Engagement Score Service (reusable activity-based scoring)
  • Engagement scoring: 5pts (login/conversation/invite), 3pts (edit/message), 1pt (view/reaction), 0.5pt (search)
  • Engagement levels display (Highly Engaged/Engaged/Active/New)
  • Impersonation feature ('Log in as Champion' for testing/support)
  • Environment-aware routing (admin portal ↔ champion portal)
  • Color-coded badges (completion %, verification status, engagement level)
  • Comprehensive engagement scoring documentation with extensibility pattern
  • 19 admin dashboard tests + 8 engagement score service tests
1.9 — Pre-Beta Polish
Complete

Settings, Help/FAQ, visual refresh, and language audit before beta launch.

Features:

  • ✅ 1.9.1: Champion Settings page (account, connected accounts, notifications)
  • ✅ 1.9.1: Email address change flow with verification
  • ✅ 1.9.1: Google account connect/disconnect management
  • ✅ 1.9.2: Help & FAQ page with accordion UI and real-time search
  • ✅ 1.9.2: Onboarding tooltips for new Champions (4 initial tooltips)
  • ✅ 1.9.3: Profile visual refresh (simplified cards, college icons, education format)
  • ✅ 1.9.3: Directory card refresh (accent bar, photo focus, degree display)
  • ✅ 1.9.4: Dashboard visual refresh (warmth, personalization, community feel)
  • ✅ 1.9.5: Language Style Guide based on Alumni Champions Verbal Style Guide
  • ✅ 1.9.5: Fixed 'prospective students' → warm alumni language in mailers
  • ✅ 1.9.5: Updated empty states and flash messages for warmth
1.10 — Community News & Announcements
Complete

Admin-managed news/posts system with dashboard integration and regional targeting.

Features:

  • ✅ 1.10.1: Database schema (posts, images, regions, views, likes)
  • ✅ 1.10.2: Staff admin CRUD (Lookup Portal, global posts)
  • ✅ 1.10.3: Champion-facing news views (dashboard cards, news index, detail pages)
  • ⏸️ 1.10.4: CLC regional admin (deferred — CLC model evolving)
  • ⏸️ 1.10.5: Engagement features (likes — deferred to Phase 2+)
  • ⏸️ 1.10.6: Polish (image carousels, featured champions — deferred)
1.11 — Admin Events
Complete

Staff-managed events system with district targeting and Champion Portal integration.

Features:

  • ✅ 1.11.1: Database schema (cp_events + cp_event_districts for district targeting)
  • ✅ 1.11.2: Staff admin CRUD (Lookup Portal, event management with status workflow)
  • ✅ 1.11.3: Champion-facing events views (events index with filters, detail pages)
  • ✅ 1.11.4: District-filtered event display (mirrors News pattern)
  • ✅ 1.11.5: View counting and RSVP click tracking with activity events
  • ✅ 1.11.6: Navigation integration (Events link in header)
  • ⏸️ Dashboard widget (deferred to 1.12 layout update)
  • Note: External RSVP links only (no built-in RSVP in MVP)
1.12 — Community Foundation
Complete

Database schema, models, and basic UI for emergent communities.

Features:

  • ✅ 1.12.1: Database schema (cp_communities, cp_champion_communities, cp_community_suggestions)
  • ✅ 1.12.2: Cp::Community model with 6 community types
  • ✅ 1.12.3: Suggestion model and CommunityMatchingService
  • ✅ 1.12.4: Profile update hooks (auto-suggest on profile changes)
  • ✅ 1.12.5: News/Events community targeting
  • ✅ 1.12.6: Admin Communities UI (Lookup Portal)
  • ✅ 1.12.7: Champion Community UI (My Communities, join/leave, suggestions)
1.13 — Community Discovery & Landing Pages
Complete

Champion-facing community browsing and enhanced landing pages.

Features:

  • ✅ 1.13.1: Community show page with members, news, events
  • ✅ 1.13.2: Communities index (My Communities + Suggestions + Explore All)
  • ✅ 1.13.3: Dashboard 'My Communities' widget (replaced Community Snapshot)
  • ✅ 1.13.4: Navigation updates (Communities | Directory | Messages | Name)
  • ✅ 1.13.5: Testing & polish (1661 tests, 0 failures)
1.14 — Dynamic Community Creation
Complete

Background detection and creation of emergent communities when 3+ champions share an attribute.

Features:

  • ✅ 1.14.1: CommunityDetectionService (threshold checking)
  • ✅ 1.14.2: CommunityCreationJob (background processing)
  • ✅ 1.14.3: CommunityNotification model + migration
  • ✅ 1.14.4: Dashboard notification banner for new communities
  • ✅ 1.14.5: Detection triggers (verification, profile wizard, profile edit)
  • ✅ Testing: 55 new tests, 1716 total suite tests
1.15 — Community Admin Enhancements
Complete

Community images, force creation, membership management, message link previews.

Features:

  • ✅ 1.15.1: Community Image Upload (hero + thumbnail with drag/drop)
  • ✅ 1.15.2: Force Create Communities (admin creation from any attribute)
  • ✅ 1.15.3: Expanded Membership Management (join requests, admin member tools)
  • ✅ 1.15.4: Message Link Previews & Sharing (community cards, invite flow)
1.16 — Notifications System
Complete

In-app notifications with bell icon, email digests, and user preferences.

Features:

  • ✅ 1.16.1: Database & Models (cp_notifications, cp_notification_preferences tables)
  • ✅ 1.16.2: NotificationService with smart aggregation for high-volume types
  • ✅ 1.16.3: Navbar UI (bell icon dropdown, mark read, clear all)
  • ✅ 1.16.4: Settings Integration (per-type preferences in Settings page)
  • ✅ 1.16.5: Email Digests (daily/weekly via NotificationDigestJob)
  • ✅ 1.16.6: NotificationCleanupJob (removes old read notifications)
1C

Phase 1C: Role Selection & Quiz ✓ Complete

Champion Role in Profile Wizard and Quiz Integration — champion identity features.

View Documentation
1C.1 — Service Extraction
Complete

Extract quiz/role logic from signup helper into reusable services.

Features:

  • ChampionRoleService (role definitions, colors, narratives)
  • ChampionQuizService (questions, scoring, results)
  • Update ChampionSignupsHelper to delegate to services
  • Cp::ChampionRolesHelper for portal
  • 42 comprehensive tests (24 role + 18 quiz)
1C.2 — Profile Wizard Integration
Complete

Add Champion Role step to profile wizard with optional quiz.

Features:

  • champion_role step in wizard (step 2 of 6)
  • Role selection with 4 role cards (emoji, title, description)
  • 'Take the Quiz' button for 7-question quiz
  • Full quiz flow with progress indicator
  • Quiz results page with personalized narrative
  • 'Skip for now' option
  • 7 new integration tests
1C.3 — Profile Edit Integration
Complete

Allow champions to change role and retake quiz from profile edit.

Features:

  • Champion Role section in profile edit sidebar
  • Current role display with colored card
  • 'Retake Quiz' and 'Choose different role' options
  • Context-aware quiz navigation (returns to correct page)
  • Simplified name fields with toggle for legal name
  • Clean data architecture (no duplicate name storage)
2

Phase 2: Community Leadership ✓ Complete

CL role assignment, permission system, and staff action items — enabling Champions to lead communities.

View Documentation
2.1 — Model Refactor
Complete

Update ClcAssignment to link to Community instead of Region.

Features:

  • Migration: add community_id to clc_assignments
  • Migration: remove region_id, add unique constraint
  • Model associations and validations updated
  • Test fixtures updated for new structure
2.2 — Admin CL Assignment Interface
Complete

Enable Lookup Portal admins to assign Champions as Community Leaders.

Features:

  • CL assignment list (filterable by community type, search)
  • Contextual assignment from champion detail or community detail
  • Multi-select: assign champion to multiple communities at once
  • Multi-select: assign multiple verified members as CLs for a community
  • Membership enforcement: CLs must be members of the community
  • Remove CL assignments with confirmation
  • CL count indicator on community index
  • CL badge and 'Assign as CL' links in community member list
  • 21 controller tests for full coverage
2.3 — Lookup Portal Permissions
Complete

Granular permission flags for staff access control.

Features:

  • Permission flags: can_portal_admin and can_support_respond
  • Role badges in user list (Staff/Admin + Portal Admin/Support)
  • Permission toggles in user edit page
  • Backward compatible with existing portal_admin role
  • 19 controller tests for permission system
2.4 — Action Items Notifications
Complete

Bell icon with pending action items for staff.

Features:

  • Bell icon in navbar with badge count
  • Permission-filtered action items
  • Support requests, champion verifications, new signups
  • Communities needing leaders, new communities, CRM pending
  • Priority count (support + verifications) vs dot for other items
  • ActionItemsService with 9 tests
  • Engagement score visible in CL assignment page
  • CL assignment notification (email + in-app)
3

Phase 3: Discussion Boards ✓ Complete

Per-community boards and national forum — enabling threaded community discussions.

View Documentation
3.1 — Boards Database & Structure
Complete

Database structure for boards, posts, and comments.

Features:

  • 8 database tables: board_posts, board_comments, board_reactions, post_flags, user_blocks, hidden_contents, moderation_actions
  • 7 models with ActionText, enums, validations, scopes
  • Read-only boards controller with index/show actions
  • National 'Alumni Champions' community (auto-join for verified Champions)
  • Discussions section on community show page
  • Activity events: board_view, post_view
  • 112 new tests (96 model + 16 controller)
3.2 — Posts & Comments UI
Complete

Browse boards, create posts, and comment.

Features:

  • New post form (title 100 char, body 40K char, optional image)
  • Post truncation with 'See more' on listing
  • Threaded comment replies (MAX_DEPTH=2)
  • Edit/delete within 30-minute window + 'Edited' indicator
  • Community Guidelines reminder in composer
  • Discussions in community index featured cards
  • 9 new FAQ entries for Discussions
  • 20 new controller tests for BoardCommentsController
3.3 — Engagement & Reactions
Complete

Emoji reactions and popularity sorting.

Features:

  • Emoji reactions on posts and comments (6 options)
  • Horizontal emoji bar UI (Messages pattern)
  • Popularity score with 14-day decay
  • Hot Discussions section (max 2) on discussion index
  • Popular discussions on dashboard/community views
  • Activity tracking for reactions
3.4 — User Safety Controls
Complete

Champions can protect themselves from unwanted content.

Features:

  • Report/Flag content (posts and comments)
  • Flag reason selector (spam, inappropriate, harassment, off-topic, other)
  • Hide content from my view only
  • Block user (hides all their content, prevents messaging)
  • Blocked user notifications filtered from dropdown and count
3.5 — CL/Staff Moderation
Complete

Community Leader and staff moderation tools.

Features:

  • CLC: Hide/unhide content
  • CLC: Lock/unlock posts (prevent comments)
  • CLC: Pin/unpin posts
  • CLC: Escalate to Engagement Team
  • CLC: Moderation queue with pending flags only
  • Staff: Discussions admin interface (/champions/discussions)
  • Staff: View escalated, all, hidden, deleted content
  • Staff: Resolve escalations
  • Staff: Action items dropdown integration (flagged + escalated counts)
  • Moderation counts synced across Leadership index, community dashboard, queue
3.6 — National Alumni Champions Board
Complete

Global discussion space with auto-join for all verified Champions.

Features:

  • 'Alumni Champions' national community with national: true flag
  • Auto-join all verified Champions on verification
  • Cannot leave national community (permanent membership)
  • Per-community notification muting in Settings → Notifications
  • Hidden from non-verified Champions
  • Main nav link and community integration
  • Popular national posts surfaced on dashboard
  • News/events without community assignment default to National Board
  • Community Leaders can pin posts to national board
3.7 — Notifications
Complete

Discussion-specific notifications and email digests.

Features:

  • Notification triggers: replies, reactions, community posts
  • In-app notifications in dropdown with unread badge
  • Email digest notifications (daily/weekly configurable)
  • Discussion-specific notification types: discussion_reply, discussion_reaction, community_post
  • User preferences for email frequency (immediate, daily, weekly, off)
  • Blocked user notifications filtered from counts/display
  • Email digest templates with activity summary
  • Heroku Scheduler jobs for digest generation
3.8 — Admin Discussion Analytics
Complete

Staff dashboard for monitoring discussion board activity.

Features:

  • Lookup Portal → Insights → Discussion Boards tab
  • Key metrics: posts, comments, active discussers, pending flags
  • Trends: Posts/comments per week with sparkline charts
  • Community breakdown: Top 5 communities by activity
  • Moderation stats: Flags by status (pending/resolved/dismissed)
  • Period selector: This Week/Month/Quarter/All Time
  • EngagementStats::DiscussionBoardsService for metrics calculation
  • Pending flags count links to moderation queue
  • 45+ tests for service and controller
3.9 — Public Landing Pages
Complete

Public preview pages for shareable links and signup conversion.

Features:

  • Public event pages for global and public community events
  • Public discussion post pages for public community posts
  • Public community landing pages with activity metrics
  • Reusable _public_cta_box.html.erb component
  • Return path storage for post-signup/login redirect
  • MetaTagsHelper for rich Open Graph/Twitter Card previews
  • public_display_name method (FirstName L. format)
  • Help page publicly accessible (moved to footer)
3.10 — Index Page Reorganization
Complete

Redesign content index pages with Google News-style layouts.

Features:

  • News Index: Featured + compact card layout
  • Events Index: Upcoming events with Google News layout
  • Events: Past Events page with Load More pagination
  • Discussions Index: Cross-community /discussions route
  • Compact partials: _news_card_compact, _event_card_compact, _discussion_card_compact
  • Event row partial with date badge styling
3.11 — Dashboard Redesign
Complete

Redesign dashboard with Google News-style content sections.

Features:

  • Discussions section: 1 featured + 3 compact cards
  • News section: 1 featured + 3 compact cards
  • Events section: Date badge rows with community pills
  • Communities card: CL indicator (⭐) + Leadership Dashboard button
  • Community show page: Restructured with Google News layouts
  • Community index: Redesigned as 'Community Select' page
  • Layout: Background opacity, footer visibility, consistent max-w-7xl widths
4

Phase 4: Mobile-First Interface Cleanup ✓ Complete

Polish pass for mobile consistency, design alignment, and UX improvements before MVP launch.

View Documentation
4.1 — Mobile Consistency Audit
Complete

Review and fix all views for mobile-first compliance.

Features:

  • Bottom nav overlap fixed globally (pb-20 sm:pb-0)
  • Profile wizard button visibility fixed
  • Touch targets verified (44px minimum)
  • Thumb-friendly navigation verified
  • No horizontal scrolling on content
4.2 — Design Alignment
Complete

Apply DESIGN-GUIDELINES.md patterns consistently.

Features:

  • Consistent button styles across views (w-full sm:w-auto)
  • Uniform card margins standardized
  • Back link partial created and standardized
  • Consistent pill navigation for profile/settings
  • Collapsible directory filters on mobile
4.3 — UX Polish & Image Optimization
Complete

Final polish including image variant sizing.

Features:

  • Event list card redesign with 8:5 aspect ratio
  • Image variant sizing audit (7 files fixed)
  • Dashboard mobile column reordering
  • Hero section heights reduced
  • Long text truncation fixed
  • scroll_to_selected_controller.js for auto-scroll
5

Phase 5: Pre-MVP Updates ✓ Complete

Final features for MVP launch — user experience polish, non-alumni support, friending, photo albums.

View Documentation
5.1 — User State Experience Alignment
Complete

Polish user experience for different verification states and anonymous visitors.

Features:

  • Anonymous landing page at belmontalum.com
  • Champion/city count social proof
  • Navigation access controls (browse vs act strategy)
  • Community suggestions protected for verified only
  • Community show page eligibility messaging overhaul
5.2 — Non-Alumni & Almost Alumni Support
Complete

Almost Alumni and Faculty/Staff can become Champions with appropriate fields and verification workflows.

Features:

  • ✅ Membership type enum (alumni, almost_alumni, faculty_staff)
  • ✅ Almost Alumni fields (anticipated_program, anticipated_college_code, anticipated_graduation_date)
  • ✅ Faculty/Staff fields (work_email, profession, affiliated_college_code, affiliated_program)
  • ✅ Signup wizard education step with membership-type-specific fields
  • ✅ Verification queue support for Almost Alumni and Faculty/Staff
  • ✅ Directory filters by membership type (Alumni default, filters for others)
  • ✅ Profile display: badges, anticipated education for Almost Alumni
  • ✅ Profile display: profession/affiliation for Faculty/Staff
  • ✅ Directory cards show anticipated education for Almost Alumni
5.3 — Contacts System
Complete

Save Champions as contacts for quick access and prioritized content.

Features:

  • ✅ Add/remove contacts from profile, directory, messages
  • ✅ Contact button with icon states (filled/outline user icon)
  • ✅ Mutual contact indicator (amber highlight when both add each other)
  • ✅ Contacts page (/contacts) with search and grid layout
  • ✅ Email + in-app notification when added as contact
  • ✅ Privacy enforcement: contact visibility respects email_privacy settings
  • ✅ Counter cache for unread messages/notifications (badge performance)
  • ✅ Login drift correction for unread counters
  • ✅ Message privacy precomputation in controller (query optimization)
5.4 — Alumni Like Me (Recommendations)
Complete

Suggest similar Champions based on shared attributes.

Features:

  • ✅ AlumniLikeMeService with multi-factor scoring algorithm
  • ✅ Scoring: College (+20), Major (+25), Grad Year (+15), Industry (+15), Affinities (+10)
  • ✅ 'Champions Like You' section on Directory (no filters, first page)
  • ✅ Match reason badges on recommendation cards
  • ✅ Dashboard 'Champions You Might Know' carousel (6 cards, touch scroll)
  • ✅ Profile completion prompt when <50% complete
  • ✅ Activity tracking: recommendation_viewed event
5.5 — Photo Albums
Complete

Champions and events can have photo galleries.

Features:

  • ✅ Cp::PhotoAlbum & Cp::Photo models with Active Storage
  • ✅ Champion admin: album CRUD, drag-drop uploads, photo management
  • ✅ Champion Portal: /photo-albums index and detail pages
  • ✅ Lightbox component with keyboard/swipe navigation
  • ✅ Dashboard featured photos carousel
  • ✅ Event page photo gallery (grouped by album)
  • ✅ Activity tracking: photo_album_viewed event
  • ✅ 33 controller tests passing
6

Phase 6: Reporting & Insights

Analytics dashboards for Community Leaders and staff — proving program ROI.

View Documentation
6.1 — Activity Metrics
Planned

Track and display key activity metrics.

Features:

  • ✅ Total/active Champions counts (MetricsService)
  • ✅ Daily activity trends chart
  • ✅ Searches, messages, profile views, logins
  • ✅ Top connectors table
  • ✅ Recent activity feed
  • ✅ CSV export for detailed metrics
  • Time period filters (quick select + custom range)
6.2 — Community Health Dashboard
Planned

Monitor engagement health per community.

Features:

  • ✅ District breakdown table (MetricsService)
  • Formal health scores (composite metric)
  • Heat map visualization
  • Inactive community alerts
  • CL assignment recommendations
6.3 — Reports & Exports
Planned

Generate and export reports for presentations.

Features:

  • ✅ CSV export (champions, communities, boards)
  • Report templates with branding
  • PDF export for presentations
  • Scheduled email reports
7

Phase 7: Career Center ✓ Complete

Self-serve career hub with downloadable resources, curated links, career events, and OCPD partnership.

View Documentation
7.1 — Data Model & Career Center Page
Complete

Public Career Center page with resources, quick links, career events, and OCPD section.

Features:

  • ✅ Public /careers page (no login required)
  • ✅ Career resource data model (cp_career_resources table)
  • ✅ Resource categories: Getting Started, Career Advice, Networking, Follow-Up
  • ✅ Quick links grid (Handshake, LinkedIn Learning, Indeed, Glassdoor)
  • ✅ Career events section (events with career_event flag)
  • ✅ OCPD partnership section (consultations, resume review, workshops)
  • ✅ Sign-up CTA for unauthenticated visitors
  • ✅ Career Center in top-level navigation (desktop + mobile)
  • ✅ Activity tracking: career_center_view event
7.2 — Resource Downloads & Staff Management
Complete

PDF download functionality and admin CRUD for career resources.

Features:

  • ✅ Download endpoint with counter tracking
  • ✅ Staff admin: create/edit/delete career resources
  • ✅ PDF upload with Active Storage (drag/drop via pdf_dropzone_controller)
  • ✅ Resource search, category filter, status filter
  • ✅ Toggle active/inactive (soft remove)
  • ✅ Activity event: resource_downloaded
7.3 — Career Events & Analytics
Complete

Career event tagging in admin and career center analytics.

Features:

  • ✅ Admin event form: career_event checkbox
  • ✅ Career Center analytics dashboard (views, downloads, trends)
  • ✅ Period filtering (7d/30d/90d/All Time)
  • ✅ Career events scope and display
  • ✅ Activity event: career_center_view
8

Phase 8: Notifications & Digests Consolidation ✓ Complete

Unified notification system with consolidated daily/weekly digests.

View Documentation
8.1 — Settings UI Consolidation
Complete

Unified notification preferences in Settings.

Features:

  • Consolidated settings page with all notification types
  • Frequency selector (Immediate, Daily Digest, Weekly Digest, Off)
  • Per-type toggle organization
  • Clear section headers (Messages, Communities, Discussions)
8.2 — Discussion Notifications
Complete

Notification triggers for discussion board activity.

Features:

  • Reply to your post notification
  • Reply to your comment notification
  • Reaction to your content notification
  • New post in community notification (CL opt-in)
  • In-app notification dropdown integration
8.3 — Digest Scheduler Infrastructure
Complete

Background jobs for digest generation and delivery.

Features:

  • Cp::NotificationDigestJob with daily/weekly modes
  • Heroku Scheduler configuration
  • Monday guard for weekly digests (Heroku daily-only workaround)
  • Admin weekly digest bug fix (was running daily)
8.4 — Immediate Notification Templates
Complete

Dedicated templates for time-sensitive notifications.

Features:

  • Join request approved/denied emails
  • Verification pending/approved emails
  • Support reply notifications
  • Community Leader assignment email
  • Removed from Settings UI (always immediate)
9

Phase 9: Onboarding & Initial User Experience ⚡ In Progress

Streamlined first-run experience with progressive disclosure and guided setup.

View Documentation
9.1 — Enhanced Onboarding Flow
Complete

join_communities wizard step with community suggestions.

Features:

  • Community suggestions based on degrees, location, affinities
  • Suggestion cards with icon, name, member count, reason
  • Join and decline buttons with AJAX updates
  • Step skipped automatically if no suggestions
  • Smart step insertion after profile completion
9.2 — Seeded Engagement Questions
Complete

Staff-seeded discussion questions that rotate across community boards to spark engagement.

Features:

  • Cp::SeededQuestion model with targeting (global, community_type, affinity_category)
  • Cp::SeededQuestionExposure tracking for rotation/cooldown logic
  • SeededQuestionSelector service with weighted selection algorithm
  • SeededQuestionPublisher service with template interpolation
  • 30-day rotation cooldown and max 2 active per community
9.3 — Admin Seeded Question Interface
Complete

Lookup Portal admin interface for managing seeded discussion questions.

Features:

  • Full CRUD for seeded questions at /champions/seeded_questions
  • Filtering by status/target_type and search by title/body
  • Preview panel with template variable interpolation
  • Activate/deactivate actions for question lifecycle
  • Exposure history tracking with community/date details
9.4 — Onboarding Metrics
Complete

Analytics to measure onboarding effectiveness.

Features:

  • ✅ Signup funnel tracking (email submitted → verified → password created)
  • ✅ Wizard completion metrics (started, step viewed/completed/skipped)
  • ✅ Seeded question metrics (community suggestions accepted/declined)
  • ✅ Admin dashboards at /champions/insights/onboarding and /seeded_questions
  • ✅ Period filtering (7d, 30d, 90d, all time)
9.5 — Community Welcome Content
Complete

Auto-generated welcome content for community boards.

Features:

  • ✅ WelcomeContentGenerator service with template selection by community type
  • ✅ 15 welcome pack templates in config/welcome_packs.yml
  • ✅ Markdown-to-HTML conversion using Redcarpet gem
  • ✅ Dismissible welcome panel UI with Stimulus controller
  • ✅ Member tracking (view count, dismissed_at) for auto-dismissal
  • ✅ 7 rake tasks for content management (generate, preview, status, clear, reset)
  • ✅ Comprehensive test coverage (26 tests)
9.6 — Onboarding Email Series
Planned

Multi-email drip campaign for new Champions.

Features:

  • Welcome email (Day 0, immediate)
  • Profile nudge (Day 2, skip if complete)
  • Directory introduction (Day 5, skip if searched)
  • Community engagement (Day 10, skip if posted)
  • Event participation (Day 15, skip if registered)
  • 30-day check-in (Day 30, always send)
  • Skip logic for conditional delivery
  • Admin progress visibility in Lookup Portal
9.7 — Trust-First Community Access
Complete

Allow community discovery pre-verification. Verification unlocks contribution, not belonging.

Features:

  • Wizard community step shown to unverified champions
  • District/industry/affinity suggestions without verification
  • College/major suggestions with BUID linkage or invitation
  • Community pages viewable pre-verification
  • Directory and messaging require verification
  • Content read-only until verified (news, events, discussions, photos)
  • Verification teaser messaging for gated contribution features
10

Phase 10: Connections ✓ Complete

Relationship-first communication: connection requests, structured outreach, and rate-limited messaging.

View Documentation
10.1 — Data Model & Connection Settings
Complete

Core tables, champion connection preferences, settings UI.

Features:

  • cp_connection_requests table (requestor, requestee, type, message, status)
  • cp_connections table (canonical pair, linked thread, connected_at)
  • Connection preferences on champion (types, weekly cap, pause, almost-alumni toggle)
  • Connection Settings UI in Champion Settings page
10.2 — Connection Request Flow
Complete

Send, receive, accept, ignore, and cancel connection requests.

Features:

  • Connect button on profiles with request modal
  • Connection type selector + freeform message
  • Rate limiting: 10/day requestor, configurable weekly requestee cap
  • Requests tab with incoming/sent sub-tabs
  • Accept, Ignore (silent), Cancel actions
  • Notifications for new requests and acceptances
10.3 — Connections & Messaging Transformation
Complete

Transform Messages into Connections with two-tab inbox.

Features:

  • Rename Messages to Connections in navigation
  • Two-tab layout: Requests + Connections
  • Gate messaging behind accepted connections (support exempt)
  • Connection thread header with type badge and connected date
  • Disconnect flow with re-request capability
10.4 — Directory & Profile Integration
Complete

Surface connection availability in Directory and Profiles.

Features:

  • Directory filter: Open to (connection type multi-select)
  • Subtle open-to-connect indicator on directory cards
  • Profile connection section with types and Connect button
  • Quick-access settings link on Connections page
10.5 — Contacts Migration & Cleanup
Complete

Migrate mutual contacts to connections, remove Contacts system.

Features:

  • Rake task: mutual contacts become Connections with threads
  • Remove Add to Contacts button and ChampionContact model
  • Replace My Contacts directory filter with My Connections
  • Update compose modal to use connections endpoint
  • Remove contact_added activity/notification types
  • Update privacy settings labels to connection language
  • Update AlumniLikeMeService to use connected_champion_ids
10.6 — Admin Connection Metrics
Complete

Staff visibility into connection program health.

Features:

  • Connection Analytics page with overview cards, daily trends chart, and period filtering
  • Request status breakdown (accepted/pending/ignored/cancelled) with acceptance rate
  • Connection type breakdown with horizontal bar visualization
  • Super-connector leaderboards (Most Connected, Most Active Requestors, Most Welcoming)
  • Per-champion connection stats in admin detail view (connections, requests, acceptance rate, type breakdown)
  • Average response time calculation with smart unit display
  • Sidebar nav link for Connection Stats under Analytics section
11

Phase 11: Champion Role Dashboard Card ✓ Complete

Daily role-aligned idea packs on the dashboard, roles landing page, and admin CRUD for role ideas.

11.1 — Role Idea Content & Service
Complete

Content model, seed data, and pack generation service.

Features:

  • Cp::RoleIdea model with role, target, status, priority, template interpolation
  • Cp::RoleIdeaPack and Cp::RoleIdeaPackItem models for daily pack persistence
  • RoleIdeaPackService with weighted random selection, anti-repeat window, timezone awareness
  • 115 seed ideas across all roles authored from canonical source documents
  • Rake tasks for seeding, stats, and old pack cleanup
11.2 — Dashboard Card UI
Complete

Dashboard card with State A (no role) and State B (role selected) variants.

Features:

  • State A: Discover Your Role quiz CTA for champions without a role
  • State B: Daily idea pack with primary + secondary ideas and CTAs
  • Community Leader variant: mixed pool of role + CL-specific ideas
  • Turbo Stream refresh endpoint for 'Try different ideas' button
  • 6 new activity event types for role card interactions
11.3 — Roles Landing Page & Admin CRUD
Complete

Public roles page and staff management interface.

Features:

  • Roles page showing all 4 Champion roles with source document descriptions
  • Admin CRUD with filtering by status/role/target, search, and pagination
  • Activate/deactivate/archive status management
  • Admin sidebar link with active count badge
12

Phase 12: Source-Alignment Review ✓ Complete

Full audit of Champion Portal user-facing text against 20 canonical source documents. Inclusivity framing, copy alignment, and vocabulary standardization.

12.1 — Quick Wins & Email Overhaul
Complete

9 string replacements and 3 email template rewrites for source-aligned copy.

Features:

  • Invitational CTAs replacing transactional language (Sign Up → You're Invited)
  • Warm registration heading (Become a Champion → Welcome Home, Bruin)
  • Community vocabulary replacing system/platform/network language
  • Confirmation, verification, and invite emails rewritten with belonging-first tone
  • Inclusivity framing: external = alumni/Bruins, internal = Champion as celebration
12.2 — Vocabulary & Copy Alignment
Complete

FAQ, empty states, flash messages, landing page, and wizard copy.

Features:

  • FAQ 'portal' → 'community' (8 replacements)
  • 15 empty states rewritten with warmth and CTAs
  • 8 flash messages warmed (sign-in/out, boards, communities)
  • Landing pillars renamed: Belong / Gather / Inspire (identity arc)
  • Gatekeeping messages softened (access-denied experiences)
  • Wizard header and connections step copy refined
  • No platform proper noun — 'your community' / 'your alumni community'
13

Phase 13: Progressive Dashboard & Engagement Tiers ✓ Complete

Journey-aware, tier-conscious dashboard. Replaces static 13+ section layout with progressive disclosure and narrative-driven engagement.

View Documentation
13.1 — Journey Engine & Tier Detection
Complete

Three-tier model (Member/Champion/CL) derived from existing data; 8-stage journey engine cached in DB.

Features:

  • ✅ Cp::Tierable concern with engagement_tier, compute_journey_stage, has_contributions?
  • ✅ journey_stage integer column on cp_champions (migration + index)
  • ✅ Cp::DashboardVisibility service — stage → section visibility map, tier-based sidebar ordering
  • ✅ rake journey_stage:recompute_all backfill task
  • ✅ 49 tests (25 Tierable + 24 DashboardVisibility)
13.2 — Progressive Dashboard Layout
Complete

New Cp::HomeController + /home route with stage-aware views and 3-tier visual card hierarchy.

Features:

  • ✅ Cp::HomeController with selective data loading per stage
  • ✅ GET /home route + feature-flagged root switching (progressive_dashboard flag)
  • ✅ 17 view files: show.html.erb, _hero.html.erb, 3 card tier partials, 7 sidebar partials, 5 stage partials
  • ✅ Cp::HomeHelper#thread_other_champion with multi-API fallback
  • ✅ 9 HomeController + 3 helper/view tests
  • ⏸️ Compact mobile hero, 'what's new' sub-line, mobile sidebar fold — deferred to 13.3+
13.3 — Activity Feed Engine
Complete

Unified discussions/news/photos feed with recency + engagement scoring.

Features:

  • ✅ Cp::ActivityFeedService with mixed-type scoring (recency, engagement, unseen, community bonuses)
  • ✅ last_dashboard_visit_at column (migration) for unseen detection
  • ✅ Feed view with featured item + compact list (top 7 items)
  • ✅ FeedItem struct with polymorphic content support (discussions, news, events, photos)
13.4 — Tier 1 — Member Experience
Complete

Stage partials for onboarding, exploring, connecting, and engaged member journeys.

Features:

  • ✅ Onboarding stage: checklist with per-item routing to wizard steps
  • ✅ Exploring stage: community type grid + recommendations
  • ✅ Engaging stage: activity feed + career resources + suggestions
  • ✅ Language updates: alumni-first copy, hope-oriented empty states
  • ✅ Connections UX: restriction framing, wizard reorder
  • ✅ Sidebar profile completion through engaged_member stage
13.5 — Tier 2 — Champion Experience
Complete

Contextual prompts, champion recognition badges, and role ideas in digest emails.

Features:

  • ✅ ContextualPromptGenerator service (role-aware, data-driven prompts)
  • ✅ Role card contextual prompt rendering with amber 'Now' badge
  • ✅ Alumni Champion SVG icon badge (directory, discussions, comments, profile)
  • ✅ Role ideas in daily/weekly digest emails
  • ✅ resolve_contextual_cta_route helper for deep-linking
13.6 — Tier 3 — Community Leader Experience
Complete

New member welcoming for community leaders.

Features:

  • ✅ New Members to Welcome prompt for community leaders
  • ✅ Welcome tracking via activity events (cl_welcome_sent)
  • ✅ Community Leader stage integration
13.7 — Champion Nudge Engine & Role Microsite
Complete

Contextual nudges guiding Tier 1 Members toward Champion opt-in, plus 3-page Champion Role microsite.

Features:

  • ✅ Champion Discovery Page (/champion-info) — educational 'What & Why' page, no inline role management
  • ✅ Champion Role Microsite: /champion-info + /roles + /roles/:role with shared navigation
  • ✅ Shared microsite nav partial with tab indicators and dashboard link
  • ✅ Role detail page with management actions (retake quiz, change role, remove role)
  • ✅ Route consolidation: removed duplicates, added DELETE /roles/remove
  • ✅ All entry points updated (dashboard, profile, wizard, nudge → microsite pages)
  • ✅ ChampionNudgeEngine service with 5 trigger definitions and JSONB tracking
  • ✅ Dashboard nudge card with dual CTAs (quiz + learn more) and dismiss
  • ✅ Post-action inline nudges after news/event submissions and 3+ comments
  • ✅ 7 new activity event types for nudge + role management analytics
  • ✅ Consistent max-w-3xl container with standardized padding across all microsite pages
13.8 — Freshness, Signals & Milestones
Complete

Dashboard freshness signals, milestone celebrations, connections sidebar redesign, and community activity badges.

Features:

  • ✅ What's New summary bar with content counts since last visit
  • ✅ Milestone celebrations system (8 types, auto-detection, gold celebration banner)
  • ✅ Connections sidebar redesign (people-first with photos instead of message threads)
  • ✅ Community activity badge labels (new posts + upcoming events per community)
  • ✅ Role card visibility expanded to exploring+ stages
14

Phase 14: Alumni Content Submissions ✓ Complete

Champions submit news and event ideas through forms; staff review, promote to draft, publish directly, or decline with feedback. Full conversation threads, notifications, and attribution.

14.1 — Data Model & Backend Foundation
Complete

Status enums, submission fields, thread/message models.

Features:

  • submitted/declined status enums on NewsPost and Event models
  • Submission tracking fields (submitted_by_champion_id, decline_reason, timestamps)
  • ContentSubmissionThread model with polymorphic content association
  • ContentSubmissionMessage model with polymorphic sender and read tracking
14.2 — Champion Submission Forms & UX
Complete

News and event submission forms, CTAs, submission history.

Features:

  • News submission form at /news/submit with community pre-selection
  • Event submission form at /events/submit with community dropdown
  • Submit CTAs on news index, events index, and community content sections
  • Submission history at /my-submissions with status badges
  • Thread detail view with conversation history
14.3 — Admin Submissions Queue & Review
Complete

Staff review interface with tab-filtered queue and actions.

Features:

  • Admin queue at /champions/content_submissions with Pending/In Conversation/Promoted/Declined tabs
  • Promote to Draft (redirects to standard edit form)
  • Publish Directly with confirmation
  • Decline with reason prompt
  • Reply on conversation threads
  • Admin sidebar link with pending count badge
14.4 — Notifications & Attribution
Complete

Email notifications, in-app notifications, and 'Submitted by' attribution.

Features:

  • 4 notification types: submission_reply, submission_promoted, submission_published, submission_declined
  • ContentSubmissionMailer with new_submission, champion_reply, and submission_published emails
  • Attribution display on published news cards/detail and event cards/list/detail
15

Phase 15: Design Consistency Pass ✓ Complete

View-only polish pass aligning all cp/ views to the design tokens established by the Phase 14 /home dashboard. No model, route, or controller changes.

View Documentation
15.1 — Card Radius Sweep
Complete

All card/panel containers converted from rounded-xl/2xl to rounded-md.

Features:

  • rounded-md on all card/panel containers across 13 targeted pages
  • Icon containers and chat bubbles preserved (documented exceptions)
  • Consistent border border-gray-200 and shadow-sm across all cards
15.2 — Card Header Treatment
Complete

bg-gray-50 border-b headers added to show-page cards.

Features:

  • Card header pattern (bg-gray-50 border-b border-gray-100 px-5 py-3) applied to targeted show pages
  • Section titles promoted to header bars with justify-between View All links
  • Body content starts in px-5 py-4 wrapper
15.3 — Typography Cleanup
Complete

ALL CAPS section/form labels removed; standardized to Title Case.

Features:

  • uppercase tracking-wider and uppercase tracking-wide removed from all section/form labels in cp/ views
  • Label text updated to Title Case (not just CSS class removal)
  • Month abbreviations in event date badges preserved (documented exception)
15.4 — Gradient Audit
Complete

Cosmetic content-area gradients replaced with flat design tokens.

Features:

  • CTA bars on news/index and events/index use bg-gray-50 flat background
  • Community section panels use bg-white
  • FAQ category card headers use bg-gray-50
  • Full-color promotional gradient blocks and role micro-gradients preserved (documented exceptions)
16

Phase 16: Legal & IT Compliance ✓ Complete

Compliance implementation covering legal policy pages, consent tracking, education privacy controls, true account deletion, CAN-SPAM email compliance, security headers, and age attestation.

View Documentation
16.1 — Legal Policy Pages & Consent Flow
Complete

In-app policy pages (ToS, Privacy, Community Guidelines, Cookies) with versioned consent tracking at registration and re-consent mechanism.

Features:

  • ✅ Policy pages served at /terms, /privacy, /community-guidelines, /cookies
  • ✅ cp_policy_acceptances table for audit trail
  • ✅ Cp::PolicyVersion with CURRENT_TERMS / CURRENT_PRIVACY version constants
  • ✅ Registration consent checkbox (ToS + Privacy Policy)
  • ✅ Consent timestamp and version tracking on champion record
  • ✅ Re-consent flow when policy version changes
  • ✅ Footer links to all policy pages
  • ✅ 37 new tests + champion model consent assertions
16.2 — Education Privacy Controls
Complete

Privacy enum for education records with 3 levels (show all, hide year, hide all). Ripples into directory, search filters, and matching services.

Features:

  • ✅ education_privacy enum on cp_champions (show_all, hide_year, hidden)
  • ✅ 6 views updated to respect education privacy level
  • ✅ Directory search/filter exclusion for hidden education
  • ✅ AlumniLikeMe and CareerConnect services updated
  • ✅ Settings page control for education visibility
  • ✅ Self-view shows full education with privacy indicator
16.3 — Account Deletion & Data Export
Complete

True account deletion replacing privacy-only stub. Discussion posts anonymized to 'Former Member', PII purged. Plus 'Download My Data' JSON export.

Features:

  • ✅ Confirmation page with CONFIRM text verification
  • ✅ Cp::AccountDeletionService — full PII purge in transaction
  • ✅ Discussion posts anonymized to 'Former Member'
  • ✅ Messages, memberships, connections removed
  • ✅ Confirmation email to original address
  • ✅ 'Download My Data' JSON export in Settings
  • ✅ Rate-limited to 1 export per 24 hours
16.4 — CAN-SPAM Email Compliance
Complete

Unsubscribe language in all email footers, full physical address in text emails, List-Unsubscribe headers.

Features:

  • ✅ HTML footer: 'Manage preferences or unsubscribe' link text
  • ✅ Text footer: full physical address (1900 Belmont Blvd)
  • ✅ List-Unsubscribe and List-Unsubscribe-Post headers on non-transactional emails
  • ✅ Transactional emails exempted (Devise confirmations, password resets)
  • ✅ Shared text footer partial for all 27 text email templates
16.5 — Security Headers
Complete

Content Security Policy (report-only), Permissions-Policy, Referrer-Policy headers enabled.

Features:

  • ✅ CSP in report-only mode with Google Fonts, OAuth, Tailwind whitelisted
  • ✅ Permissions-Policy restricting camera, microphone, geolocation, payment, USB
  • ✅ Referrer-Policy: strict-origin-when-cross-origin (production)
  • ✅ HSTS via existing force_ssl = true
  • ✅ 11 integration tests for security headers
16.6 — Age Attestation
Complete

Age confirmation checkbox at registration (18+). Records attestation timestamp.

Features:

  • ✅ Age confirmation checkbox on registration form
  • ✅ age_confirmed_at timestamp on champion record
  • ✅ Validation prevents registration without confirmation
17

Phase 17: Champions Landing & Legacy Cleanup ✓ Complete

Public Champions landing page (alumnichampions.com redirect target), generic landing refresh, legacy signup retirement, and data catalog.

View Documentation
17.1 — Public Champions Landing Page
Complete

Publicly accessible /champions page that educates visitors about the Alumni Champions program.

Features:

  • ✅ Public controller (no auth, ApplicationController pattern)
  • ✅ /champions route as alumnichampions.com redirect target
  • ✅ Adapted content from /champion-info for anonymous audience
  • ✅ Three engagement tiers + four role cards (informational)
  • ✅ Social proof: true Champions count (role selected) + city count
  • ✅ OG meta tags for social sharing
  • ✅ Signed-in redirect to /champion-info
  • ✅ 10 tests, 26 assertions
17.2 — Generic Landing Page Refresh
Complete

Update / landing to articulate two-tier value proposition (join network vs. become Champion).

Features:

  • ✅ 'What You'll Find Inside' — 4 feature cards (Directory, Communities, Events, Conversations)
  • ✅ 'For Alumni Who Want to Do More' — Champions teaser linking to /champions
  • ✅ Kept hero visual treatment + social proof + final CTA
  • ✅ Removed inline footer (layout footer)
  • ✅ 10 tests, 22 assertions
17.3 — Legacy Signup Retirement
Complete

Remove public /signups/* flow, preserve ChampionSignup data conversion pipeline.

Features:

  • ✅ 301 redirects: /signups/new and /signups/:id → /champions
  • ✅ Removed public controller, views, mailer, initializer, rake task
  • ✅ Preserved SVG partials (_seal, _icon) used by staff views
  • ✅ Preserved conversion pipeline, staff management, model
  • ✅ 2 redirect tests, 4219 total runs, 0 failures
17.4 — Staff Management & Data Catalog
Complete

Document ChampionSignup data pipeline, preserve staff management tools.

Features:

  • ✅ Verified to_champion_attributes field mapping (9 fields)
  • ✅ Legacy data notice on staff signups index
  • ✅ CHAMPION_SIGNUP_SYSTEM.md updated with retirement notice
  • ✅ Data usage catalog verified against code
Last updated: April 18, 2026

This roadmap is only visible on staging and development environments.

💡 Feature Backlog

Ideas we're considering for future development. Priority and timing TBD based on Champion feedback and engagement data.

Alumni Business Directory

High

Champions list their businesses for 'hire a Bruin' discovery.

Effort: Medium

Native Mobile App

High

iOS/Android apps with push notifications.

Effort: Very Large

Newsletter Tool

Medium

Staff-curated newsletters with fixed + community content sections.

Effort: Medium

Real-Time Messaging

Medium

WebSocket-based instant messaging with typing indicators.

Effort: Large

Map View

Medium

Visual map of Champions across the country with clustering.

Effort: Medium

Advanced Search

Medium

Combined filters, saved searches, 'Champions like me' recommendations.

Effort: Medium

Visit Mode

Low

Temporarily view another community's content without changing primary.

Effort: Small

Have an idea? Share it with the Engagement Team!