alumni_lookup

Phase 4: Messaging

Champion Portal Development Phase 4

Estimated Effort: 4–6 weeks
Focus: Direct Messaging, Notifications

Prerequisites: Phase 1–3 complete

Related Documents:


Table of Contents

  1. Overview
  2. Sub-Phases
  3. Questions to Answer Before Starting
  4. Scope
  5. Definition of Success
  6. Tests to Create
  7. Documentation Updates

1. Overview

Phase 4 introduces direct messaging between Champions and a notification system for portal activity. This enables Champions to connect privately without sharing personal contact information.

Architecture Decision: Per DECISIONS.md, Phase 4 starts with email relay messaging, with in-app messaging added if demand warrants.

After Phase 4, Champions can:


2. Sub-Phases

Phase 4 is divided into 3 sub-phases that can be implemented incrementally.

Sub-Phase Name Prompt Est. Time
4.1 Email Relay Messaging “Implement Phase 4.1” 2–3 days
4.2 Notification System “Implement Phase 4.2” 2–3 days
4.3 In-App Messaging (Optional) “Implement Phase 4.3” 3–4 days

Sub-Phase 4.1: Email Relay Messaging

Goal: Champions can contact each other through a portal form; messages delivered via email.

Deliverables:

Acceptance Test:

  1. Champion A views Champion B’s profile
  2. Clicks “Contact” → fills in message form → submits
  3. Champion B receives email with message content
  4. Email includes reply-to for Champion A (if A opted in)
  5. Champion A can see message in “Sent Messages” history

Sub-Phase 4.2: Notification System

Goal: Champions receive notifications for relevant portal activity.

Deliverables:

Notification Types:

Type Trigger Email?
comment_on_post Someone comments on your post Optional
mention @mentioned in post or comment Yes
event_approved Your event was approved Yes
event_rejected Your event was rejected Yes
message_received Someone messaged you Yes
story_featured Your story was featured Yes

Acceptance Test:

  1. Champion creates a post; another Champion comments
  2. Original author sees notification (bell shows count)
  3. Clicks notification → taken to post
  4. Notification marked as read

Sub-Phase 4.3: In-App Messaging (Optional)

Goal: Full in-app messaging system (if demand from Phase 4.1 warrants).

Note: This sub-phase is optional. Only implement if email relay shows high usage and users request in-app messaging.

Deliverables:

Acceptance Test:

  1. Champion A sends message to Champion B
  2. Champion B sees message in Inbox
  3. Champion B replies → Champion A sees reply in thread
  4. Both see unread indicators until messages read

3. Questions to Answer Before Starting

3.1 Already Resolved

Question Decision Source
Messaging architecture Email relay first, in-app later if demand DECISIONS.md §2.4

3.2 Needs Resolution Before Starting (Tier 2)

Question Options Notes
Message retention policy A) Forever B) 2 years C) 1 year D) User-controlled Storage and privacy
Group messaging? A) 1:1 only B) Groups allowed Complexity
Read receipts? A) Always B) Optional C) Never Privacy vs UX
Reply-to consent A) Always include B) Opt-in C) Never Privacy
Notification email frequency A) Immediate B) Batched daily C) User preference Email volume

3.3 Needs Clarification from Stakeholders

Question Who Decides Impact
Acceptable use policy for messaging Legal/Engagement Terms of service
Spam/abuse reporting process Engagement Team Moderation workflow
Email template branding Marketing Email design

4. Scope

4.1 In Scope

Area Deliverables
Email Relay Contact form, email delivery, sent history
Notifications In-app notifications, email notifications, preferences
In-App Messaging (Optional) Inbox, threads, real-time (if warranted)

4.2 Out of Scope

Feature Notes
File attachments in messages Future consideration
Voice/video calling Not planned
Scheduling/calendar integration Separate feature

5. Definition of Success

5.1 Core Acceptance Criteria

Criterion Validation
Champion can send contact message Email delivered to recipient
Sender sees message in history Sent messages page works
Recipient receives email Email arrives with content
Notifications appear Bell icon shows count, dropdown works
Notification preferences work User can adjust settings
Notifications marked read Count decreases, visual indicator changes

5.2 Success Metrics

Metric Target
Messages sent per week (pilot) 10+
Message response rate 50%+
Notification click-through rate 30%+

6. Tests to Create

6.1 Model Tests

Model Test Cases
Cp::MessageRequest Validations, rate limiting scope, associations
Cp::Notification Validations, types enum, read/unread scopes

6.2 Controller Tests

Controller Test Cases
Cp::MessagesController Send message, rate limit, view sent
Cp::NotificationsController List, mark read, mark all read

6.3 Feature/Integration Tests

Feature Test Cases
Contact flow Click contact → fill form → email sent → appears in history
Notification flow Action triggers → notification created → displayed → marked read

6.4 Email Tests

Email Test Cases
Message relay Correct recipient, subject, body, reply-to
Notification emails Event approved, mentioned, etc.

7. Documentation Updates

After completing Phase 4, update:

Document Changes
../README.md Mark Phase 4 complete
../development/DECISIONS.md Record any messaging decisions
Champion User Guide Add messaging and notifications sections
Privacy Policy Update with messaging data retention