Canonical sources: Portal philosophy, posture, and language live in
/docs/planning/champion-portal/source/README.md.
Use these sources (includingCHRIST_CENTERED__IDENTITY_STATEMENT.md) when writing specs or user-facing copy. Prefer quoting/paraphrasing over inventing new language.
Purpose: Track ideas, nice-to-haves, and intentionally deferred features for the Alumni Network. Not a task list — just a place to capture things so they aren’t lost.
When to Reference: During Sub-Phase Planning Checkpoint (see
CLAUDE.md)Last Updated: March 2026
These are significant features planned for after Beta launch. Prioritization will be based on alumni feedback and engagement data.
| Feature | Description | Priority | Effort | Status |
|---|---|---|---|---|
| Alumni Business Directory | Alumni can list their businesses for other Bruins to discover (“Hire a Bruin”) | High | Medium | Backlog |
| Native Mobile App | iOS/Android apps with push notifications | High | Very Large | Backlog |
| Newsletter Tool | Hard-coded sections + community content sections for staff-curated newsletters | Medium | Medium | Backlog |
| Real-Time Messaging | WebSocket-based instant messaging (currently async) | Medium | Large | Backlog |
| Map View | Visual map of alumni across the country | Medium | Medium | Backlog |
| Advanced Search | More filters, saved searches, search history | Medium | Medium | Backlog |
| TBD | Large | Backlog | ||
| — | — | Superseded | ||
| Staff Reporting & Analytics | Community health dashboard and PDF report exports (Phase 6.2/6.3) — activity metrics & CSV exports already delivered in Phase 6.1; see Phase 6 README | Medium | Medium | Backlog |
Added: January 2026 (Phase restructure)
Description: Alumni with businesses can list them for discovery by other Bruins. Supports the “hire a Bruin” and “support Bruin businesses” use cases.
Key Features:
Data Model:
# cp_businesses table
t.references :champion # Business owner
t.string :name, null: false
t.text :description
t.string :industry
t.string :city
t.string :state
t.string :website
t.string :phone
t.boolean :verified, default: false # Staff can verify
t.timestamps
Priority: High — frequently requested; supports alumni economic network
Added: January 2026 (Phase restructure)
User Spec: “hard-coded + community content sections”
Description: Staff-curated newsletters with both fixed content sections and dynamic community-specific sections.
Key Features:
Priority: Medium — valuable for re-engagement but email platform may handle this
Added: January 2026 (Phase restructure)
Description: Upgrade current async connection-gated messaging to WebSocket-based real-time delivery.
Key Features:
Implementation: ActionCable WebSocket channels
Priority: Medium — current async model works fine for MVP; connections system (Phase 10) already solid
Added: January 2026 (Phase restructure)
Description: Visual map showing alumni locations across the country.
Key Features:
Implementation: Leaflet.js or Google Maps API
Priority: Medium — visually impressive but directory search achieves same goal
Added: January 2026 (Phase restructure)
Description: Enhanced search capabilities beyond current directory filters.
Key Features:
Note: “Champions Like You” recommendations (Phase 5.4) already address the discovery use case. Current directory filters handle most search scenarios.
Priority: Medium — current filters handle most use cases
Superseded by: Phase 10: Connections (February 2026)
Rationale: The Connections system replaces the planned Mentorship Center with a broader, less hierarchical approach. Instead of formal mentor/mentee roles, alumni request connections by type (Say Hi, Career Advice, Networking). This avoids the “loaded meaning” of mentorship while achieving the same goal: helping alumni find people 5 steps ahead or behind them for meaningful conversations.
Added: January 2026 (Phase 2.3/2.4)
Context: As more staff get access to the portal, the current CRM changes workflow (buried in /settings/affinaquest/crm_changes) needs to be more accessible and streamlined.
Current State:
Potential Improvements:
/champions/crm_changes with streamlined UIPriority: Medium — works for now, revisit as portal_admin usage grows
admin.alumnilookup.com)Added: December 4, 2025 (Phase 1 planning)
Idea: Create a separate admin portal at admin.alumnilookup.com that consolidates settings from both Lookup Portal and Alumni Network.
Benefits:
Considerations:
Status: Captured for future consideration. Current plan continues with verification queue in Lookup Portal.
Added: December 4, 2025 (Phase 1 planning)
Idea: Users with permissions to multiple portals should have an easy way to switch between them.
Proposed Solution: Header dropdown showing available portals based on user permissions:
Status: NOT IMPLEMENTED — Should add before general availability
Priority: Medium — Quality of life for staff who work in both portals
Added: December 4, 2025 (Phase 1.1 implementation)
Idea: Admin interface to edit district display names without direct database access.
Context: Districts are imported from CSV with long MSA names (e.g., “Nashville-Davidson–Murfreesboro–Franklin”) but we want short display names (e.g., “Nashville”). The csv_name column preserves the original for import matching, while name is the editable display name.
Scope:
Priority: Medium — seed script auto-generates short names, but staff will want to customize ~50 key metros
Status: Seed script handles most cases. Manual DB edits sufficient for now.
Added: December 4, 2025
Idea: Type-ahead autocomplete for ZIP code entry that shows city/state as user types.
Priority: Low (ZIP entry is one-time during signup)
Added: December 4, 2025
Idea: Client-side image cropping before upload to ensure consistent profile photos.
Libraries to consider: Cropper.js, react-image-crop
Priority: Medium (better UX, but not blocking)
Added: December 4, 2025
Idea: Add service worker and manifest for Progressive Web App capabilities.
Benefits:
Priority: Medium (good for mobile-first, enables future native app transition)
Added: December 17, 2025 (UX polish for Lookup Portal)
Context: Batch Search tool allows staff to search for multiple alumni by name/email. Current implementation works but has several UX gaps.
Enhancements:
Fix result table column alignment. Use fixed-width columns or sticky headers.
When a search returns multiple matches, allow user to select which result to export (radio buttons or clickable cards).
Audit all alumni export formats across the application. Create shared export format applied to batch search.
Toggle to hide rows with 0 matches.
Radio buttons before export: All, Matches only, Non-matches only.
Copy Table as TSV button, individual cell copy, XLSX export option.
Priority: Medium-High (staff-requested feature)
Effort: Low–Medium per item
Implemented: January 2026 (Phase 1.9.1) — Settings page with email change flow, confirmation email, CRM data change logging.
Implemented: December 2025 (Phase 1C) — Single “First Name” field with collapsible section for legal name and maiden name.
Added: December 22, 2025 (Phase 1.6.2)
Idea: When a verified alum is the only person in their district, show an “Invite another Belmont Alum” link/button on the dashboard that launches an invite flow.
Context: A placeholder link exists on the dashboard today but does not trigger any flow.
Priority: Medium — reinforces growth and community-building
Implemented: January 2026 (Phase 1.9.3) — Simplified directory cards, large photos with role badge, education display with college SVG icons, mobile-first layout.
Added: January 2026 (Phase 5.3 fixes). Updated: February 2026 (Phase 9 status).
Purpose: Track features, pages, and settings that need better user education — through tooltips, callouts, welcome emails, or in-app guidance.
Status: All tooltip calls were removed in February 2026 during UX overhaul. The tooltip infrastructure (controller, helper, Stimulus controller, model methods) is preserved and ready for re-integration. When re-adding tooltips, design them around the ideal onboarding flow and current feature set.
Suggested tooltips for re-implementation:
| Feature | Location | Tooltip Content Idea | Priority |
|---|---|---|---|
| Directory Search | Directory | “Search for alumni by name, filter by college, district, or graduation year.” | High |
| Community Discovery | Home / Communities | “Communities connect you with alumni who share your interests, location, or college.” | High |
| Connection Requests | Directory card / Profile | “Send a connection request to start messaging this alum.” | High |
| Career Resources | Careers page | “Access resume guides, interview prep, and alumni mentors.” | Medium |
| Privacy Settings | Settings → Privacy | “Control who can see your location, contact info, and profile.” | Medium |
| Notification Settings | Settings → Notifications | “Choose how you hear about new messages, events, and community activity.” | Medium |
| Connections Preferences | Settings → Connections | “Set limits on who can send you connection requests.” | Medium |
| Profile Completion | Dashboard | “A complete profile helps fellow Bruins find and connect with you.” | Medium |
| Board Discussions | Community Board | “Start conversations, ask questions, and share updates with your community.” | Low |
| Location | Callout Content | Status |
|---|---|---|
| Messages Index | “You’re in control. Privacy Settings let you choose who can message you…” | ✅ Implemented (Phase 5) |
| Directory Index | “Your privacy matters. Privacy Settings let you control who can see your location…” | ✅ Implemented (Phase 5) |
| Connections Page | “Connections you make can reach you via direct messaging…” | ⏳ Planned |
| Profile Edit | “Your profile helps other alumni find and connect with you…” | ⏳ Planned |
| Email Trigger | Content to Include | Status |
|---|---|---|
| Account Verified | Welcome! Here’s how to get started… | ⏳ Backlog — Phase 9.6 spec ready, deferred March 2026 |
| First Login | Quick start guide: Find alumni, Update Profile, Join Communities | ⏳ Backlog — Phase 9.6 spec ready, deferred March 2026 |
| First Connection Made | “Nice! You connected with [Name]. Here’s how messaging works…” | ⏳ Planned |
| Idea | Description | Priority |
|---|---|---|
| Onboarding Checklist | Dashboard widget showing progress | Medium |
| Feature Spotlight | Modal popup for new features after major releases | Low |
| Guided Tour | Step-by-step tour on first login (Shepherd.js) | Low |
| Contextual Help | ”?” icons next to complex settings | Medium |
| Resource | Description | Status |
|---|---|---|
| Help & FAQ | Searchable FAQ page | ✅ Implemented (Phase 1.9) |
| Privacy Guide | Detailed explanation of privacy settings | ⏳ Planned |
| Getting Started Guide | Walkthrough for new alumni | ⏳ Planned |
| Video Tutorials | Short videos showing key features | Future |
Added: February 18, 2026 (Hotfix for duplicate daily digest emails)
Context: The daily/weekly digest job used deliver_later, causing dedup race conditions. Fixed in v1.0.45 by switching to deliver_now. This is fine up to ~500 recipients.
Current State: ✅ Fixed with deliver_now (v1.0.45). Works reliably for current scale.
When to Revisit: When daily digest recipient count exceeds ~300-500.
Long-Term Fix — Synchronous Dedup + Async Delivery:
Write the EmailLog dedup record synchronously (with ‘queued’ status) before deliver_later:
log = Cp::EmailLog.log_email(champion: champion, email: champion.email,
type: 'daily_digest', subject: 'Your Belmont Champions Update', status: 'queued')
Cp::NotificationMailer.daily_digest(champion, notifications, ...).deliver_later
Implementation Steps:
'queued' to Cp::EmailLog::EMAIL_TYPES status validationsqueued recordsEmailLoggingInterceptor to find+update existing queued logfailed callback for Sidekiq delivery failuresqueued records (> 1 hour old → mark failed)Priority: Low (current fix handles up to ~500 recipients reliably)
Added: December 4, 2025
Idea: Tool for staff to merge duplicate alumni accounts if someone signs up multiple times before verification.
Priority: Low (can handle manually initially)
Added: December 4, 2025
Idea: Build Alumni Network features with RESTful API endpoints to support future native mobile app.
Status: Keep in mind during implementation. Controller actions should be API-friendly.
Added: December 4, 2025
Status: ✅ Partially addressed in Phase 1.9.4 — dashboard shows region fallback when alum is first in their district with “You’re the first here!” celebration and invite CTA.
Remaining: Directory filtering could still benefit from region expansion for small districts.
Items intentionally deferred from specific phases. Updated February 2026.
| Item | Original Phase | Reason Deferred | Status |
|---|---|---|---|
| Apple Sign In | Phase 1.3 | Focus on Google first | Backlog |
| Facebook OAuth | Phase 1.3 | Requires FB Developer App | Backlog |
| SSO account linking | Phase 1.3 | Complexity (edge case handling) | Backlog |
| — | ✅ Phase 1.9.1 |
| Item | Original Phase | Reason Deferred | Status |
|---|---|---|---|
| Sync imported affinities to profile | Phase 1.4 | Requires BUID verification first | Backlog |
| Affinity export mechanism (cp_affinities → crm_data_changes) | Phase 1.4 | Awaiting Affinaquest export format | Backlog |
| Track affinity adds/removes for Advancement Services | Phase 1.4 | Awaiting Affinaquest export format | Backlog |
| Item | Original Phase | Reason Deferred | Status |
|---|---|---|---|
| @Mentions in discussions | Phase 3 | Complexity (name resolution, notifications) | Backlog |
| Discussion board search | Phase 3 | Full-text search across posts/comments | Backlog |
| Discussion bookmarks | Phase 3 | Save posts for later reading | Backlog |
| Mute discussion threads | Phase 3 | Stop notifications for specific threads | Backlog |
| Additional sort options (Top, Controversial) | Phase 3 | Beyond MVP needs | Backlog |
| Multiple images per post | Phase 3 | Currently single image | Backlog |
| User temp bans | Phase 3 | 24hr/7day/permanent bans by CL | If needed |
| Advanced discussion analytics | Phase 3 | Exportable reports beyond basic metrics | Backlog |
| Item | Original Phase | Reason Deferred | Status |
|---|---|---|---|
| Profile wizard header alignment | Phase 4 | Low priority — vertical rhythm on step 3 | Backlog |
| Message reactions sizing | Phase 4 | Minor polish; already functional | Backlog |
| Item | Original Phase | Reason Deferred | Status |
|---|---|---|---|
| Almost Alumni BUID verification | Phase 5.2 | Students have BUID but no degree records | Discussion |
| Degree import hook (Almost Alumni → Alumni upgrade) | Phase 5.2 | Automatic upgrade when degree recorded | Pre-MVP |
| Almost Alumni upgrade email notification | Phase 5.2 | Notify when upgraded from Student to Alumni | Pre-MVP |
| Admin “Recheck Education” action | Phase 5.2 | Staff action to manually trigger upgrade | Pre-MVP |
| Item | Original Phase | Reason Deferred | Status |
|---|---|---|---|
| Conversational connect scripts | Phase 10 | Pre-written message templates | Backlog |
| Connection notes tracker | Phase 10 | Private notes on connections | Backlog |
| Connection expiration / dormancy | Phase 10 | Auto-flag inactive connections | Backlog |
| Proactive match suggestions | Phase 10 | System-suggested connections | Backlog |
| Delayed / queued sends | Phase 10 | Schedule messages for later | Backlog |
| Connection-based recommendation changes | Phase 10 | Adjust algorithm based on connection graph | Backlog |
| Group connections | Phase 10 | Connect with multiple alumni at once | Backlog |
| Item | Original Phase | Reason Deferred | Status |
|---|---|---|---|
| Activity-gap personalization | Phase 11 | Prioritize ideas based on activity gaps | Backlog |
| Success metrics dashboard (role ideas) | Phase 11 | Admin dashboard with role adoption metrics | Backlog |
| Multi-role support | Phase 11 | Allow multiple Champion roles; currently single-role | Backlog |
| Item | Original Phase | Reason Deferred | Status |
|---|---|---|---|
| Generosity-as-formation language (F-03) | Phase 12 | Add giving framing to contribution touchpoints | Backlog |
| Source guardrail phrases (F-04) | Phase 12 | Incorporate prescribed vocabulary more broadly | Backlog |
| i18n infrastructure (F-06) | Phase 12 | Extract user-facing strings to i18n YAML | Backlog |
| Roles woven into experience (F-01) | Phase 12 | Weave roles into dashboard, empty states, notifications | Backlog |
| Item | Original Phase | Reason Deferred | Status |
|---|---|---|---|
| Photo album submissions | Phase 14 | News/events done first; albums deferred | Backlog |
| Rich text submission editor | Phase 14 | Plain text + image for MVP | Backlog |
| Champion self-edit after submission | Phase 14 | Must ask staff via thread currently | Backlog |
| Item | Original Phase | Reason Deferred | Status |
|---|---|---|---|
| CSP enforcement mode | Phase 16.5 | Deployed in report-only mode first; switch to enforcement after log monitoring confirms no violations | Backlog |
| GDPR rights management | Phase 16 | No EU users in beta audience; deletion/export infrastructure is in place | Backlog (If EU expansion) |
| Cookie consent banner | Phase 16 | No analytics/tracking cookies; not required unless third-party tracking added | Backlog (If tracking added) |
| Item | Original Phase | Reason Deferred | Status |
|---|---|---|---|
| Compact mobile hero (condensed height for returning users) | Phase 13.2 | Low priority polish | Backlog |
| ✅ Delivered in Phase 13.8 (What’s New summary bar below hero) | ✅ Complete | ||
| Mobile sidebar fold (2 items above fold, rest collapsed) | Phase 13.2 | UX polish; desktop parity first | Backlog |
| Card standardization (unified card component across tiers) | Phase 13.2 | Refactor; no new functionality | Backlog |
| Icon color variation per section type | Phase 13.2 | Visual polish | Backlog |
| ✅ Delivered in Phase 13.3 (ActivityFeedService with scoring engine) | ✅ Complete | ||
| ✅ Delivered in Phase 13.7 (Champion Nudge Engine + Role Microsite) | ✅ Complete | ||
| Personalization (activity-gap based content ordering) | Phase 13.5 | Requires activity history | Backlog |
| Stage transition animations & coach marks | Phase 13.6 | Polish layer | Backlog |
Champion Dashboard Layout (separate _stages/champion.html.erb) |
Phase 13.5.1 | Existing champion/active_champion stage partials sufficient | Backlog |
| “Your Impact” sidebar widget (connection/community/post counts) | Phase 13.5.2 | Nice-to-have; can add in future iteration | Backlog |
| Dismissable contextual prompts (seen_tooltips JSONB pattern) | Phase 13.5.3 | Not needed for initial launch | Backlog |
coaching_in_digest notification preference toggle |
Phase 13.5.3b | Always shows for Tier 2+; add opt-out later if requested | Backlog |
| Champion scoring boost in directory/recommendations | Phase 13.5.4 | Requires tuning; defer to avoid unintended ranking effects | Backlog |
| ✅ Delivered in Phase 13.7 (dashboard nudge card on engaged_member stage) | ✅ Complete | ||
| Bulk approve/decline | Phase 14 | One at a time currently | Backlog |
| Item | Original Phase | Reason Deferred | Status |
|---|---|---|---|
| Video career resources | Phase 7 | PDF-first; add video if demand emerges | Backlog |
| OCPD content CMS | Phase 7 | Hardcoded section sufficient; content changes rarely | Backlog |
| Resource ratings/feedback | Phase 7 | Gauge demand first | Backlog |
| In-app PDF viewer | Phase 7 | Browser handles PDF viewing | Backlog |
| Item | Original Phase | Reason Deferred | Status |
|---|---|---|---|
| — | ✅ Implemented (Phase 8.6) — VAPID web push for staff (Lookup Portal) and Champions | ||
| Onboarding email drip series | Phase 9.6 | Portal needs more users before optimizing activation flow | Backlog (High) |
| SMS/phone platform (Twilio) | Phase 1.9 | Cost/complexity for beta | Backlog |
| Item | Original Phase | Reason Deferred | Status |
|---|---|---|---|
| Seeded question daily scheduler job | Phase 9.2 | Auto-publish on schedule | Backlog |
| Seeded question A/B testing | Phase 9.2/9.3 | Test variants for engagement | Backlog |
| Seeded question response analytics | Phase 9.3 | Engagement metrics per question | Backlog |
Rationale for deferral: Build up the user base first — analytics are more valuable once there is meaningful activity to measure. Phase 9.4 covers onboarding metrics. Full spec in phases/phase-6/README.md.
| Item | Original Phase | Description | Priority |
|---|---|---|---|
| Activity Metrics Dashboard (6.1) | Phase 6 | Staff dashboard: total Champions, active users, growth trends, event/story submission counts, time period filters | Medium |
| Region Health Dashboard (6.2) | Phase 6 | Per-region health scores (active %, events, posts, CLC assigned), color-coded table with drill-down | Medium |
| Reports & Exports (6.3) | Phase 6 | Monthly summary, region detail, CLC performance report templates; PDF/CSV export; scheduled CRM export | Medium |
cp_profile_changes TableAdded: December 9, 2025
Context: The cp_profile_changes table was created in Phase 1.1 as a changelog for CRM exports. It has been superseded by the unified crm_data_changes table.
Current Status:
crm_data_changes insteadCp::ProfileChange model exists but unusedMigration Plan:
crm_data_changes table (Affinaquest Phase 1)crm_data_changescp_profile_changes tableCp::ProfileChange modelTarget: Next cleanup sprint
Added: January 14, 2026
Idea: Built-in RSVP system for Alumni Network events, rather than relying on external RSVP links.
Features:
Why Deferred: Current system uses external RSVP links to simplify MVP. Built-in RSVP adds complexity around capacity management, notifications, and cancellations.
Priority: Medium — valuable for engagement tracking but external links work for now
Implemented: Phase 8 (Notifications & Digests) — Bell icon, unread badge, notification dropdown, per-type preferences, daily/weekly email digests.
Implemented: Phase 8 (Notifications & Digests) — New members, new events, discussion activity notifications with per-type preferences and digest scheduling.
Added: December 8, 2025
Idea: For verified alumni (those with BUID linked), show their CRM-imported affinities from alumni_affinities and allow bulk add to their cp_affinities profile.
Flow:
alumni_affinities for their BUIDcp_affinitiesPriority: Medium — nice engagement boost, but self-selection works fine for MVP
Added: January 2026 (Phase 5.2 implementation)
Context: Current students may exist in the Alumni table with a BUID but have no degree records.
Current Behavior:
help_find_you stepFuture Enhancement Options:
Added: December 23, 2025 (Phase 1.9 planning). Deferred: Cost/complexity for beta.
Future Value (High):
Implementation Notes:
Before starting any sub-phase, the Sub-Phase Planning Checkpoint (see CLAUDE.md) includes a backlog review:
Last updated: March 2026