Story 5.1: AI-Powered Content Discovery Engine - Wireframe
⚠️ STATUS: SUPERSEDED
Story: Epic 5, Story 1 Screen: AI-Powered Content Discovery Engine User Role: Attendee Related FR: FR13 (Content Discovery) - REMOVED
2. AI-Powered Content Discovery Engine (FR13)
┌─────────────────────────────────────────────────────────────────────────────────────┐
│ ← Back to Home BATbern Knowledge Hub [Login/Register]│
├─────────────────────────────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────────────────────────────────────────────────────────────────────────┐ │
│ │ 🔍 What are you looking for? │ │
│ │ ┌──────────────────────────────────────────────────────────────────────┐ │ │
│ │ │ Search presentations, speakers, topics... │ │ │
│ │ └──────────────────────────────────────────────────────────────────────┘ │ │
│ │ │ │
│ │ Suggestions: "Kubernetes security" "Thomas Weber" "DevOps 2023" "AI/ML" │ │
│ └─────────────────────────────────────────────────────────────────────────────────┘ │
│ │
│ ┌─── SMART FILTERS ──────────────┬─── YOUR INTERESTS ─────────────────────────────┐ │
│ │ │ │ │
│ │ Topic Categories │ Based on your activity: │ │
│ │ ☑ Cloud Native (142) │ • Kubernetes & Containers │ │
│ │ ☐ Security (89) │ • DevOps Practices │ │
│ │ ☐ AI/ML (67) │ • Cloud Architecture │ │
│ │ ☐ DevOps (134) │ │ │
│ │ ☐ Data Engineering (45) │ [Customize Interests] │ │
│ │ │ │ │
│ │ Time Period │ 🤖 AI Recommendations │ │
│ │ ○ Last Month │ "Since you enjoyed 'K8s Security', you │ │
│ │ ○ Last Year │ might like these presentations..." │ │
│ │ ● Last 5 Years │ │ │
│ │ ○ All Time (20+ years) │ [View Recommendations →] │ │
│ │ │ │ │
│ │ Content Type │ │ │
│ │ ☑ Presentations │ │ │
│ │ ☑ Videos │ │ │
│ │ ☐ Code Examples │ │ │
│ │ ☐ Workshop Materials │ │ │
│ │ │ │ │
│ │ [Apply Filters] [Clear All] │ │ │
│ └─────────────────────────────────┴────────────────────────────────────────────────┘ │
│ │
│ ┌─── SEARCH RESULTS (247 items) ──────────────────────────────────────────────────┐ │
│ │ │ │
│ │ Sort by: [Relevance ▼] [Date ▼] [Rating ▼] [Downloads ▼] View: [▦▦] [☰] │ │
│ │ │ │
│ │ ┌────────────────────────────────────────────────────────────────────────────┐ │ │
│ │ │ 95% Match │ │ │
│ │ │ │ │ │
│ │ │ 🎯 Kubernetes Security Best Practices │ │ │
│ │ │ Thomas Weber • Spring 2024 • ⭐ 4.8/5 • 👁️ 1,247 views • ⬇ 523 │ │ │
│ │ │ │ │ │
│ │ │ "...implementing zero-trust security in Kubernetes environments with │ │ │
│ │ │ practical examples from Swiss financial sector compliance..." │ │ │
│ │ │ │ │ │
│ │ │ Tags: #kubernetes #security #compliance #fintech │ │ │
│ │ │ │ │ │
│ │ │ [View] [Download PDF] [Share] │ │ │
│ │ └────────────────────────────────────────────────────────────────────────────┘ │ │
│ │ │ │
│ │ ┌────────────────────────────────────────────────────────────────────────────┐ │ │
│ │ │ 87% Match │ │ │
│ │ │ │ │ │
│ │ │ 🔒 Container Security Deep Dive │ │ │
│ │ │ Sara Kim • Autumn 2023 • ⭐ 4.9/5 • 👁️ 2,103 views • ⬇ 891 │ │ │
│ │ │ │ │ │
│ │ │ "...comprehensive security scanning in CI/CD pipelines with │ │ │
│ │ │ lessons learned from production incidents..." │ │ │
│ │ │ │ │ │
│ │ │ Tags: #docker #security #cicd #devops │ │ │
│ │ │ │ │ │
│ │ │ [View] [Download PDF] [Share] │ │ │
│ │ └────────────────────────────────────────────────────────────────────────────┘ │ │
│ │ │ │
│ │ [Load More Results...] │ │
│ └──────────────────────────────────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────────────────────────┘
Key Interactive Elements
- AI-Powered Search: Natural language search with semantic understanding
- Smart Filters: Multi-dimensional filtering (topic, time, content type)
- Personalized Recommendations: ML-based suggestions based on user activity
- Match Score: AI confidence score showing relevance (95%, 87%, etc.)
- Rich Previews: View, download, watch, save, and share options
Functional Requirements Met
- FR13: Complete AI-powered content discovery with semantic search
- Personalization: User interest tracking and recommendations
- 20+ Years Archive: Access to complete historical content
- Multi-format Content: PDFs, code examples, workshop materials
- Social Features: Share and collaborative discovery
User Interactions
- Search: Enter natural language queries, get semantically relevant results
- Filter: Apply multi-dimensional filters to narrow results
- Customize Interests: Set and manage content preferences
- View Content: Access presentations, videos, and materials
- Share: Share content with colleagues
- Get Recommendations: Discover related content via AI suggestions
Technical Notes
- Elasticsearch/OpenSearch for full-text search
- ML-based semantic search using embeddings
- Collaborative filtering for recommendations
- User activity tracking for personalization
- Real-time search suggestions
- CDN delivery for media content
- Analytics tracking for content performance
API Requirements
APIs needed to load and display data for this screen:
Initial Page Load
-
GET /api/v1/content/discovery/homepage
- Retrieve discovery homepage data
- Response includes: featured content, user interests, recent searches, trending topics
- Used for: Initial screen rendering with personalized content
- Auth: Optional (personalized if logged in)
-
GET /api/v1/users/{userId}/interests
- Retrieve user’s content interests and preferences
- Response includes: selected topics, favorite speakers, learning paths
- Used for: “Your Interests” panel
- Requires: User authentication
-
GET /api/v1/content/discovery/suggestions
- Retrieve search suggestions and trending queries
- Response includes: popular searches, related topics
- Used for: Search suggestions below search box
Search & Filtering
-
GET /api/v1/content?filter={}&sort={}&page={}&facets=year,speaker,topic,format
- Retrieve search results with faceted filtering
- Query params:
filter={"title":{"$contains":"kubernetes"}},topics[],year,contentTypes[],sort,page,limit - Response includes: results with match scores, metadata, statistics, facet aggregations
- Used for: Main search results display
- Consolidated: Single unified search endpoint (was /api/v1/content/search)
- Benefit: Rich filtering with JSON filter syntax, faceted navigation in single call
-
GET /api/v1/content?filter={}&facets=year,speaker,topic,format&aggregateOnly=true
- Retrieve available filter options and counts
- Response includes: facet aggregations (topic categories with counts, year ranges, content types)
- Used for: Populating filter options with result counts
- Consolidated: Same search endpoint with aggregateOnly flag (was /api/v1/content/filters/metadata)
- Benefit: Filter metadata comes from actual search results
-
GET /api/v1/content?filter={“title”:{“$startsWith”:“{query}”}}&limit=10&fields=id,title,speaker
- Retrieve search autocomplete suggestions
- Query params: Filter by title prefix, limit to 10 results, sparse fieldset
- Response includes: suggested content with title, speaker, topic
- Used for: Real-time search suggestions as user types
- Debounced: 300ms delay
- Consolidated: Uses same search with field selection (was /api/v1/content/search/autocomplete)
- Benefit: No separate autocomplete endpoint needed
Action APIs
APIs called by user interactions and actions:
Search & Discovery
-
GET /api/v1/content?filter={query}&sort={sort}&page={page}&facets=year,speaker,topic,format
- Triggered by: Search query submission or filter application
- Query params:
filter={"$or":[{"title":{"$contains":"query"}},{"description":{"$contains":"query"}}]},sort,page - Response: Search results with match scores, facet aggregations, total count
- Processing:
- Text search with rich filtering
- User context for personalization (if authenticated)
- Analytics: Logs search query for recommendations
- Consolidated: Single GET endpoint replaces POST search (was POST /api/v1/content/search)
- Benefit: Cacheable, stateless, RESTful design
-
POST /api/v1/content/{contentId}/analytics (with search interaction data)
- Triggered by: User interaction with search results
- Payload:
{ event: "search_result_click", query, position, context } - Response: Feedback recorded
- Used for: Improving ranking models and analytics
- Consolidated: Uses standard analytics endpoint (was POST /api/v1/content/search/feedback)
- Benefit: Unified analytics tracking
Filtering & Sorting
-
GET /api/v1/content?filter={appliedFilters}&facets=year,speaker,topic,format
- Triggered by: [Apply Filters] button or real-time filter changes
- Query params:
filter={"topics":{"$in":["kubernetes","security"]},"year":2024}, facets - Response: Updated search results matching filters with facet counts
- Updates: Search results panel refreshes
- Consolidated: Same search endpoint with new filter params (was PUT /api/v1/content/search/filters)
- Benefit: Stateless filtering, URL-shareable searches
-
GET /api/v1/content?query={originalQuery}
- Triggered by: [Clear All] button
- Response: Search results without filters (original query only)
- Updates: All filter checkboxes cleared, results refresh
- Consolidated: Same search endpoint without filter params (was DELETE /api/v1/content/search/filters)
- Benefit: No special delete endpoint needed
-
GET /api/v1/content?filter={currentFilters}&sort={newSort}
- Triggered by: Sort dropdown selection
- Query params:
sort=-downloads(for descending downloads),sort=title(for ascending title) - Response: Re-sorted search results
- Updates: Results reorder
- Consolidated: Same search endpoint with sort param (was PUT /api/v1/content/search/sort)
- Benefit: Sorting is just another query parameter
Content Actions
-
GET /api/v1/content/{contentId}?include=analytics,reviews,related
- Triggered by: [View] button on result card
- Response: Full content details, viewer URL, optional related content
- Opens: Content viewer (PDF viewer, video player, etc.)
- Analytics: Increments view count
- Consolidated: Story 1.20 standard content endpoint with includes
- Benefit: Single call retrieves content + related data
-
GET /api/v1/content/{contentId}/download
- Triggered by: [Download PDF] button
- Response: Presigned S3 URL or file stream
- Downloads: PDF file
- Analytics: Increments download count
- Auth: May require login for some content
- Consolidated: Story 1.20 standard download endpoint
-
POST /api/v1/content/{contentId}/reviews (with share metadata)
- Triggered by: [Share] button
- Opens: Share modal with options
- Payload:
{ method: "email|link|social", recipients: [], shareType: "share" } - Response: Share link generated, emails sent
- Options: Email, copy link, LinkedIn, Twitter
- Note: Share tracking can use reviews/analytics endpoint
Personalization
-
GET /api/v1/content/recommendations?userId={userId}&limit=10
- Triggered by: [View Recommendations →] button
- Query params:
userId,limit=10 - Response: ML-recommended content based on activity
- Opens: Recommendations modal or dedicated page
- Consolidated: Story 1.20 standard recommendations endpoint
- Benefit: Single endpoint for all user recommendations
-
PATCH /api/v1/users/{userId}
- Triggered by: [Customize Interests] button
- Opens: Interest customization modal
- Payload:
{ interests: { topics: [], speakers: [], excludeTopics: [] } } - Response: Updated user preferences
- Updates: “Your Interests” panel, search results personalization
- Consolidated: Standard user update endpoint (was PUT /api/v1/users/{userId}/interests)
- Benefit: Consistent with other PATCH operations
-
POST /api/v1/content/{contentId}/analytics
- Triggered by: Various user interactions (auto-tracked)
- Payload:
{ event: "view|download|search", userId, contentId, metadata } - Response: Activity logged
- Used for: Personalization and recommendations
- Background: Async, doesn’t block UI
- Consolidated: Uses Story 1.20 analytics endpoint (was POST /api/v1/users/{userId}/activity)
- Benefit: Content-centric analytics tracking
Navigation Map
Screen transitions triggered by actions and events:
Primary Navigation
-
← Back to Home
- Target: Main BATbern homepage
- Type: Full page navigation
- Context: Return to site homepage
-
[Login/Register]
- Target: Login/registration page
- Type: Modal or full page
- Context: Required for saving, learning paths, personalization
Search Interaction
-
Search Box Interaction
- Type: Inline autocomplete dropdown
- Trigger: Typing (debounced 300ms)
- Content: Suggestions, recent searches, trending topics
- Action: Click suggestion → Execute search
-
Search Submission
- Action: Enter key or search button
- No Navigation: Remains on discovery page
- Updates: Search results panel refreshes with new results
Filter & Sort Navigation
-
Filter Checkboxes
- Action: Toggle filters
- No Navigation: Remains on page
- Updates: Real-time or on [Apply Filters]
- URL: Updates query params for shareability
-
[Apply Filters]
- No Navigation: Remains on page
- Updates: Search results refresh with filters applied
- Feedback: Result count updates
-
[Clear All]
- No Navigation: Remains on page
- Updates: All filters cleared, original results restored
-
Sort Dropdown
- No Navigation: Remains on page
- Updates: Results reorder by selected criterion
-
View Toggle ([▦▦] grid / [☰] list)
- No Navigation: Remains on page
- Updates: Result cards change layout
- Preference: Saved for future visits
Result Card Actions
-
[View]
- Target: Content viewer page
- Type: Full page or modal
- Content: PDF viewer, video player, or content reader
- Features: Fullscreen, annotations, related content
-
[Download PDF]
- Action: Downloads file
- No Navigation: Remains on page
- Feedback: Download initiated toast
- Auth Check: May require login
-
[Share]
- Target: Share options modal
- Type: Modal overlay
- Options: Email, copy link, social media
- Submit: Generates shareable link
- Close: Returns to discovery page
-
Result Card Click (not on button)
- Target: Content detail page
- Type: Full page navigation
- Content: Full content view with metadata, related content, comments
Personalization Navigation
-
[Customize Interests]
- Target: Interest customization modal
- Type: Modal overlay with multi-select
- Content: Topic selector, speaker preferences
- Submit: Saves preferences, updates recommendations
- Close: Returns to discovery page
-
[View Recommendations →]
- Target: Recommendations page or modal
- Type: Full page or modal
- Content: AI-curated content based on activity
- Features: Explanation of why recommended
-
Interest Tag Click (in “Your Interests”)
- Action: Filters search to that topic
- No Navigation: Remains on discovery page
- Updates: Search results filtered to selected interest
Load More & Pagination
- [Load More Results…]
- Action: Loads next page of results
- No Navigation: Remains on page
- Updates: Appends results to current list (infinite scroll)
- Alternative: Pagination buttons (1, 2, 3…)
Event-Driven Navigation
-
On Search Complete
- No Navigation: Remains on page
- Updates: Results panel, result count, facets
- Feedback: Loading spinner → results appear
-
On No Results Found
- No Navigation: Remains on page
- Feedback: “No results found” message
- Suggestions: Related searches, clear filters, browse trending
-
On Share Success
- No Navigation: Remains on page
- Feedback: “Link copied” or “Shared successfully” toast
-
On Login Required
- Target: Login modal
- Type: Modal overlay
- Context: Saves intended action
- After Login: Completes intended action, returns to discovery
Error States
-
On Search Error
- No Navigation: Remains on page
- Feedback: Error message with retry option
- Actions: [Retry Search], [Clear Filters]
-
On Content Unavailable
- Feedback: “Content no longer available” message
- Suggestions: Related content, similar topics
-
On Download Failure
- No Navigation: Remains on page
- Feedback: “Download failed” toast
- Actions: [Retry], [Contact Support]
Mobile-Specific
-
Mobile Filter Panel
- Target: Full-screen filter modal
- Type: Slides up from bottom
- Actions: Apply, clear, close
-
Mobile Result Cards
- Layout: Single column, compact
- Actions: Swipe left for more options