Story 6.3: Partner Detail Screen - Wireframe
Story: Story 2.8 (Epic 2) - Partner Management Frontend
Implementation Scope:
- โ
Story 2.7 (Epic 2): Partner Coordination Service Foundation (backend APIs)
- Partner CRUD with meaningful IDs (
companyName) - Contact Management (stores
username) - Topic Voting & Suggestions
- Basic Meeting coordination
- Partner CRUD with meaningful IDs (
- ๐ Story 2.8 (Epic 2): Partner Management Frontend (THIS WIREFRAME)
- Organizer UI for partner detail view with tabbed interface
- Contact management UI
- Read-only topic voting and meeting display
- Notes system for organizer tracking
- ๐ฆ Epic 8 (Deferred to Phase 2): Advanced Partner Portal Features
- Engagement score calculation & analytics dashboard (Story 6.1)
- Interactive topic voting interface (Story 6.4)
- Full meeting coordination with RSVP and materials (Story 6.2)
IMPORTANT (ADR-003 Compliance):
- All API endpoints use
{companyName}(meaningful ID), NOT{partnerId}(UUID) - Contact endpoints use
{username}(meaningful ID), NOT{contactId}or{userId}(UUID) - Example:
GET /api/v1/partners/GoogleZH(NOT/api/v1/partners/{uuid})
Visual Wireframe
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ โ Back to Partner Directory Partner Profile [Edit Partner] โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ โ
โ โโโโโ PARTNER HEADER โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ โ โ
โ โ โโโโโโโโโโ ๐ STRATEGIC PARTNER โ โ
โ โ โ Logo โ TechCorp AG (GoogleZH) Engagement: โโโโโโโโ 92% โ โ
โ โ โ โ โ โ
โ โ โ [150px]โ ๐ข Software & IT Services โ โ
โ โ โ โ ๐ www.techcorp.ch โ โ
โ โ โโโโโโโโโโ ๐ Zurich, Switzerland โ โ
โ โ โ โ
โ โ [๐ง Send Email] [๐
Schedule Meeting] [๐ View Analytics] [๐ Add Note] โ โ
โ โ โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ
โ โโโโโ QUICK STATS โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ โ โ
โ โ Partner Since Events Attended Active Votes Meetings โ โ
โ โ โโโโโโโโโโโโ โโโโโโโโโโโโโโโโโ โโโโโโโโโโโโ โโโโโโโโโ โ โ
โ โ January 2022 24 5 12 โ โ
โ โ (3 years) (last: Spring 25) (topics) (seasonal) โ โ
โ โ โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ
โ โโโโโ TABS โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ โ โ
โ โ [Overview] [Contacts] [Meetings] [Activity] [Notes] [Settings] โ โ
โ โ โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ
โ โโโโโ OVERVIEW TAB โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ โ โ
โ โ โโโ PARTNERSHIP DETAILS โโโโโโโโโโโฌโโ ENGAGEMENT METRICS โโโโโโโโโโโ โ โ
โ โ โ โ โ โ โ
โ โ โ Partnership Tier: ๐ Strategic โ Overall Score: 92% (Excellent)โ โ โ
โ โ โ Tier Start Date: Jan 1, 2024 โ โ ๏ธ Epic 8 Feature โ โ โ
โ โ โ Previous Tier: ๐ Platinum โ Score Breakdown: โ โ โ
โ โ โ โ โข Event Attendance: โโโโโ 85% โ โ โ
โ โ โ Benefits: โ โข Topic Voting: โโโโโ 95% โ โ โ
โ โ โ โ Logo placement on website โ โข Meeting Participation: 100%โ โ โ
โ โ โ โ Newsletter mentions โ โข Content Interaction: โโโโ 75%โ โ โ
โ โ โ โ Priority event access โ โ โ โ
โ โ โ โ Quarterly strategic meetings โ Trend: โ +8% (last quarter) โ โ โ
โ โ โ โ ROI analytics dashboard โ โ โ โ
โ โ โ โ [View Full Analytics โ] โ โ โ
โ โ โ Swiss UID: CHE-123.456.789 โ โ โ โ
โ โ โ Tax Status: โ Verified โ โ ๏ธ Low engagement alert for โ โ โ
โ โ โ โ content interaction โ โ โ
โ โ โ [Change Tier] โ โ โ โ
โ โ โ โ โ โ โ
โ โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ โ
โ โ โ โ
โ โ โโโ RECENT ACTIVITY โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ โ
โ โ โ โ โ โ
โ โ โ ๐ Last Event: Spring 2025 BATbern (March 15, 2025) โ โ โ
โ โ โ โข 15 employees attended (85% of invited) โ โ โ
โ โ โ โข 12 session registrations โ โ โ
โ โ โ โข 8 content downloads post-event โ โ โ
โ โ โ โ โ โ
โ โ โ ๐ณ๏ธ Active Topic Votes: 5 votes cast โ โ โ
โ โ โ โข Cloud Migration Strategies (Priority: High) โ โ โ
โ โ โ โข AI in Business Operations (Priority: High) โ โ โ
โ โ โ โข Cybersecurity Best Practices (Priority: Medium) โ โ โ
โ โ โ โข DevOps & CI/CD Pipelines (Priority: Medium) โ โ โ
โ โ โ โข Blockchain Applications (Priority: Low) โ โ โ
โ โ โ โ โ โ
โ โ โ ๐
Next Meeting: May 20, 2025 (14:00 - 16:00) โ โ โ
โ โ โ โข Type: Spring Strategic Planning โ โ โ
โ โ โ โข Location: BATbern Headquarters โ โ โ
โ โ โ โข Status: Confirmed (RSVP: Maria Schmidt) โ โ โ
โ โ โ โ โ โ
โ โ โ [View All Activity โ] โ โ โ
โ โ โ โ โ โ
โ โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ โ
โ โ โ โ
โ โ โโโ EMPLOYEES โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ โ
โ โ โ โ โ โ
โ โ โ Total Employees in System: 42 โ โ โ
โ โ โ Active Event Participants: 28 (67%) โ โ โ
โ โ โ โ โ โ
โ โ โ Top Attendees: โ โ โ
โ โ โ โข Maria Schmidt (CTO) - 18 events โ โ โ
โ โ โ โข Thomas Weber (Lead Developer) - 15 events โ โ โ
โ โ โ โข Anna Mรผller (Product Manager) - 12 events โ โ โ
โ โ โ โ โ โ
โ โ โ [View All Employees โ] โ โ โ
โ โ โ โ โ โ
โ โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ โ
โ โ โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ
โ โโโโโ CONTACTS TAB โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ โ โ
โ โ โโโ PRIMARY CONTACT โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ โ
โ โ โ โ โ โ
โ โ โ ๐ค Maria Schmidt โ โ โ
โ โ โ Title: Chief Technology Officer (CTO) โ โ โ
โ โ โ ๐ง Email: m.schmidt@techcorp.ch โ โ โ
โ โ โ ๐ฑ Phone: +41 44 123 45 67 โ โ โ
โ โ โ ๐ผ LinkedIn: linkedin.com/in/maria-schmidt โ โ โ
โ โ โ โ โ โ
โ โ โ Preferred Contact Method: Email โ โ โ
โ โ โ Language: German, English โ โ โ
โ โ โ โ โ โ
โ โ โ [Edit Contact] [Send Email] [View Profile] โ โ โ
โ โ โ โ โ โ
โ โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ โ
โ โ โ โ
โ โ โโโ SECONDARY CONTACTS โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ โ
โ โ โ โ โ โ
โ โ โ ๐ค Peter Mรผller - CFO โ โ โ
โ โ โ ๐ง p.mueller@techcorp.ch | ๐ฑ +41 44 123 45 68 โ โ โ
โ โ โ Role: Budget & Sponsorship Decisions โ โ โ
โ โ โ โ โ โ
โ โ โ ๐ค Anna Weber - HR Manager โ โ โ
โ โ โ ๐ง a.weber@techcorp.ch | ๐ฑ +41 44 123 45 69 โ โ โ
โ โ โ Role: Employee Registration & Attendance โ โ โ
โ โ โ โ โ โ
โ โ โ [+ Add Contact] โ โ โ
โ โ โ โ โ โ
โ โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ โ
โ โ โ โ
โ โ โโโ COMMUNICATION PREFERENCES โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ โ
โ โ โ โ โ โ
โ โ โ Email Notifications: โ Enabled โ โ โ
โ โ โ Newsletter: โ Subscribed โ โ โ
โ โ โ Event Announcements: โ Enabled โ โ โ
โ โ โ Meeting Reminders: โ Enabled (1 week + 1 day before) โ โ โ
โ โ โ โ โ โ
โ โ โ Preferred Language: German โ โ โ
โ โ โ Time Zone: Europe/Zurich (CET) โ โ โ
โ โ โ โ โ โ
โ โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ โ
โ โ โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ
โ โโโโโ MEETINGS TAB โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ โ โ
โ โ โโโ UPCOMING MEETINGS โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ โ
โ โ โ โ โ โ
โ โ โ ๐
May 20, 2025 (14:00 - 16:00) โ โ โ
โ โ โ Spring Strategic Planning Meeting โ โ โ
โ โ โ Location: BATbern HQ, Conference Room A โ โ โ
โ โ โ Attendees: Maria Schmidt, Peter Mรผller (Confirmed) โ โ โ
โ โ โ Agenda: Q2 topic voting results, Fall event planning โ โ โ
โ โ โ โ โ โ
โ โ โ [View Agenda] [Edit Meeting] [Send Reminder] โ โ โ
โ โ โ โ โ โ
โ โ โ ๐
November 15, 2025 (14:00 - 16:00) โ โ โ
โ โ โ Fall Strategic Planning Meeting โ โ โ
โ โ โ Status: Scheduled (RSVP Pending) โ โ โ
โ โ โ โ โ โ
โ โ โ [View Details] [Reschedule] โ โ โ
โ โ โ โ โ โ
โ โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ โ
โ โ โ โ
โ โ โโโ MEETING HISTORY โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ โ
โ โ โ โ โ โ
โ โ โ ๐
November 18, 2024 (14:00 - 16:00) - Completed โ โ โ
โ โ โ Fall Strategic Planning Meeting โ โ โ
โ โ โ Attendees: Maria Schmidt, Peter Mรผller, Anna Weber โ โ โ
โ โ โ Minutes: โ Available | Action Items: 3 completed โ โ โ
โ โ โ โ โ โ
โ โ โ [View Minutes] [View Action Items] โ โ โ
โ โ โ โ โ โ
โ โ โ ๐
May 15, 2024 (14:00 - 16:00) - Completed โ โ โ
โ โ โ Spring Strategic Planning Meeting โ โ โ
โ โ โ Attendees: Maria Schmidt, Thomas Klein โ โ โ
โ โ โ Minutes: โ Available | Action Items: 5 completed โ โ โ
โ โ โ โ โ โ
โ โ โ [View Minutes] [View Action Items] โ โ โ
โ โ โ โ โ โ
โ โ โ [Load More Meetings โ] (10 more) โ โ โ
โ โ โ โ โ โ
โ โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ โ
โ โ โ โ
โ โ [+ Schedule New Meeting] โ โ
โ โ โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ
โ โโโโโ ACTIVITY TAB โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ โ โ
โ โ Filters: [All Activity โท] [Date Range โท] [Activity Type โท] โ โ
โ โ โ โ
โ โ โโโ ACTIVITY TIMELINE โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ โ
โ โ โ โ โ โ
โ โ โ ๐ณ๏ธ March 18, 2025 - Topic Voting โ โ โ
โ โ โ Voted on 5 topics for Fall 2025 event โ โ โ
โ โ โ Top Priority: "Cloud Migration Strategies" โ โ โ
โ โ โ โ โ โ
โ โ โ ๐ March 15, 2025 - Event Attendance โ โ โ
โ โ โ Spring 2025 BATbern: 15 employees attended โ โ โ
โ โ โ Sessions: Cloud Computing, DevOps, AI in Business โ โ โ
โ โ โ โ โ โ
โ โ โ ๐ง March 1, 2025 - Email Communication โ โ โ
โ โ โ Organizer: Sent event invitation to Maria Schmidt โ โ โ
โ โ โ Subject: "Spring 2025 BATbern - Registration Open" โ โ โ
โ โ โ Status: โ Opened, โ Clicked โ โ โ
โ โ โ โ โ โ
โ โ โ ๐ February 20, 2025 - Note Added โ โ โ
โ โ โ Organizer: Discussed potential sponsorship increase โ โ โ
โ โ โ Added by: John Organizer โ โ โ
โ โ โ โ โ โ
โ โ โ ๐ฏ January 10, 2025 - Tier Upgraded โ โ โ
โ โ โ Tier changed from ๐ฅ Gold โ โญ Premium โ โ โ
โ โ โ Reason: Increased sponsorship and engagement โ โ โ
โ โ โ โ โ โ
โ โ โ [Load More Activity โ] (25 more) โ โ โ
โ โ โ โ โ โ
โ โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ โ
โ โ โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ
โ โโโโโ NOTES TAB โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ โ โ
โ โ [+ Add New Note] โ โ
โ โ โ โ
โ โ โโโ RECENT NOTES โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ โ
โ โ โ โ โ โ
โ โ โ ๐ February 20, 2025 by John Organizer โ โ โ
โ โ โ "Discussed potential sponsorship tier upgrade with Maria. โ โ โ
โ โ โ Very positive about Premium benefits, especially ROI โ โ โ
โ โ โ analytics. Follow up in Q2 2025." โ โ โ
โ โ โ โ โ โ
โ โ โ [Edit] [Delete] โ โ โ
โ โ โ โ โ โ
โ โ โ ๐ November 20, 2024 by Sarah Coordinator โ โ โ
โ โ โ "Partner very engaged in topic voting. Strong interest in โ โ โ
โ โ โ cloud and AI topics. Great attendance at Fall meeting." โ โ โ
โ โ โ โ โ โ
โ โ โ [Edit] [Delete] โ โ โ
โ โ โ โ โ โ
โ โ โ [Load More Notes โ] (8 more) โ โ โ
โ โ โ โ โ โ
โ โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ โ
โ โ โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ
โ โโโโโ SETTINGS TAB โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ โ โ
โ โ โ ๏ธ This tab is only visible to organizers โ โ
โ โ โ โ
โ โ โโโ PARTNERSHIP MANAGEMENT โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ โ
โ โ โ โ โ โ
โ โ โ Partnership Status: โ Active โ โ โ
โ โ โ [Deactivate Partnership] [End Partnership] โ โ โ
โ โ โ โ โ โ
โ โ โ Partnership Tier: โญ Premium โ โ โ
โ โ โ [Change Tier] โ Opens tier selection modal โ โ โ
โ โ โ โ โ โ
โ โ โ Renewal Date: January 1, 2026 โ โ โ
โ โ โ Auto-Renewal: โ Enabled โ โ โ
โ โ โ โ โ โ
โ โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ โ
โ โ โ โ
โ โ โโโ ACCESS & PERMISSIONS โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ โ
โ โ โ โ โ โ
โ โ โ Analytics Dashboard Access: โ Enabled (Premium benefit) โ โ โ
โ โ โ Topic Voting Access: โ Enabled โ โ โ
โ โ โ Meeting Scheduling Access: โ Enabled โ โ โ
โ โ โ Content Library Access: โ Full Access (Premium benefit) โ โ โ
โ โ โ โ โ โ
โ โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ โ
โ โ โ โ
โ โ โโโ DATA & COMPLIANCE โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ โ
โ โ โ โ โ โ
โ โ โ Data Retention: Standard (7 years) โ โ โ
โ โ โ GDPR Compliance: โ Compliant โ โ โ
โ โ โ Data Processing Agreement: โ Signed (Jan 1, 2024) โ โ โ
โ โ โ โ โ โ
โ โ โ [Export Partner Data] [View DPA] [Delete Partner Data] โ โ โ
โ โ โ โ โ โ
โ โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ โ
โ โ โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Key Interactive Elements
- [โ Back to Partner Directory] button: Return to Partner Directory list screen
- [Edit Partner] button: Opens partner editing modal (organizer only)
- [๐ง Send Email] button: Opens email composer with partner contact pre-filled
- [๐ Schedule Meeting] button: Opens meeting scheduler interface
- [๐ View Analytics] button: Navigate to Partner Analytics Dashboard (FR4 backlog)
- [๐ Add Note] button: Opens note creation modal
- Tab navigation: Switch between Overview, Contacts, Meetings, Activity, Notes, Settings tabs
- [Change Tier] button: Opens tier selection modal with tier change reason
- [View Full Analytics โ] link: Navigate to comprehensive partner analytics (FR4 backlog)
- [View All Activity โ] link: Navigate to Activity tab with all filters cleared
- [View All Employees โ] link: Navigate to employee list for this partner
- Engagement score bars: Interactive hover tooltips showing detailed metrics
- Topic vote items: Click to view topic detail screen
- Contact cards: Click contact name to view full user profile
- Meeting items: Click to view meeting details, agenda, or minutes
- Activity timeline items: Click to expand full details
- Note editing: Inline editing for note content (organizer only)
- [+ Add Contact] button: Opens contact creation form
- [+ Schedule New Meeting] button: Opens meeting scheduling workflow
- [+ Add New Note] button: Opens note creation modal
- [Export Partner Data] button: Generates data export for GDPR compliance
- Partnership status toggles: Activate/deactivate partnership, enable/disable auto-renewal
Functional Requirements Met
- FR4 (Backlog): Partner analytics dashboard access (analytics features in backlog, UI prepared)
- FR8: Partner strategic input coordination (topic voting history and results displayed)
- FR12: Partner meeting coordination (meeting history, scheduling, agenda management)
- FR21: Long-term planning capabilities (multi-year partnership tracking, renewal management)
- Partner Relationship Management: Centralized partner information hub with full interaction history
- Communication Tracking: Complete log of all partner communications and interactions
- Engagement Monitoring: Real-time engagement score tracking with alerts
Technical Notes
- Tab State Management: React Router or local state for tab navigation with URL hash support (#contacts, #meetings)
- Lazy Loading: Each tab loads data on-demand to improve initial page load performance
- Real-time Updates: WebSocket connection for engagement score updates when partner activities occur
- Engagement Score Calculation:
- Event Attendance: 40% weight (based on employee attendance vs. invited)
- Topic Voting: 30% weight (active votes vs. available topics)
- Meeting Participation: 20% weight (RSVP confirmation and actual attendance)
- Content Interaction: 10% weight (downloads, views of event materials)
- Activity Timeline: Infinite scroll pagination with virtualization for performance
- Notes System: Rich text editor (TinyMCE or Draft.js) with mention support (@organizer)
- Contact Management: Sync with external CRM systems via API webhooks
- Meeting Integration: Calendar sync with Outlook/Google Calendar via CalDAV/iCal
- Data Export: GDPR-compliant data export in JSON and CSV formats
- Audit Log: All partner data changes logged with timestamp and user attribution
- Responsive Design: Mobile-first approach with collapsible sections on small screens
- Caching Strategy: React Query with 2-minute cache for partner details, 30-second cache for engagement metrics
API Requirements
Initial Page Load APIs
Note: This wireframe uses the Partners API from Story 2.7 (Partner Coordination Service Foundation).
IMPORTANT (ADR-003): All endpoints use companyName (meaningful ID), NOT UUID identifiers.
-
GET /api/v1/partners/{companyName}?include=contacts,votes,meetings โ ADR-003 Compliant
- ADR-003: Path uses
companyName(e.g.,/api/v1/partners/GoogleZH) - Query params: include (comma-separated list of embedded resources)
- Returns: Partner entity with embedded data from Story 2.7:
- Partner: companyName, partnershipLevel (BRONZE/SILVER/GOLD/PLATINUM/STRATEGIC), startDate, endDate, isActive
- Company: enriched via
GET /api/v1/companies/{companyName}(HTTP call) - Contacts: enriched via
GET /api/v1/users/{username}per contact (HTTP calls) - Votes: active topic votes with vote weight
- Meetings: basic meeting data
- Used for: Populate Overview and Contacts tabs
- Story 2.8: Additional tabs (Activity, Notes, Settings) use separate endpoints
- Epic 8: Analytics and engagement scores deferred (show placeholder in Story 2.8)
- ADR-003: Path uses
-
GET /api/v1/partners/{companyName}/meetings?filter={โupcomingโ:true}&page=1&limit=10 โ ADR-003
- ADR-003: Path uses
companyName(e.g.,/api/v1/partners/GoogleZH/meetings) - Query params: filter (JSON filter for upcoming/past), page, limit, sort
- Returns: Paginated meetings list with basic details from Story 2.7
- Used for: Load meetings when Meetings tab activated
- Story 2.7: Basic meeting entity with type, dates, agenda
- Epic 8 (Story 6.2): Full meeting coordination with RSVP, materials, minutes
- ADR-003: Path uses
-
GET /api/v1/partners/{companyName}/activity?page=1&limit=20&sort=-timestamp โ ๏ธ Story 2.8 Feature
- ADR-003: Path uses
companyName - Story 2.8: Activity timeline endpoint to be implemented (basic audit log)
- Query params: page, limit, sort, filter (optional activity type filter)
- Returns: Paginated activity timeline
- Used for: Load activity when Activity tab activated
- Implementation: Can derive from domain events or create dedicated activity log
- ADR-003: Path uses
-
GET /api/v1/partners/{companyName}/notes?page=1&limit=10&sort=-createdAt โ ๏ธ Story 2.8 Feature
- ADR-003: Path uses
companyName - Story 2.8: Notes system endpoint to be implemented (organizer-only)
- Query params: page, limit, sort
- Returns: Paginated organizer notes
- Used for: Load notes when Notes tab activated
- Implementation: New PartnerNote entity with content, createdBy, createdAt
- ADR-003: Path uses
User Action APIs
-
PATCH /api/v1/partners/{companyName} โ ADR-003 Compliant
- ADR-003: Path uses
companyName(e.g.,/api/v1/partners/GoogleZH) - Triggered by: User clicks [Edit Partner] and saves changes
- Payload:
{ partnershipLevel?: "GOLD", startDate?: "2025-01-01", endDate?: "2026-12-31" } - Returns: Updated partner entity
- Used for: Update partnership details (tier, dates)
- Note: Company information (name, website, industry) updated via Company Service
- ADR-003: Path uses
-
PATCH /api/v1/partners/{companyName} โ ADR-003 Compliant (Same as #5)
- ADR-003: Path uses
companyName - Triggered by: User clicks [Change Tier] and confirms
- Payload:
{ partnershipLevel: "STRATEGIC", startDate: "2025-05-01" } - Returns: Updated partner with new partnershipLevel
- Used for: Change partner tier level
- Note: Tier change audit trail could be added to Activity log (Story 2.8)
- ADR-003: Path uses
-
POST /api/v1/partners/{companyName}/contacts โ ADR-003 Compliant
- ADR-003: Path uses
companyName, payload usesusername(NOT userId UUID) - Triggered by: User clicks [+ Add Contact] in Contacts tab
- Payload:
{ username: "m.schmidt", role: "PRIMARY|BILLING|TECHNICAL|MARKETING" } - Returns: Created PartnerContact entity
- Used for: Add contact person (must be existing user in User Service)
- Story 2.7: Backend validates user exists via
GET /api/v1/users/{username}
- ADR-003: Path uses
-
PATCH /api/v1/partners/{companyName}/contacts/{username} โ ADR-003 Compliant
- ADR-003: Path uses
companyNameandusername(NOT contactId UUID) - Triggered by: User clicks [Edit Contact] and saves
- Payload:
{ role?: "PRIMARY|BILLING|TECHNICAL|MARKETING" } - Returns: Updated PartnerContact entity
- Used for: Update contact role
- Note: Contact personal info (name, email, phone) updated via User Service, not here
- ADR-003: Path uses
-
POST /api/v1/partners/{companyName}/notes โ ๏ธ Story 2.8 Feature
- ADR-003: Path uses
companyName - Story 2.8: Notes endpoint to be implemented
- Triggered by: User clicks [+ Add New Note] in Notes tab
- Payload:
{ content: "string", isPrivate: boolean } - Returns: Created PartnerNote entity
- Used for: Add organizer note about partner
- ADR-003: Path uses
-
PATCH /api/v1/partners/{companyName}/notes/{noteId} โ ๏ธ Story 2.8 Feature
- ADR-003: Path uses
companyName - Story 2.8: Notes update endpoint to be implemented
- Triggered by: User clicks [Edit] on note and saves
- Payload:
{ content: "string", isPrivate: boolean } - Returns: Updated PartnerNote entity
- Used for: Edit existing note
- ADR-003: Path uses
-
DELETE /api/v1/partners/{companyName}/notes/{noteId} โ ๏ธ Story 2.8 Feature
- ADR-003: Path uses
companyName - Story 2.8: Notes delete endpoint to be implemented
- Triggered by: User clicks [Delete] on note and confirms
- Returns: 204 No Content
- Used for: Delete note
- ADR-003: Path uses
-
POST /api/v1/partners/{companyName}/meetings โ ADR-003 Compliant
- ADR-003: Path uses
companyName - Triggered by: User clicks [๐ Schedule Meeting] in header or [+ Schedule New Meeting] in Meetings tab
- Payload:
{ type: "strategic_planning|quarterly_review", proposedDates: [], agenda: "string" } - Returns: Created meeting ID
- Used for: Schedule new partner meeting
- Story 2.7: Basic meeting creation
- Epic 8 (Story 6.2): Full meeting coordination with RSVP, calendar integration, materials
- ADR-003: Path uses
-
POST /api/v1/partners/export
- Consolidates: Bulk email as export action with email type
- Triggered by: User clicks [๐ง Send Email] in header
- Payload:
{ action: "email", companyNames: ["GoogleZH", "MicrosoftBE"], subject: "string", messageBody: "string", templateId?: "uuid" } - Returns: Email task ID, sending status
- Used for: Send email to partner contacts
- Consolidation Benefit: Unified export endpoint handles both email and file exports
-
PATCH /api/v1/partners/{companyName}
- Consolidates: Settings updates via PATCH on settings section
- Triggered by: User updates settings in Settings tab (organizer only)
- Payload:
{ settings: { partnershipStatus?: "active|inactive", autoRenewal?: boolean, renewalDate?: "2026-01-01", accessPermissions?: {...} } } - Returns: Updated partner with new settings
- Used for: Update partnership configuration
- Consolidation Benefit: Settings managed via same PATCH endpoint as other partner updates
-
POST /api/v1/partners/{companyName}/export
- Consolidates: Data export using unified export endpoint
- Triggered by: User clicks [Export Partner Data] in Settings tab
- Payload:
{ exportType: "all", format: "json|csv", includeActivity: true, includeNotes: true } - Returns: Export task ID, download URL when ready
- Used for: Export partner data for GDPR compliance or reporting
- Consolidation Benefit: Same export endpoint used across all partner screens
-
DELETE /api/v1/partners/{companyName}
- Consolidates: Data deletion using standard DELETE with options
- Triggered by: User clicks [Delete Partner Data] in Settings tab and confirms
- Payload:
{ deleteScope: "data-only|complete", gdprJustification: "string", confirmPassword: "string" } - Security: Requires admin permission and GDPR justification
- Returns: 204 No Content with deletion confirmation
- Used for: Delete partner data (GDPR right to erasure)
- Consolidation Benefit: Standard RESTful DELETE with scope parameter
-
GET /api/v1/partners/{companyName}/analytics โ ๏ธ Deferred to Epic 8 (Story 6.1)
- ADR-003: Path uses
companyName - Triggered by: User clicks [๐ View Analytics] or [View Full Analytics โ]
- Status: NOT IMPLEMENTED in Story 2.7/2.8 - Analytics dashboard deferred to Epic 8
- Story 2.8: Show โComing soonโ placeholder or disable button
- Epic 8 (Story 6.1): Full analytics with ROI calculations, engagement metrics
- ADR-003: Path uses
-
GET /api/v1/partners/{companyName}/activity?filter={โtypeโ:โmeetingโ,โdateโ:{โ$gteโ:โ2025-01-01โ}}&page=1 โ ๏ธ Story 2.8
- ADR-003: Path uses
companyName - Story 2.8: Activity filtering to be implemented
- Triggered by: User applies filters in Activity tab
- Query params: filter (JSON with type, date range), page, limit
- Returns: Filtered and paginated activity timeline
- Used for: Filter activity by type and date range
- ADR-003: Path uses
-
GET /api/v1/partners/{companyName}/employees?page=1&limit=50
- Consolidates: Employees list with standard pagination
- Triggered by: User clicks [View All Employees โ] in Overview tab
- Query params: page, limit, sort
- Returns: Paginated employee list (userId, name, email, role, eventsAttended, lastEventDate)
- Used for: Navigate to employee list screen
- Consolidation Benefit: Standard list endpoint pattern
Navigation Map
Primary Navigation Actions
-
โ Back button โ Navigate to
Partner Directory(story-6.3-partner-directory.md)- Target: Partner Directory list screen
- Context: Return to partner list
-
[Edit Partner] button โ Opens
Edit Partner Modal- Target: Modal overlay for partner editing
- Context: companyName, current partner data pre-filled
-
[๐ View Analytics] button โ Navigate to
Partner Analytics Dashboard(FR4 backlog)- Target: Partner-specific analytics dashboard (if FR4 restored post-MVP)
- Context: companyName, default date range (last 12 months)
-
[View Full Analytics โ] link โ Navigate to
Partner Analytics Dashboard(FR4 backlog)- Target: Partner analytics dashboard (Engagement tab)
- Context: companyName, engagement metrics focus
-
[View All Activity โ] link โ Navigate to
Activity tab- Target: Same screen, Activity tab activated
- Context: All filters cleared
-
[View All Employees โ] link โ Navigate to
Employee List Screen(MISSING)- Target: Dedicated employee list/management screen
- Context: companyName, filter by company
Secondary Navigation (Data Interactions)
-
Topic vote item click โ Navigate to
Topic Detail Screen(story-2.2-topic-detail-screen.md)- Target: Topic detail page
- Context: topicId, show partner voting priority
-
Contact name click โ Navigate to
User Profile Screen(story-1.20-user-profile.md)- Target: Full user profile
- Context: userId, contact details
-
Employee name click โ Navigate to
User Profile Screen(story-1.20-user-profile.md)- Target: Employee profile
- Context: userId, event attendance history
-
Meeting item click โ Navigate to
Meeting Details Screen(MISSING)- Target: Full meeting details page
- Context: meetingId, agenda, attendees, materials
-
[View Agenda] button โ Opens
Agenda Viewer Modal- Target: Modal overlay showing meeting agenda
- Context: meetingId, agenda items
-
[View Minutes] button โ Opens
Meeting Minutes Viewer Modal- Target: Modal overlay showing meeting minutes
- Context: meetingId, minutes content, action items
-
Activity timeline item click โ Expands
Activity Detail- Target: Inline expansion showing full activity details
- Context: activityId, related entities
Event-Driven Navigation
-
[๐ง Send Email] button โ Opens
Email Composer Modal- Target: Email composition modal
- Context: partner contacts pre-filled, email templates available
-
[๐ Schedule Meeting] button โ Navigate to
Meeting Scheduler(story-6.2-partner-meetings.md)- Target: Meeting scheduling interface
- Context: companyName, partner availability, calendar integration
-
[๐ Add Note] button โ Opens
Add Note Modal- Target: Note creation modal with rich text editor
- Context: companyName, author (current organizer)
-
[+ Schedule New Meeting] button โ Navigate to
Meeting Scheduler- Target: Meeting scheduling workflow
- Context: companyName, meeting type selection
-
[Change Tier] button โ Opens
Tier Change Modal- Target: Modal for tier selection with reason input
- Context: currentTier, availableTiers, effective date selector
-
[Export Partner Data] button โ Downloads file
- Action: Generate and download partner data export
- Target: File download (JSON or CSV)
- Context: companyName, data export format selection
Error States & Redirects
-
Partner not found โ Redirect to Partner Directory
- Condition: Invalid companyName or deleted partner
- Action: Show error notification and redirect
- Context: โPartner not foundโ message
-
Unauthorized access โ Redirect to login
- Condition: User not authenticated or insufficient permissions
- Target: Login screen with return URL
- Context: Redirect back to partner detail after authentication
-
API failure โ Show error banner
- Condition: API request fails or times out
- Action: Display error with [Retry] button
- Context: Error message, cached data shown if available
-
Analytics not available โ Show backlog notice
- Condition: User clicks [๐ View Analytics] but FR4 is in backlog
- Action: Display modal: โAnalytics dashboard coming soon (post-MVP feature)โ
- Context: Link to backlog documentation
-
Settings tab restricted โ Hide tab
- Condition: User is partner role (not organizer)
- Action: Settings tab not displayed for partner users
- Context: Role-based UI rendering
Responsive Design Considerations
Mobile Layout Changes
Stacked Layout (320px - 768px):
- Header: Logo and company name stacked, tier badge below
- Quick Stats: Vertical stacked cards (2x2 grid on larger mobiles)
- Tabs: Horizontal scrollable tab bar
- Action Buttons: Dropdown menu (โฎ) for space efficiency
- [๐ง Send Email], [๐ Schedule], [๐ Analytics], [๐ Note] โ โฎ More Actions
- Overview Tab:
- Partnership Details and Engagement Metrics: Stacked vertically
- Engagement chart: Simplified horizontal bar chart
- Recent Activity: Cards instead of list (one per row)
- Contacts Tab:
- Contact cards: Full-width, collapsible secondary contacts
- Meetings Tab:
- Meeting cards: Full-width with expandable details
- Activity Tab:
- Timeline items: Full-width cards with timestamps
- Notes Tab:
- Notes: Full-width cards with truncated content (tap to expand)
- Settings Tab: Accordion-style collapsible sections
Tablet Layout (768px - 1024px):
- Two-column layout for Overview tab (Partnership Details | Engagement Metrics)
- Side-by-side action buttons (full labels visible)
- Tabs with full labels (no scrolling needed)
- Meeting and activity items: Two-column grid
Mobile-Specific Interactions
- Swipe gestures: Swipe between tabs (left/right)
- Pull-to-refresh: Refresh partner data and engagement scores
- Bottom sheet: Action menus, modals slide up from bottom
- Floating action button (FAB): [๐ Schedule Meeting] as FAB (most common action)
- Touch targets: 44px minimum for all interactive elements
- Sticky header: Company name and tier badge sticky on scroll
- Infinite scroll: Load more activity/notes on scroll (replaces โLoad Moreโ button)
- Tap to expand: Tap engagement score to expand detailed breakdown
- Long press: Long-press note to show edit/delete menu
Accessibility Notes
- Keyboard Navigation: Full tab navigation with logical focus order across all tabs
- ARIA Labels:
aria-label="Partner engagement score: 92 percent, excellent"on engagement barsaria-label="Navigate to {tab name} tab"on tab buttonsrole="tabpanel"on tab content areasaria-expandedon collapsible sectionsaria-current="page"on active tab
- Screen Reader Announcements:
- Live region (
aria-live="polite") for engagement score updates - Tab change announcements (โNow viewing Contacts tabโ)
- Success/error notifications announced
- Activity timeline updates announced
- Live region (
- Color Contrast: WCAG 2.1 AA compliance
- Tier badges: Gold on dark background (8:1 ratio)
- Engagement bars: Green gradients with percentage text overlay
- Warning indicators: Orange/red with โ ๏ธ icon for redundancy
- Focus Indicators: 2px solid blue outline on all focused elements
- Alt Text: Company logo has descriptive alt text (
alt="TechCorp AG logo, Premium partner") - Semantic HTML:
<main>for partner detail content<nav>for tab navigation<section>for each tab panel<article>for notes and activity items<dl>for partnership details (term/definition pairs)
- Skip Links: โSkip to tab contentโ link at top of screen
- Heading Hierarchy: Proper h1-h6 structure (h1: Partner Name, h2: Tab Names, h3: Section Titles)
- Focus Management: Focus moved to tab panel when tab activated
- Keyboard Shortcuts:
Ctrl + 1-6: Navigate to tabs 1-6 (Overview, Contacts, Meetings, Activity, Notes, Settings)Ctrl + E: Open email composerCtrl + M: Schedule meetingCtrl + N: Add new note
State Management
Local Component State
activeTab: Current active tab (โoverviewโ | โcontactsโ | โmeetingsโ | โactivityโ | โnotesโ | โsettingsโ)activityFilters: Activity tab filters { activityType: โallโ, startDate: null, endDate: null }notesFilter: Filter for notes (all/private/shared)meetingView: Meeting tab view (โupcomingโ | โhistoryโ)editingNote: ID of note currently being edited (null if none)expandedActivityItems: Set of activity IDs that are expandedshowEmailComposer: Boolean for email modal visibilityshowMeetingScheduler: Boolean for meeting scheduler modal visibilityshowTierChangeModal: Boolean for tier change modal visibility
Global State (Zustand Store)
partnerDetails: Complete partner entity from APIpartnerEngagement: Current engagement metricspartnerContacts: List of contact personspartnerStatistics: Aggregate statisticscurrentUser: Current logged-in user (for permission checks)
Server State (React Query)
usePartnerDetails(companyName): Partner company data, 5-minute cache, refetch on window focususePartnerEngagement(companyName): Engagement metrics, 30-second cache, auto-refetch every minuteusePartnerContacts(companyName): Contact information, 10-minute cacheusePartnerMeetings(companyName, upcoming): Meetings list, 2-minute cacheusePartnerActivity(companyName, filters): Activity timeline, 1-minute cacheusePartnerNotes(companyName): Notes list, 2-minute cache, optimistic updates on create/edit/deleteusePartnerStatistics(companyName): Statistics, 5-minute cacheusePartnerSettings(companyName): Settings (organizer only), 10-minute cache
Query Keys Structure:
['partner', companyName]
['partner', companyName, 'engagement']
['partner', companyName, 'contacts']
['partner', companyName, 'meetings', { upcoming: boolean }]
['partner', companyName, 'activity', { filters }]
['partner', companyName, 'notes']
['partner', companyName, 'statistics']
['partner', companyName, 'settings']
Real-Time Updates
- WebSocket Connection:
/ws/partners/{companyName}/updates- Real-time engagement score updates when partner activities occur (vote, attendance, meeting RSVP)
- Activity timeline updates (new activity items pushed)
- Meeting updates (RSVP status changes, agenda updates)
- Note updates (collaborative editing notifications)
- Updates partner engagement bars and activity feed without refresh
- Fallback to polling every 1 minute if WebSocket unavailable
Form Validation Rules
Add/Edit Contact Form
Field-Level Validations:
- Name: Required, min 2 chars, max 100 chars, alphabetic + spaces + hyphens
- Title: Required, min 2 chars, max 100 chars
- Email: Required, valid email format, max 255 chars, unique within partner contacts
- Phone: Optional, valid phone format (international), E.164 format preferred
- LinkedIn: Optional, valid LinkedIn URL format
- Role: Required, max 200 chars (dropdown or free text)
- Preferred Language: Required, enum (de | en)
- Preferred Contact Method: Required, enum (email | phone | linkedin)
Form-Level Validations:
- Only one primary contact allowed per partner
- At least one contact must exist for active partnerships
Add/Edit Note Form
Field-Level Validations:
- Content: Required, min 10 chars, max 5000 chars
- isPrivate: Boolean (default: false)
Form-Level Validations:
- Note content must not be empty after trimming whitespace
Tier Change Form
Field-Level Validations:
- New Tier: Required, enum (premium | gold | silver | bronze), must differ from current tier
- Reason: Required, min 20 chars, max 500 chars (for audit trail)
- Effective Date: Required, must be today or future date, max 1 year in future
Form-Level Validations:
- Cannot downgrade tier without approval (shows warning)
- Tier change requires confirmation modal with reason
Partnership Settings Form
Field-Level Validations:
- Partnership Status: Required, enum (active | inactive)
- Renewal Date: Required, must be future date
- Auto-Renewal: Boolean (default: true)
Form-Level Validations:
- Deactivating partnership requires confirmation
- Disabling auto-renewal shows warning modal
Edge Cases & Error Handling
-
Empty State (No Contacts):
- Show โNo contacts added yetโ message
- Display [+ Add Contact] CTA prominently
- Warn: โPartnership requires at least one contact personโ
-
Empty State (No Meetings):
- Show โNo meetings scheduledโ message
- Display [+ Schedule New Meeting] CTA
- Suggest: โSchedule a strategic planning meeting with this partnerโ
-
Empty State (No Activity):
- Show โNo recent activityโ message
- Display last activity date if available
- Suggest: โSend an email or schedule a meeting to engageโ
-
Empty State (No Notes):
- Show โNo notes yetโ message
- Display [+ Add New Note] CTA
- Suggestion: โAdd notes to track partnership discussions and decisionsโ
-
Loading State:
- Display skeleton screens for each section
- Show loading spinner in quick stats
- Tabs remain interactive (load data on tab activation)
-
Error State (API Failure):
- Show error banner: โUnable to load partner data. Please try again.โ
- Provide [Retry] button to refetch data
- Cache last successful data if available (show with โshowing cached dataโ indicator)
-
Low Engagement Warning:
- Highlight engagement score in orange/red if <50%
- Show โ ๏ธ warning icon with tooltip: โEngagement below expected levelโ
- Suggest actions: โConsider scheduling a meeting or sending personalized emailโ
- Display specific low-engagement area (e.g., โLow content interactionโ)
-
Meeting Scheduling Conflict:
- Show availability conflict message with proposed dates
- Suggest alternative dates based on partner availability
- Allow manual date/time entry with calendar picker
- Notify partner contacts of proposed meeting via email
-
Tier Change Approval:
- Tier upgrades: Immediate (no approval needed)
- Tier downgrades: Require admin approval (pending state)
- Show pending status with approval workflow
- Notify partner of tier change via email
-
Contact Email Bounce:
- Mark email as bounced in contact info
- Show โ ๏ธ warning: โEmail delivery failed - please verify contact emailโ
- Suggest: โUpdate contact email address or use secondary contactโ
-
Analytics Not Available (FR4 Backlog):
- [๐ View Analytics] button shows tooltip: โAnalytics dashboard coming soon (post-MVP)โ
- Clicking shows modal: โFull analytics dashboard will be available in a future releaseโ
- Link to roadmap or backlog item
-
Settings Tab Unauthorized (Partner User):
- Settings tab completely hidden for partner-role users
- Only organizer role can access Settings tab
- If partner tries to access directly (URL manipulation), show 403 error
-
Partner Deactivation:
- Show confirmation modal: โAre you sure you want to deactivate this partnership?โ
- Warn about consequences: โPartner will lose access to analytics, voting, and meeting schedulingโ
- Require reason for deactivation (audit trail)
- Send notification email to partner contacts
-
Data Export Timeout:
- Show progress indicator for large data exports
- If timeout occurs, offer email delivery option
- โYour export is being prepared. Weโll email you when itโs ready.โ
-
WebSocket Disconnection:
- Fall back to polling (every 1 minute) if WebSocket unavailable
- Show connection status indicator (subtle banner at top)
- Attempt WebSocket reconnection every 30 seconds
-
Stale Data Warning:
- Show โLast updated: X minutes agoโ timestamp
- If data is >10 minutes old, show [Refresh] button
- Auto-refresh engagement metrics every 5 minutes
-
Note Deletion Confirmation:
- Show confirmation modal: โDelete this note? This action cannot be undone.โ
- Require confirmation click
- Show undo toast for 5 seconds after deletion (allow recovery)
Change Log
| Date | Version | Description | Author |
|---|---|---|---|
| 2025-10-04 | 1.0 | Initial wireframe creation for Partner Detail Screen | ux-expert |
Review Notes
Stakeholder Feedback
To be added during review
Design Iterations
To be documented as design evolves
Open Questions
-
Analytics Dashboard Integration (FR4): When FR4 is restored from backlog, should analytics be embedded in this screen or separate dashboard?
- Option A: Embed analytics charts in Overview tab (quick insights)
- Option B: Separate analytics dashboard (deep-dive analysis)
- Recommendation: Option A for overview, Option B for detailed analytics
- Decision needed from product team
-
Employee Management: Should partner detail screen include full employee management or just summary?
- Current: Summary with โView All Employeesโ link
- Alternative: Full employee list as a tab
- Decision needed based on organizer workflow research
-
Meeting Scheduling Integration: Integrate with external calendar systems (Outlook, Google) or internal only?
- External integration provides better UX but increases complexity
- Internal-only is faster to implement
- Decision needed from technical team (feasibility + timeline)
-
Engagement Score Algorithm: Confirm final weighting for engagement score calculation?
- Proposed: Event Attendance (40%), Topic Voting (30%), Meeting Participation (20%), Content Interaction (10%)
- Alternative: Equal weighting (25% each)
- Decision needed from business analytics team
-
Tier Change Workflow: Should tier changes require approval workflow or be immediate?
- Current: Upgrades immediate, downgrades require approval
- Alternative: All tier changes immediate (simpler UX)
- Decision needed from partnership management team
-
Notes Visibility: Should notes be shareable with partner users or organizer-only?
- Current: Organizer-only (private notes)
- Alternative: Public/private toggle (collaborative notes)
- Decision needed from security and partnership teams
-
Data Retention: How long should activity timeline and notes be retained?
- Current: Indefinite (7-year standard for compliance)
- Alternative: Configurable retention period per partner
- Decision needed from compliance team
-
Real-time Updates: Is WebSocket connection necessary or is polling sufficient?
- WebSocket provides better UX for engagement updates
- Polling is simpler but less responsive
- Decision needed from technical team (infrastructure cost vs. UX benefit)