Pridané US-015, US-016, US-017, US-018

This commit is contained in:
Ján Malinovský 2025-11-02 16:37:05 +01:00
parent d60685d8fb
commit 2690943aa3

View File

@ -511,6 +511,302 @@ aby som nezmeškal zaujímavé aktivity
- ⏸️ Konfigurovateľné nastavenia
---
## US-015: Hodnotenie a recenzie
**Status:** 📋 PLANNED
Ako používateľ
chcem hodnotiť účastníkov po aktivite
aby ostatný vedeli, s kým hrajú
**Vývojár:** -
### Tasky:
### Backend
⏸️ Prisma schema: Review model (rating 1-5, comment, reviewer, reviewed user)
⏸️ API: POST /api/users/[id]/reviews
⏸️ API: GET /api/users/[id]/reviews (zoznam recenzií)
⏸️ Validácia: len pre účastníkov aktivity
⏸️ Validácia: len po dátume aktivity
⏸️ Validácia: jeden review na používateľa na aktivitu
⏸️ Validácia: no spam, min 10 znakov pre comment
⏸️ Výpočet priemerného ratingu (agregácia)
⏸️ API: POST /api/reviews/[id]/report (report inappropriate review)
###Frontend - Review komponenty
⏸️ Review modal po skončení aktivity
⏸️ Star rating komponenta (1-5 hviezd, interactive)
⏸️ Text area pre komentár (optional, max 500 znakov)
⏸️ Character counter (500/500)
⏸️ Anonymous option checkbox (meno skryté)
⏸️ Submit a Cancel tlačidlá
⏸️ Loading state pri odosielaní
### Frontend - Zobrazenie recenzií
⏸️ Zobrazenie priemerného ratingu na profile (stars + číslo)
⏸️ Zoznam recenzií na profile stránke
⏸️ Review card komponenta (avatar, meno/anonymous, rating, komentár, dátum)
⏸️ Pagination pre recenzie (10 per page)
⏸️ Report inappropriate review button
⏸️ "Žiadne recenzie" empty state
⏸️ Responzívny dizajn
### Notifikácie
⏸️ Notifikácia pre používateľa pri novej recenzii
⏸️ Email notifikácia o novom hodnotení (optional)
### Výsledné funkcie:
⏸️ Rating systém funguje
⏸️ Reviews na profile
⏸️ Priemerný rating sa zobrazuje
⏸️ Report function
---
## US-016: Chat pre aktivitu
**Status:** 📋 PLANNED
Ako používateľ
chcem komunikovať s účastníkmi aktivity
aby sme mohli medzi sebou komunikovať
**Vývojár:** -
### Tasky:
### Backend
⏸️ Prisma schema: Message model (activity_id, user_id, content, timestamp)
⏸️ API: GET /api/activities/[id]/messages (s pagination)
⏸️ API: POST /api/activities/[id]/messages
⏸️ API: DELETE /api/messages/[id] (delete vlastnej správy)
⏸️ Validácia: len pre prihlásených účastníkov
⏸️ Validácia: max 500 znakov na správu
⏸️ Real-time setup (Pusher/Ably konfigurácia alebo polling endpoint)
⏸️ Unread message tracking (Message.read field)
⏸️ API: PUT /api/messages/mark-read
### Frontend - Chat UI
⏸️ Chat UI komponenta (sidebar/panel na detaile aktivity)
⏸️ Toggle button na otvorenie/zatvorenie chatu
⏸️ Message list (scrollable container)
⏸️ Message bubble komponenta (left/right podľa odosielateľa)
⏸️ Zobrazenie mena a fotky odosielateľa
⏸️ Timestamp pre každú správu (relatívny čas: "5 min ago")
⏸️ Message input field (textarea s auto-resize)
⏸️ Send button (disabled ak prázdne)
⏸️ Character counter (500/500)
### Real-time funkcie
⏸️ Real-time message receiving (Pusher/Ably integration)
⏸️ Auto-scroll na novú správu (smooth scroll)
⏸️ Unread message badge (počet neprečítaných)
⏸️ "Typing..." indikátor (optional)
⏸️ Message delivered/read status (optional)
### UX vylepšenia
⏸️ Emoji picker (optional - React Emoji Picker)
⏸️ Message delete option (len vlastné správy)
⏸️ "Load more" pre staršie správy (pagination)
⏸️ Empty state ("Začnite konverzáciu...")
⏸️ Loading skeleton pre načítavanie správ
⏸️ Error handling (offline, failed send)
⏸️ Responzívny dizajn (mobile drawer)
### Výsledné funkcie:
⏸️ Chat funguje
⏸️ Real-time updates
⏸️ Len pre účastníkov
⏸️ Message history
---
## US-017: AI Chatbot pre support
**Status:** 📋 PLANNED
Ako používateľ
chcem sa opýtať AI na otázky o platforme
aby som rýchlo našiel odpovede na moje otázky o platforme
**Vývojár:** -
### Tasky:
### Backend - AI Infrastructure
⏸️ API: POST /api/ai/support-chat
⏸️ OpenAI Assistants API integration
⏸️ API rate limiting (10 requests/day pre free users)
⏸️ Token usage tracking a cost monitoring
⏸️ Error handling a fallback responses
⏸️ API: GET /api/ai/chat-history (pre daného používateľa)
⏸️ API: DELETE /api/ai/chat-history (vymazanie histórie)
### RAG Setup (Retrieval Augmented Generation)
⏸️ Pinecone/Supabase Vector database setup
⏸️ Knowledge base creation (FAQ dokumenty)
⏸️ Platform guide embeddings (ako používať features)
⏸️ FAQ dokumenty embeddings
⏸️ Vector search implementation
⏸️ Context injection do AI promptu
⏸️ Relevance scoring a filtering
### Context-Aware Features
⏸️ Current page detection (URL tracking)
⏸️ User profile info injection (ak prihlásený)
⏸️ Recent user actions tracking (last 5 actions)
⏸️ Dynamic prompt construction based on context
⏸️ Session-based conversation memory
### Frontend - Chat Widget
⏸️ Floating chat button (bottom right, sticky)
⏸️ Badge notification (nová odpoveď)
⏸️ Chat window komponenta (minimize/maximize/close)
⏸️ Chat header s titulom a actions
⏸️ Message list (user + AI bubbles)
⏸️ Message input field
⏸️ Send button
⏸️ Loading indicator (typing dots)
⏸️ Scroll to bottom button
### Quick Actions
⏸️ Quick action buttons: "Ako vytvoriť aktivitu?"
⏸️ Quick action buttons: "Ako sa prihlásiť?"
⏸️ Quick action buttons: "Ako nájsť aktivity?"
⏸️ Quick action buttons: "Ako upraviť profil?"
⏸️ Dynamic suggestions based on page
### Advanced Features
⏸️ Chat history persistence (conversation_id v localStorage)
⏸️ "Nová konverzácia" button (reset context)
⏸️ Escalation to human support button
⏸️ Human support form (meno, email, správa)
⏸️ Multilingual support (SK/EN auto-detection)
⏸️ Copy response button
⏸️ Thumbs up/down feedback
⏸️ "Bolo to užitočné?" feedback
### Analytics
⏸️ Common questions tracking (analytics dashboard)
⏸️ User satisfaction metrics (feedback aggregation)
⏸️ Response time monitoring
⏸️ Escalation rate tracking
⏸️ Most helpful answers identification
### UX Polish
⏸️ Smooth animations (open/close, messages)
⏸️ Typing indicator when AI is responding
⏸️ Error states ("Niečo sa pokazilo, skúste znova")
⏸️ Offline detection a warning
⏸️ Mobile responsive design
⏸️ Keyboard shortcuts (ESC to close)
⏸️ Welcome message on first open
### Výsledné funkcie:
⏸️ AI chatbot funguje
⏸️ RAG s knowledge base
⏸️ Context-aware answers
⏸️ Chat history
## US-018: AI Matchmaking pre hráčov
**Status:** 📋 PLANNED
Ako používateľ
chcem aby AI našlo kompatibilných spoluhráčov
aby som hral s ľuďmi na mojej úrovni
**Vývojár:** -
### Tasky:
### Backend - Database & Models
⏸️ Prisma schema: MatchScore model (user1_id, user2_id, score, factors)
⏸️ Prisma schema: rozšírenie User (playStyle, preferredTimes, skillLevels)
⏸️ Database indexes pre rýchle vyhľadávanie
⏸️ Cache layer pre match scores (Redis - optional)
### Compatibility Algorithm
⏸️ Skill level matching algorithm (weight: 25%)
⏸️ Play style preferences matching (competitive/casual) (weight: 20%)
⏸️ Age group similarity calculation (weight: 15%)
⏸️ Location proximity (Haversine distance) (weight: 20%)
⏸️ Schedule compatibility analysis (weight: 10%)
⏸️ Past activity ratings correlation (weight: 10%)
⏸️ Sport preferences overlap
⏸️ Final score calculation (weighted sum 0-100%)
### AI Integration
⏸️ OpenAI embeddings generation pre user profiles
⏸️ Vector similarity search (cosine similarity)
⏸️ Embedding storage (Pinecone/Supabase Vector)
⏸️ Batch embedding generation (pre existing users)
⏸️ Incremental embedding updates (pri zmene profilu)
⏸️ API: POST /api/ai/match-users
### Backend APIs
⏸️ API: GET /api/users/matches (top matches pre používateľa)
⏸️ API: GET /api/activities/[id]/suggested-users (pre danú aktivitu)
⏸️ API: POST /api/matches/[userId]/invite (pozvať matched usera)
⏸️ Match score caching (24h refresh)
⏸️ Pagination pre match results
⏸️ Filtering options (min score, max distance)
### Frontend - Match Discovery
⏸️ "Nájdi mi spoluhráča" feature page (/find-partners)
⏸️ Match score zobrazenie (1-100% progress bar + badge)
⏸️ Match card komponenta (avatar, meno, score, factors)
⏸️ Match explanation tooltip: "Podobná úroveň, blízka lokalita..."
⏸️ "Perfect match" badge (90%+ score) - special styling
⏸️ "Good match" badge (70-89%)
⏸️ Skill level indicators (beginner/intermediate/advanced)
### Frontend - Activity Integration
⏸️ Suggested users section na activity detail
⏸️ "Odporúčaní spoluhráči" widget (top 3)
⏸️ Invite matched user button
⏸️ Invite modal (personalizovaná správa)
⏸️ Toast notifikácia po odoslaní pozvánky
### Match Breakdown UI
⏸️ Expandable match details (klik na match card)
⏸️ Factor breakdown visualization:
- ⏸️ Skill level match (progress bar)
- ⏸️ Location proximity (distance in km)
- ⏸️ Schedule compatibility (calendar icon)
- ⏸️ Play style match (competitive/casual)
- ⏸️ Common sports (badge list)
⏸️ "Prečo sme kompatibilní" text explanation (AI-generated)
### Email Digest
⏸️ Weekly "Best matches" email template
⏸️ Email service integration (SendGrid/Resend)
⏸️ Cron job: weekly match calculation a email send
⏸️ Top 5 matches v emaili
⏸️ CTA button: "Pozri všetky matched"
⏸️ Unsubscribe option
### User Preferences
⏸️ Match preferences page (/profile/match-preferences)
⏸️ Toggle: enable/disable matchmaking
⏸️ Max distance slider (5-50 km)
⏸️ Preferred age range
⏸️ Play style preference (competitive/casual/both)
⏸️ Notification frequency (instant/weekly/never)
### Analytics & Optimization
⏸️ Match success tracking (koľko invites accepted)
⏸️ Algorithm performance monitoring
⏸️ A/B testing framework (different weight combinations)
⏸️ User feedback collection ("Bol toto dobrý match?")
### Výsledné funkcie:
⏸️ Matchmaking algorithm
⏸️ Compatibility scores
⏸️ User suggestions
⏸️ Weekly digest
---
## Legenda
- ✅ Hotové (Completed)