Person Communication Timeline
Canadian Elite Volleyball Academy — Development Update • March 27, 2026
Person Communication Timeline
## What & Why Every person in the academy (athletes, parents, coaches) needs a unified view of all communications directed at them — emails sent, announcements they were included in, coach messages, admin notes, event notifications, and newsroom posts targeted to their role. Currently this information is fragmented: emails go to inboxes outside the platform, announcements have no per-person record, and profile messages are a separate system. This task adds a Communication tab to every person's profile showing their complete communication history, and ensures that outbound emails/announcements are linked to the recipient people records so nothing gets lost — especially important for athletes who don't check email.
## Done looks like
### Communication Tab on Person Profiles - Every person profile (community-profile page) gets a new "Communication" tab alongside the existing tabs (Overview, Volleyball, Coaching, Messages, etc.) - The tab shows a unified, reverse-chronological timeline of all communications involving that person: - Emails sent to them — pulled from the email_log table (Task #12), showing subject, date, type, and delivery status - Announcements they were included in — based on role matching, with the announcement title, date, and body expandable inline - Profile messages — existing admin notes, coach-parent messages, and feedback already on their profile, now also visible in the unified timeline - Event communications — session summaries, coach feedback, and event-specific messages linked to events they participated in - Newsroom posts targeted to their role — newsletters and announcements sent to their audience group - Each item is expandable to show the full content - Items can be filtered by type (Email, Announcement, Message, Event) and date range - Unread/new items since last profile visit are highlighted
### Communication Card on Dashboards - Athlete Dashboard and Family Dashboard get a "Recent Communications" card showing the last 5 items from their timeline with a "View All" link to their profile Communication tab - Coach Portal gets a similar card showing communications directed to them
### Linking Outbound Communications to People - When bulk emails or announcements are sent, the system creates links in a junction table connecting the communication to each recipient person - This allows querying "show me everything sent to Person X" efficiently - The email_log entries (from Task #12) are linked to person records via primary_email matching
## Out of scope - Two-way reply functionality from within the Communication tab (messages remain one-directional records) - SMS integration - Editing or deleting communications after they're sent - Push notifications to mobile devices
## Tasks 1. Create the communication_recipients table — A junction table linking communications (email_log entries, announcements, newsroom posts) to person IDs, enabling per-person communication history queries.
2. Build the Communication tab component — A reusable component that fetches and displays a unified timeline of all communications for a given person, with type filters, date filters, and expandable content.
3. Add the Communication tab to community-profile — Register the new tab on the person profile page, passing the person ID to the timeline component.
4. Add Recent Communications cards to dashboards — Add a compact "Recent Communications" card to the Athlete Dashboard, Family Dashboard, and Coach Portal showing the last 5 items with a link to the full timeline.
5. Link outbound communications to recipients — Update the announcement send flow and bulk email flow to record recipient person IDs in the communication_recipients table when messages are dispatched.
## Relevant files - - - - - -
Canadian Elite Volleyball Academy
elitevolleyball.training
No comments:
Post a Comment