Champion Portal Roadmap
Track the development progress of the Belmont Alumni Champions Portal. This page shows what's working and what's still in development.
Phase 1: Foundations ✓ Complete
Auth, Profile, Directory, Regional structure, Dashboard — the core identity and discovery features.
View DocumentationDatabase 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
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
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
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
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)
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)
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
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
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
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)
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)
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)
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)
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
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)
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)
Phase 1C: Role Selection & Quiz ✓ Complete
Champion Role in Profile Wizard and Quiz Integration — champion identity features.
View DocumentationExtract 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)
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
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)
Phase 2: Community Leadership ✓ Complete
CL role assignment, permission system, and staff action items — enabling Champions to lead communities.
View DocumentationUpdate 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
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
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
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)
Phase 3: Discussion Boards ✓ Complete
Per-community boards and national forum — enabling threaded community discussions.
View DocumentationDatabase 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)
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
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
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
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
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
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
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
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)
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
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
Phase 4: Mobile-First Interface Cleanup ✓ Complete
Polish pass for mobile consistency, design alignment, and UX improvements before MVP launch.
View DocumentationReview 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
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
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
Phase 5: Pre-MVP Updates ⚡ In Progress
Final features for MVP launch — user experience polish, non-alumni support, friending, photo albums.
View DocumentationPolish user experience for different verification states and anonymous visitors.
Features:
- Anonymous landing page at alumnichampions.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
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
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)
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
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
Phase 6: Reporting & Insights
Analytics dashboards for Community Leaders and staff — proving program ROI.
View DocumentationTrack 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)
Monitor engagement health per community.
Features:
- ✅ District breakdown table (MetricsService)
- Formal health scores (composite metric)
- Heat map visualization
- Inactive community alerts
- CL assignment recommendations
Generate and export reports for presentations.
Features:
- ✅ CSV export (champions, communities, boards)
- Report templates with branding
- PDF export for presentations
- Scheduled email reports
Phase 7: Jobs & Internships
Career Resource Hub and Job Board — connecting Champions with career opportunities.
View DocumentationPublic-facing career resources page with OCPD partnership.
Features:
- Public /careers landing page
- OCPD partnership section (consultations, resume review, workshops)
- Quick links grid (Handshake, LinkedIn, Indeed, Glassdoor)
- Career events section (events with career_event flag)
- Job board teaser with login CTA
Champions post job openings for the Bruin network.
Features:
- Job listings grid with search/filter
- Post a Job form (title, company, location, type, description)
- Job detail view with poster context
- Featured/pinned jobs (staff curated)
- Save job, flag job actions
- Application via external link
Shareable job preview pages for social media and email.
Features:
- /careers/jobs/:id/preview public URL
- Limited preview (title, company, location, truncated description)
- Sign-in gate to view full details
- Open Graph / Twitter Card meta tags
- Funnel into Champion signup
Staff tools for job board moderation and analytics.
Features:
- Moderation queue for flagged jobs
- Hide/edit/delete job postings
- Feature job to pin at top
- Career metrics dashboard (views, postings, applications)
Phase 8: Notifications & Digests Consolidation ⚡ In Progress
Unified notification system with consolidated daily/weekly digests.
View DocumentationUnified 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)
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
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)
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)
Multi-email drip campaign for new Champions.
Features:
- Welcome email (Day 0)
- Profile completion reminder (Day 3)
- Community discovery email (Day 7)
- Engagement tips email (Day 14)
- Drip campaign job scheduler
End-to-end testing and visual polish for all digests.
Features:
- Daily digest template refinement
- Weekly digest template refinement
- Edge case handling (empty sections, new users)
- Email preview/testing tools
- Unsubscribe link handling
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
HighChampions list their businesses for 'hire a Bruin' discovery.
Mentorship Center
HighStructured mentorship matching between Champions.
Native Mobile App
HighiOS/Android apps with push notifications.
Newsletter Tool
MediumStaff-curated newsletters with fixed + community content sections.
Real-Time Messaging
MediumWebSocket-based instant messaging with typing indicators.
Map View
MediumVisual map of Champions across the country with clustering.
Advanced Search
MediumCombined filters, saved searches, 'Champions like me' recommendations.
Visit Mode
LowTemporarily view another community's content without changing primary.
Have an idea? Share it with the Engagement Team!