docs: update documentation with recent features
- Update README.md with tier system and recent features - Add 3-tier account system (BASIC/SUPPORTER/COMFORT) to docs - Document fairness algorithm and dual buffer system - Add clickable usernames and country flags features - Update test count to 285/286 passing (99.7%) - Update database schema documentation with tier fields - Update all last modified dates to 2025-11-29
This commit is contained in:
34
README.md
34
README.md
@@ -16,17 +16,19 @@ Web application (PWA) for the dance community enabling matchmaking, chat, and vi
|
||||
**User Profiles:**
|
||||
- ✅ **User Profiles** - profile editing (first name, last name, WSDC ID)
|
||||
- ✅ **Social Media Links** - YouTube, Instagram, Facebook, TikTok
|
||||
- ✅ **Location** - country (dropdown with 195 countries) and city
|
||||
- ✅ **Public Profiles** - visible to other logged-in users at /{username}
|
||||
- ✅ **Location** - country (dropdown with 195 countries with flags) and city
|
||||
- ✅ **Public Profiles** - visible to other logged-in users at /@{username}
|
||||
- ✅ **Profile Statistics** - number of matches, average rating, number of reviews
|
||||
- ✅ **Clickable Usernames** - usernames in chat are clickable links to public profiles
|
||||
|
||||
**Events & Chat:**
|
||||
- ✅ **Event List** - browse dance events from worldsdc.com
|
||||
- ✅ **Event Participation Tracking** - automatic saving of joined events
|
||||
- ✅ **Real-time Event Chat** - Socket.IO chat for event participants
|
||||
- ✅ **Real-time Event Chat** - Socket.IO chat for event participants with country flags
|
||||
- ✅ **Active Users Sidebar** - list of online users in the event
|
||||
- ✅ **Message History** - message persistence in database
|
||||
- ✅ **Infinite Scroll** - loading older messages
|
||||
- ✅ **Competitor Numbers** - bib number display in event chat
|
||||
|
||||
**Matchmaking & Private Chat:**
|
||||
- ✅ **Match Requests** - send and accept match requests with real-time notifications
|
||||
@@ -67,7 +69,16 @@ Web application (PWA) for the dance community enabling matchmaking, chat, and vi
|
||||
- ✅ **Dashboard** - centralized landing page with active events, matches, requests
|
||||
- ✅ **Online Count** - real-time users in event chat
|
||||
- ✅ **Unread Count** - unread message badges per match
|
||||
- ✅ **Recording Matching** - auto-assign recorders for competition heats
|
||||
- ✅ **Mobile-first Design** - responsive chat layout with page titles on mobile
|
||||
|
||||
**Auto-matching & Account Tiers:**
|
||||
- ✅ **Smart Recording Matching** - auto-assign recorders for competition heats with collision detection
|
||||
- ✅ **3-Tier Account System** - BASIC (free), SUPPORTER, COMFORT tiers with fairness-based assignment
|
||||
- ✅ **Fairness Algorithm** - karma tracking (recordingsDone vs recordingsReceived) for balanced workload
|
||||
- ✅ **Dual Buffer System** - prep time before and rest time after dancing (no buffer for recording)
|
||||
- ✅ **Tier Penalties** - SUPPORTER (-10 fairness), COMFORT (-50 fairness) for reduced recording frequency
|
||||
- ✅ **Event-specific Upgrades** - accountTierOverride for temporary tier boosts (e.g., Comfort Pass)
|
||||
- ✅ **Multi-criteria Sorting** - Location > Fairness > Load balancing priority
|
||||
- ✅ **Competitor Numbers** - bib number support for events
|
||||
|
||||
**Security & PWA (All Implemented):**
|
||||
@@ -262,12 +273,14 @@ docker compose --profile dev up --build
|
||||
- Password Reset: reset_token, reset_token_expiry
|
||||
- Social: youtube_url, instagram_url, facebook_url, tiktok_url
|
||||
- Location: country, city
|
||||
- Account Tiers: account_tier (BASIC/SUPPORTER/COMFORT), recordings_done, recordings_received
|
||||
|
||||
2. **events** - dance events
|
||||
- id, slug (unique), name, location, start_date, end_date, description, worldsdc_id, participants_count
|
||||
|
||||
3. **event_participants** - event participants (many-to-many)
|
||||
- id, user_id, event_id, joined_at
|
||||
- id, user_id, event_id, joined_at, recorder_opt_out, competitor_number
|
||||
- account_tier_override (optional event-specific tier upgrade)
|
||||
|
||||
4. **chat_rooms** - chat rooms
|
||||
- id, event_id, type (event/private), created_at
|
||||
@@ -468,14 +481,15 @@ REPL specifics:
|
||||
|
||||
## 📊 Test Coverage
|
||||
|
||||
**Backend: 73% overall coverage** (286/286 tests passing - 100%)
|
||||
**Backend: 73% overall coverage** (285/286 tests passing - 99.7%)
|
||||
- **Matching Algorithm**: 30/30 tests passing (unit tests for collision detection, buffers, tier system)
|
||||
- **WebRTC Signaling**: 7/7 tests passing (offer/answer/ICE relay, authorization)
|
||||
- **Auth Controllers**: Comprehensive coverage
|
||||
- **Events API**: Full test suite
|
||||
- **Matches API**: Full CRUD tests
|
||||
- **Dashboard API**: 12 tests passing
|
||||
- **Socket.IO**: Full WebRTC + chat coverage
|
||||
- **Test Isolation**: Fixed with unique test data per suite (100% passing)
|
||||
- **Socket.IO**: Full WebRTC + chat coverage (1 flaky timeout test)
|
||||
- **Test Isolation**: Fixed with unique test data per suite
|
||||
|
||||
**Frontend: Test files ready** (requires test runner setup)
|
||||
- WebRTC detection utility tests
|
||||
@@ -594,6 +608,6 @@ TBD
|
||||
|
||||
---
|
||||
|
||||
**Current Status:** MVP Complete ✅ | 286 tests passing | Ready for Production Deployment
|
||||
**Current Status:** MVP Complete ✅ | 285/286 tests passing (99.7%) | Ready for Production Deployment
|
||||
|
||||
**Last Updated:** 2025-11-23
|
||||
**Last Updated:** 2025-11-29
|
||||
|
||||
Reference in New Issue
Block a user