docs: update documentation for Phase 2.5 completion and Phase 3 start
Update README.md: - Add landing page to features - Update test coverage section (43% backend, 116 tests passing) - Add WebRTC tests information (7 tests passing) - Update project structure (HomePage, hooks, utils, tests) - Add STUN servers to WebRTC features - Remove STUN/TURN and server upload fallback from Next Up - Update roadmap to Phase 3 in progress - Update test flow with landing page - Update progress to ~80% Update SESSION_CONTEXT.md: - Current phase: Phase 3 (MVP Finalization) in progress - Add landing page and WebRTC tests to What Works Now - Update What's Missing (remove STUN, add coverage improvement) - Add HomePage to routes and key files - Add useWebRTC, webrtcDetection, test files to key files - Update socket.js description with WebRTC signaling - Update final status with all completed phases - Update progress and date
This commit is contained in:
112
README.md
112
README.md
@@ -50,18 +50,24 @@ Web application (PWA) for the dance community enabling matchmaking, chat, and vi
|
|||||||
- ✅ **E2E Encryption** - DTLS encryption (native WebRTC)
|
- ✅ **E2E Encryption** - DTLS encryption (native WebRTC)
|
||||||
- ✅ **Auto Download** - automatic file download on receiver side
|
- ✅ **Auto Download** - automatic file download on receiver side
|
||||||
|
|
||||||
|
**Landing Page:**
|
||||||
|
- ✅ **Homepage** - professional landing page with hero section, features showcase, and CTAs
|
||||||
|
- ✅ **Public Access** - accessible to non-logged users with links to register/login
|
||||||
|
- ✅ **Responsive Design** - mobile-friendly with gradient backgrounds
|
||||||
|
|
||||||
**Backend & Infrastructure:**
|
**Backend & Infrastructure:**
|
||||||
- ✅ **PostgreSQL Database** - 7 tables with relations (Prisma ORM)
|
- ✅ **PostgreSQL Database** - 7 tables with relations (Prisma ORM)
|
||||||
- ✅ **RESTful API** - Express.js backend with validation
|
- ✅ **RESTful API** - Express.js backend with validation
|
||||||
- ✅ **WebSocket** - Socket.IO for real-time communication
|
- ✅ **WebSocket** - Socket.IO for real-time communication
|
||||||
- ✅ **Docker Compose** - full orchestration (nginx, frontend, backend, PostgreSQL)
|
- ✅ **Docker Compose** - full orchestration (nginx, frontend, backend, PostgreSQL)
|
||||||
- ✅ **Test Coverage** - 81%+ coverage (Jest + Supertest)
|
- ✅ **Test Coverage** - comprehensive test suite for WebRTC, Auth, Events, Matches
|
||||||
|
- ✅ **WebRTC Tests** - full Socket.IO signaling and detection tests (7 tests passing)
|
||||||
|
|
||||||
### 🔜 Next Up
|
### 🔜 Next Up
|
||||||
|
|
||||||
- ⏳ **STUN/TURN Servers** - WebRTC NAT traversal for production
|
|
||||||
- ⏳ **Server Upload Fallback** - alternative when WebRTC blocked
|
|
||||||
- ⏳ **Competition Heats** - complete UI integration and real-time updates
|
- ⏳ **Competition Heats** - complete UI integration and real-time updates
|
||||||
|
- ⏳ **PWA Features** - manifest, service worker, offline support
|
||||||
|
- ⏳ **Security Hardening** - CORS, CSRF, Helmet.js, CSP
|
||||||
|
|
||||||
## 🛠️ Tech Stack
|
## 🛠️ Tech Stack
|
||||||
|
|
||||||
@@ -104,9 +110,11 @@ spotlightcam/
|
|||||||
│ │ ├── components/ # React components
|
│ │ ├── components/ # React components
|
||||||
│ │ │ ├── common/ # Shared components, PasswordStrength, VerificationBanner
|
│ │ │ ├── common/ # Shared components, PasswordStrength, VerificationBanner
|
||||||
│ │ │ ├── chat/ # Chat components
|
│ │ │ ├── chat/ # Chat components
|
||||||
│ │ │ ├── video/ # WebRTC video transfer (mockup)
|
│ │ │ ├── video/ # WebRTC components (WebRTCWarning)
|
||||||
│ │ │ └── layout/ # Navbar, Layout
|
│ │ │ ├── layout/ # Navbar, Layout
|
||||||
|
│ │ │ └── __tests__/ # Component tests (WebRTCWarning)
|
||||||
│ │ ├── pages/ # Application pages
|
│ │ ├── pages/ # Application pages
|
||||||
|
│ │ │ ├── HomePage.jsx # Landing page with hero & features
|
||||||
│ │ │ ├── LoginPage.jsx
|
│ │ │ ├── LoginPage.jsx
|
||||||
│ │ │ ├── RegisterPage.jsx # Two-step registration with WSDC lookup
|
│ │ │ ├── RegisterPage.jsx # Two-step registration with WSDC lookup
|
||||||
│ │ │ ├── VerifyEmailPage.jsx # Email verification (link + PIN)
|
│ │ │ ├── VerifyEmailPage.jsx # Email verification (link + PIN)
|
||||||
@@ -116,9 +124,12 @@ spotlightcam/
|
|||||||
│ │ │ ├── PublicProfilePage.jsx # View other user's profile
|
│ │ │ ├── PublicProfilePage.jsx # View other user's profile
|
||||||
│ │ │ ├── EventsPage.jsx # Event list with real API
|
│ │ │ ├── EventsPage.jsx # Event list with real API
|
||||||
│ │ │ ├── EventChatPage.jsx # Real-time event chat
|
│ │ │ ├── EventChatPage.jsx # Real-time event chat
|
||||||
│ │ │ ├── MatchChatPage.jsx # Private chat + WebRTC mockup
|
│ │ │ ├── MatchChatPage.jsx # Private chat + WebRTC P2P transfer
|
||||||
│ │ │ ├── RatePartnerPage.jsx # Rate partner after collaboration
|
│ │ │ ├── RatePartnerPage.jsx # Rate partner after collaboration
|
||||||
│ │ │ └── HistoryPage.jsx # Match history
|
│ │ │ └── HistoryPage.jsx # Match history
|
||||||
|
│ │ ├── hooks/ # Custom hooks (useWebRTC)
|
||||||
|
│ │ ├── utils/ # Utilities (webrtcDetection)
|
||||||
|
│ │ │ └── __tests__/ # Utility tests (webrtcDetection)
|
||||||
│ │ ├── contexts/ # AuthContext (JWT integration)
|
│ │ ├── contexts/ # AuthContext (JWT integration)
|
||||||
│ │ ├── services/ # API client, Socket.IO client
|
│ │ ├── services/ # API client, Socket.IO client
|
||||||
│ │ ├── data/ # Static data (countries list)
|
│ │ ├── data/ # Static data (countries list)
|
||||||
@@ -131,9 +142,14 @@ spotlightcam/
|
|||||||
│ │ ├── controllers/ # Auth, users, events, WSDC
|
│ │ ├── controllers/ # Auth, users, events, WSDC
|
||||||
│ │ ├── middleware/ # Auth, validation, error handling
|
│ │ ├── middleware/ # Auth, validation, error handling
|
||||||
│ │ ├── routes/ # API routes
|
│ │ ├── routes/ # API routes
|
||||||
│ │ ├── socket/ # Socket.IO server (event/match rooms)
|
│ │ ├── socket/ # Socket.IO server (event/match rooms, WebRTC signaling)
|
||||||
│ │ ├── utils/ # Auth utils, DB, email service (AWS SES)
|
│ │ ├── utils/ # Auth utils, DB, email service (AWS SES)
|
||||||
│ │ └── __tests__/ # Jest unit tests (81%+ coverage)
|
│ │ └── __tests__/ # Jest unit tests
|
||||||
|
│ │ │ ├── socket-webrtc.test.js # WebRTC signaling tests (7 tests)
|
||||||
|
│ │ │ ├── auth.test.js # Authentication tests
|
||||||
|
│ │ │ ├── events.test.js # Events API tests
|
||||||
|
│ │ │ ├── matches.test.js # Matches API tests
|
||||||
|
│ │ │ └── ... # Other test suites
|
||||||
│ ├── prisma/
|
│ ├── prisma/
|
||||||
│ │ ├── schema.prisma # Database schema (7 tables)
|
│ │ ├── schema.prisma # Database schema (7 tables)
|
||||||
│ │ ├── migrations/ # Database migrations
|
│ │ ├── migrations/ # Database migrations
|
||||||
@@ -278,45 +294,52 @@ Adds:
|
|||||||
|
|
||||||
### Test Flow:
|
### Test Flow:
|
||||||
|
|
||||||
1. **Registration with WSDC** (http://localhost:8080/register)
|
1. **Landing Page** (http://localhost:8080/)
|
||||||
|
- View professional landing page with hero section
|
||||||
|
- Explore features showcase and how-it-works section
|
||||||
|
- Click "Get Started" to register or "Sign in" to login
|
||||||
|
|
||||||
|
2. **Registration with WSDC** (http://localhost:8080/register)
|
||||||
- Optional: provide WSDC ID (e.g., 12345) for auto-fill
|
- Optional: provide WSDC ID (e.g., 12345) for auto-fill
|
||||||
- Complete registration form
|
- Complete registration form
|
||||||
- You'll receive verification email (check AWS SES sandbox)
|
- You'll receive verification email (check AWS SES sandbox)
|
||||||
|
|
||||||
2. **Email Verification** (http://localhost:8080/verify-email)
|
3. **Email Verification** (http://localhost:8080/verify-email)
|
||||||
- Click link from email OR enter 6-digit PIN code
|
- Click link from email OR enter 6-digit PIN code
|
||||||
- Email will be verified
|
- Email will be verified
|
||||||
|
|
||||||
3. **Login** (http://localhost:8080/login)
|
4. **Login** (http://localhost:8080/login)
|
||||||
- Email: john@example.com
|
- Email: john@example.com
|
||||||
- Password: password123
|
- Password: password123
|
||||||
|
|
||||||
4. **Profile Editing** (http://localhost:8080/profile)
|
5. **Profile Editing** (http://localhost:8080/profile)
|
||||||
- Add social media links (Instagram, YouTube, etc.)
|
- Add social media links (Instagram, YouTube, etc.)
|
||||||
- Select country from list of 195 countries
|
- Select country from list of 195 countries
|
||||||
- Enter city
|
- Enter city
|
||||||
- Edit WSDC ID, first name, last name
|
- Edit WSDC ID, first name, last name
|
||||||
|
|
||||||
5. **Event Selection** (http://localhost:8080/events)
|
6. **Event Selection** (http://localhost:8080/events)
|
||||||
- View event list (joined events appear at top)
|
- View event list (joined events appear at top)
|
||||||
- Select event (e.g., "Warsaw Dance Festival 2025")
|
- Select event (e.g., "Warsaw Dance Festival 2025")
|
||||||
- Click "Join chat" or "Open chat" (if already joined)
|
- Click "Join chat" or "Open chat" (if already joined)
|
||||||
|
|
||||||
6. **Event Chat**
|
7. **Event Chat**
|
||||||
- Real-time chat with Socket.IO
|
- Real-time chat with Socket.IO
|
||||||
- Active users list on the right side
|
- Active users list on the right side
|
||||||
- Click "+" icon next to user to connect
|
- Click "+" icon next to user to connect
|
||||||
- You'll be redirected to private 1:1 chat
|
- You'll be redirected to private 1:1 chat
|
||||||
|
|
||||||
7. **1:1 Chat - WebRTC P2P File Transfer** 🔥
|
8. **1:1 Chat - WebRTC P2P File Transfer** 🔥
|
||||||
- See partner's profile at top (click username to view public profile)
|
- See partner's profile at top (click username to view public profile)
|
||||||
- WebRTC connection status (disconnected/connecting/connected)
|
- WebRTC connection status (disconnected/connecting/connected)
|
||||||
- **Sending video via WebRTC:**
|
- **Sending video via WebRTC:**
|
||||||
- Click "Send video (WebRTC)"
|
- Click "Send video (WebRTC)"
|
||||||
- Select video file from disk
|
- Select video file from disk
|
||||||
- Real P2P transfer via RTCDataChannel (supports files up to 700MB+)
|
- Real P2P transfer via RTCDataChannel with STUN servers for NAT traversal
|
||||||
- See real-time progress bar
|
- Supports files up to 700MB+ tested successfully
|
||||||
|
- See real-time progress bar (16KB chunking)
|
||||||
- Receiver automatically downloads the file
|
- Receiver automatically downloads the file
|
||||||
|
- End-to-end encryption via DTLS (native WebRTC)
|
||||||
- **WebRTC Detection:**
|
- **WebRTC Detection:**
|
||||||
- Automatic detection if WebRTC is blocked
|
- Automatic detection if WebRTC is blocked
|
||||||
- User-friendly warning with fix suggestions
|
- User-friendly warning with fix suggestions
|
||||||
@@ -326,18 +349,18 @@ Adds:
|
|||||||
- Paste video URL (Google Drive, Dropbox, etc.)
|
- Paste video URL (Google Drive, Dropbox, etc.)
|
||||||
- Alternative when WebRTC blocked (Opera, VPNs, privacy settings)
|
- Alternative when WebRTC blocked (Opera, VPNs, privacy settings)
|
||||||
|
|
||||||
8. **Rate Partner** (coming soon - Matches & Ratings API)
|
9. **Rate Partner**
|
||||||
- Click "Finish and rate"
|
- Click "Finish and rate"
|
||||||
- Select rating (1-5 stars)
|
- Select rating (1-5 stars)
|
||||||
- Add comment
|
- Add comment
|
||||||
- Mark if you want to collaborate again
|
- Mark if you want to collaborate again
|
||||||
|
|
||||||
9. **Collaboration History** (http://localhost:8080/history)
|
10. **Collaboration History** (http://localhost:8080/history)
|
||||||
- See list of matches
|
- See list of matches
|
||||||
- See received ratings
|
- See received ratings
|
||||||
- See statistics
|
- See statistics
|
||||||
|
|
||||||
10. **Public Profiles**
|
11. **Public Profiles**
|
||||||
- Click on another user's username
|
- Click on another user's username
|
||||||
- View profile: avatar, location, social media, statistics
|
- View profile: avatar, location, social media, statistics
|
||||||
|
|
||||||
@@ -387,15 +410,29 @@ Adds:
|
|||||||
|
|
||||||
## 📊 Test Coverage
|
## 📊 Test Coverage
|
||||||
|
|
||||||
**Backend: 81%+ coverage**
|
**Backend: ~43% overall coverage** (116 tests passing)
|
||||||
- Auth controllers: 78%
|
- **WebRTC Signaling**: 7/7 tests passing (offer/answer/ICE relay, authorization)
|
||||||
- Socket.IO module: 89%
|
- **Auth Controllers**: 82.9% coverage
|
||||||
- Jest + Supertest
|
- **Events API**: Comprehensive tests
|
||||||
|
- **Matches API**: Full CRUD tests
|
||||||
|
- **Socket.IO**: 42.4% coverage (WebRTC + chat)
|
||||||
|
|
||||||
|
**Frontend: Test files ready** (requires test runner setup)
|
||||||
|
- WebRTC detection utility tests
|
||||||
|
- WebRTC warning component tests
|
||||||
|
|
||||||
|
**Coverage gaps** (priority areas):
|
||||||
|
- Routes: events.js (8.98%), matches.js (8.22%), users.js (43%)
|
||||||
|
- Controllers: user.js (8.19%)
|
||||||
|
- Utils: sanitize.js (31.81%)
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Run tests
|
# Run all backend tests
|
||||||
docker compose exec backend npm test
|
docker compose exec backend npm test
|
||||||
|
|
||||||
|
# Run specific test suite
|
||||||
|
docker compose exec backend npm test -- socket-webrtc.test.js
|
||||||
|
|
||||||
# Coverage report
|
# Coverage report
|
||||||
docker compose exec backend npm run test:coverage
|
docker compose exec backend npm run test:coverage
|
||||||
```
|
```
|
||||||
@@ -434,17 +471,22 @@ docker compose exec backend npm run test:coverage
|
|||||||
### ✅ Phase 2.5: WebRTC P2P File Transfer (COMPLETED)
|
### ✅ Phase 2.5: WebRTC P2P File Transfer (COMPLETED)
|
||||||
- WebRTC signaling (SDP/ICE exchange via Socket.IO)
|
- WebRTC signaling (SDP/ICE exchange via Socket.IO)
|
||||||
- P2P file transfer via RTCDataChannel (16KB chunking)
|
- P2P file transfer via RTCDataChannel (16KB chunking)
|
||||||
|
- STUN servers for NAT traversal (production-ready)
|
||||||
- WebRTC capability detection (browser/network compatibility)
|
- WebRTC capability detection (browser/network compatibility)
|
||||||
- User-friendly fallback UX when WebRTC blocked
|
- User-friendly fallback UX when WebRTC blocked
|
||||||
- Tested up to 700MB file transfers
|
- Tested up to 700MB file transfers
|
||||||
- E2E encryption (DTLS)
|
- E2E encryption (DTLS)
|
||||||
|
- Comprehensive test suite (7 backend tests passing)
|
||||||
|
- Professional landing page with hero section
|
||||||
|
|
||||||
### ⏳ Phase 3: MVP Finalization (PLANNED)
|
### ⏳ Phase 3: MVP Finalization (IN PROGRESS)
|
||||||
- Security hardening
|
- ✅ Landing page (completed)
|
||||||
- Integration & E2E tests
|
- ✅ WebRTC tests (completed)
|
||||||
- PWA features (manifest, service worker)
|
- ⏳ Security hardening (CORS, CSRF, Helmet.js, CSP)
|
||||||
- Production deployment
|
- ⏳ Integration & E2E tests
|
||||||
- Monitoring & logging
|
- ⏳ PWA features (manifest, service worker)
|
||||||
|
- ⏳ Production deployment
|
||||||
|
- ⏳ Monitoring & logging
|
||||||
|
|
||||||
### ⏳ Phase 4: Extensions (FUTURE)
|
### ⏳ Phase 4: Extensions (FUTURE)
|
||||||
- User badges & trust system
|
- User badges & trust system
|
||||||
@@ -489,6 +531,6 @@ TBD
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
**Current Status:** Phase 2.5 (WebRTC) ✅ Completed | Phase 3 (MVP) ⏳ Next | Progress: ~78% overall
|
**Current Status:** Phase 2.5 (WebRTC) ✅ Completed | Phase 3 (MVP) ⏳ In Progress | Progress: ~80% overall
|
||||||
|
|
||||||
**Last Updated:** 2025-11-15
|
**Last Updated:** 2025-11-15
|
||||||
|
|||||||
@@ -16,12 +16,13 @@
|
|||||||
## Current Status
|
## Current Status
|
||||||
|
|
||||||
**Phase:** 2.5 (WebRTC P2P File Transfer) - ✅ COMPLETED
|
**Phase:** 2.5 (WebRTC P2P File Transfer) - ✅ COMPLETED
|
||||||
|
**Current Phase:** 3 (MVP Finalization) - ⏳ IN PROGRESS
|
||||||
**Previous Phases:**
|
**Previous Phases:**
|
||||||
- Phase 2 (Matches & Ratings API) - ✅ COMPLETED
|
- Phase 2 (Matches & Ratings API) - ✅ COMPLETED
|
||||||
- Phase 1.6 (Competition Heats) - ✅ COMPLETED
|
- Phase 1.6 (Competition Heats) - ✅ COMPLETED
|
||||||
- Phase 1.5 (Email & WSDC & Profiles & Security & QR Check-in) - ✅ COMPLETED
|
- Phase 1.5 (Email & WSDC & Profiles & Security & QR Check-in) - ✅ COMPLETED
|
||||||
**Progress:** ~78% overall
|
**Progress:** ~80% overall
|
||||||
**Next Goal:** Phase 3 - MVP Finalization (Security hardening, PWA, Production deployment)
|
**Next Goal:** Security hardening, PWA features, Production deployment
|
||||||
|
|
||||||
### What Works Now
|
### What Works Now
|
||||||
- ✅ Docker Compose (nginx:8080 + frontend + backend + PostgreSQL)
|
- ✅ Docker Compose (nginx:8080 + frontend + backend + PostgreSQL)
|
||||||
@@ -43,14 +44,17 @@
|
|||||||
- ✅ **WebRTC signaling (SDP/ICE exchange via Socket.IO) - Phase 2.5**
|
- ✅ **WebRTC signaling (SDP/ICE exchange via Socket.IO) - Phase 2.5**
|
||||||
- ✅ **WebRTC P2P file transfer (RTCDataChannel, 16KB chunks, up to 700MB tested) - Phase 2.5**
|
- ✅ **WebRTC P2P file transfer (RTCDataChannel, 16KB chunks, up to 700MB tested) - Phase 2.5**
|
||||||
- ✅ **WebRTC detection & fallback UX (auto-detect browser capabilities) - Phase 2.5**
|
- ✅ **WebRTC detection & fallback UX (auto-detect browser capabilities) - Phase 2.5**
|
||||||
|
- ✅ **STUN servers for NAT traversal (production-ready) - Phase 2.5**
|
||||||
|
- ✅ **Landing page with hero section and features showcase - Phase 3**
|
||||||
|
- ✅ **WebRTC test suite (7 backend tests passing) - Phase 3**
|
||||||
- ✅ Real-time chat (Socket.IO for event & match rooms)
|
- ✅ Real-time chat (Socket.IO for event & match rooms)
|
||||||
|
|
||||||
### What's Missing
|
### What's Missing
|
||||||
- ⏳ STUN/TURN servers configuration for production (NAT traversal)
|
|
||||||
- ⏳ Server-based upload fallback (when WebRTC blocked)
|
|
||||||
- ⏳ Security hardening (CORS, CSRF, Helmet, CSP)
|
- ⏳ Security hardening (CORS, CSRF, Helmet, CSP)
|
||||||
- ⏳ PWA features (manifest, service worker, offline support)
|
- ⏳ PWA features (manifest, service worker, offline support)
|
||||||
- ⏳ Production deployment & monitoring
|
- ⏳ Production deployment & monitoring
|
||||||
|
- ⏳ Competition heats UI integration improvements
|
||||||
|
- ⏳ Improved test coverage (currently ~43% backend)
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -118,6 +122,7 @@
|
|||||||
## Key Files
|
## Key Files
|
||||||
|
|
||||||
**Frontend:**
|
**Frontend:**
|
||||||
|
- `frontend/src/pages/HomePage.jsx` - **NEW: Landing page with hero section - Phase 3**
|
||||||
- `frontend/src/pages/RegisterPage.jsx` - Two-step registration (WSDC lookup + form)
|
- `frontend/src/pages/RegisterPage.jsx` - Two-step registration (WSDC lookup + form)
|
||||||
- `frontend/src/pages/VerifyEmailPage.jsx` - Email verification (link + code)
|
- `frontend/src/pages/VerifyEmailPage.jsx` - Email verification (link + code)
|
||||||
- `frontend/src/pages/ForgotPasswordPage.jsx` - Request password reset
|
- `frontend/src/pages/ForgotPasswordPage.jsx` - Request password reset
|
||||||
@@ -128,7 +133,10 @@
|
|||||||
- `frontend/src/pages/EventChatPage.jsx` - **UPDATED: Heats integration (banner, badges, filtering) - Phase 1.6**
|
- `frontend/src/pages/EventChatPage.jsx` - **UPDATED: Heats integration (banner, badges, filtering) - Phase 1.6**
|
||||||
- `frontend/src/pages/EventDetailsPage.jsx` - **NEW: QR code display, participant list - Phase 1.5**
|
- `frontend/src/pages/EventDetailsPage.jsx` - **NEW: QR code display, participant list - Phase 1.5**
|
||||||
- `frontend/src/pages/EventCheckinPage.jsx` - **NEW: Check-in confirmation page - Phase 1.5**
|
- `frontend/src/pages/EventCheckinPage.jsx` - **NEW: Check-in confirmation page - Phase 1.5**
|
||||||
- `frontend/src/pages/MatchChatPage.jsx` - Private chat + WebRTC mockup
|
- `frontend/src/pages/MatchChatPage.jsx` - **UPDATED: WebRTC P2P file transfer - Phase 2.5**
|
||||||
|
- `frontend/src/hooks/useWebRTC.js` - **NEW: WebRTC hook (RTCPeerConnection, RTCDataChannel) - Phase 2.5**
|
||||||
|
- `frontend/src/utils/webrtcDetection.js` - **NEW: WebRTC browser detection - Phase 2.5**
|
||||||
|
- `frontend/src/components/WebRTCWarning.jsx` - **NEW: WebRTC blocked warning component - Phase 2.5**
|
||||||
- `frontend/src/components/heats/HeatsBanner.jsx` - **NEW: Heats declaration form component - Phase 1.6**
|
- `frontend/src/components/heats/HeatsBanner.jsx` - **NEW: Heats declaration form component - Phase 1.6**
|
||||||
- `frontend/src/components/common/PasswordStrengthIndicator.jsx` - Password strength indicator
|
- `frontend/src/components/common/PasswordStrengthIndicator.jsx` - Password strength indicator
|
||||||
- `frontend/src/components/common/VerificationBanner.jsx` - Email verification banner
|
- `frontend/src/components/common/VerificationBanner.jsx` - Email verification banner
|
||||||
@@ -136,6 +144,8 @@
|
|||||||
- `frontend/src/services/api.js` - **UPDATED: Heats API (divisionsAPI, competitionTypesAPI, heatsAPI) - Phase 1.6**
|
- `frontend/src/services/api.js` - **UPDATED: Heats API (divisionsAPI, competitionTypesAPI, heatsAPI) - Phase 1.6**
|
||||||
- `frontend/src/services/socket.js` - Socket.IO client connection manager
|
- `frontend/src/services/socket.js` - Socket.IO client connection manager
|
||||||
- `frontend/src/data/countries.js` - **NEW: List of 195 countries - Phase 1.5**
|
- `frontend/src/data/countries.js` - **NEW: List of 195 countries - Phase 1.5**
|
||||||
|
- `frontend/src/utils/__tests__/webrtcDetection.test.js` - **NEW: WebRTC detection tests - Phase 3**
|
||||||
|
- `frontend/src/components/__tests__/WebRTCWarning.test.jsx` - **NEW: WebRTC warning tests - Phase 3**
|
||||||
|
|
||||||
**Backend:**
|
**Backend:**
|
||||||
- `backend/src/controllers/auth.js` - Register, login, email verification, password reset
|
- `backend/src/controllers/auth.js` - Register, login, email verification, password reset
|
||||||
@@ -145,12 +155,16 @@
|
|||||||
- `backend/src/routes/divisions.js` - **NEW: List all divisions - Phase 1.6**
|
- `backend/src/routes/divisions.js` - **NEW: List all divisions - Phase 1.6**
|
||||||
- `backend/src/routes/competitionTypes.js` - **NEW: List all competition types - Phase 1.6**
|
- `backend/src/routes/competitionTypes.js` - **NEW: List all competition types - Phase 1.6**
|
||||||
- `backend/src/routes/users.js` - **UPDATED: Public profile endpoint - Phase 1.5**
|
- `backend/src/routes/users.js` - **UPDATED: Public profile endpoint - Phase 1.5**
|
||||||
- `backend/src/socket/index.js` - **UPDATED: heats_updated broadcast event, getIO export - Phase 1.6**
|
- `backend/src/socket/index.js` - **UPDATED: WebRTC signaling (offer/answer/ICE), heats_updated - Phase 2.5**
|
||||||
- `backend/src/utils/email.js` - AWS SES email service with HTML templates
|
- `backend/src/utils/email.js` - AWS SES email service with HTML templates
|
||||||
- `backend/src/utils/auth.js` - Token generation utilities
|
- `backend/src/utils/auth.js` - Token generation utilities
|
||||||
- `backend/src/middleware/auth.js` - Email verification middleware
|
- `backend/src/middleware/auth.js` - Email verification middleware
|
||||||
- `backend/src/middleware/validators.js` - **UPDATED: Social media URL validation - Phase 1.5**
|
- `backend/src/middleware/validators.js` - **UPDATED: Social media URL validation - Phase 1.5**
|
||||||
- `backend/src/server.js` - Express server with Socket.IO integration
|
- `backend/src/server.js` - Express server with Socket.IO integration
|
||||||
|
- `backend/src/__tests__/socket-webrtc.test.js` - **NEW: WebRTC signaling tests (7 tests) - Phase 3**
|
||||||
|
- `backend/src/__tests__/auth.test.js` - Authentication tests
|
||||||
|
- `backend/src/__tests__/events.test.js` - Events API tests
|
||||||
|
- `backend/src/__tests__/matches.test.js` - Matches API tests
|
||||||
- `backend/prisma/schema.prisma` - **UPDATED: 8 tables (EventCheckinToken added) - Phase 1.5**
|
- `backend/prisma/schema.prisma` - **UPDATED: 8 tables (EventCheckinToken added) - Phase 1.5**
|
||||||
- `backend/prisma/migrations/20251113151534_add_wsdc_and_email_verification/` - Phase 1.5 migration
|
- `backend/prisma/migrations/20251113151534_add_wsdc_and_email_verification/` - Phase 1.5 migration
|
||||||
- `backend/prisma/migrations/20251113202500_add_event_slug/` - **NEW: Event slugs migration - Phase 1.5**
|
- `backend/prisma/migrations/20251113202500_add_event_slug/` - **NEW: Event slugs migration - Phase 1.5**
|
||||||
@@ -330,6 +344,7 @@ RUN apk add --no-cache openssl
|
|||||||
|
|
||||||
## Quick Reference - Frontend Routes
|
## Quick Reference - Frontend Routes
|
||||||
|
|
||||||
|
- `/` - Landing page with hero section, features showcase, CTAs
|
||||||
- `/login` - Login page
|
- `/login` - Login page
|
||||||
- `/register` - Two-step registration (WSDC lookup + form)
|
- `/register` - Two-step registration (WSDC lookup + form)
|
||||||
- `/verify-email` - Email verification (link + PIN code)
|
- `/verify-email` - Email verification (link + PIN code)
|
||||||
@@ -409,7 +424,7 @@ RUN apk add --no-cache openssl
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
**Last Updated:** 2025-11-14
|
**Last Updated:** 2025-11-15
|
||||||
**Phase 1 Status:** ✅ COMPLETED - Backend Foundation (Express + PostgreSQL + JWT + Socket.IO)
|
**Phase 1 Status:** ✅ COMPLETED - Backend Foundation (Express + PostgreSQL + JWT + Socket.IO)
|
||||||
**Phase 1.5 Status:** ✅ COMPLETED - Email Verification & WSDC Integration & User Profiles & Security
|
**Phase 1.5 Status:** ✅ COMPLETED - Email Verification & WSDC Integration & User Profiles & Security
|
||||||
- AWS SES email verification (link + PIN)
|
- AWS SES email verification (link + PIN)
|
||||||
@@ -427,4 +442,20 @@ RUN apk add --no-cache openssl
|
|||||||
- ✅ Frontend: HeatsBanner component for declaration
|
- ✅ Frontend: HeatsBanner component for declaration
|
||||||
- ✅ EventChatPage integration: heat badges, filtering, Edit button
|
- ✅ EventChatPage integration: heat badges, filtering, Edit button
|
||||||
- ✅ Matchmaking disabled for users without declared heats
|
- ✅ Matchmaking disabled for users without declared heats
|
||||||
**Next Phase:** Phase 2 - Core Features (Matches API + Ratings + WebRTC)
|
**Phase 2 Status:** ✅ COMPLETED - Matches & Ratings API
|
||||||
|
- ✅ Matches API (create/accept/list matches with slugs)
|
||||||
|
- ✅ Ratings API (rate partners, 1-5 stars, comments)
|
||||||
|
- ✅ Real-time notifications via Socket.IO
|
||||||
|
**Phase 2.5 Status:** ✅ COMPLETED - WebRTC P2P File Transfer
|
||||||
|
- ✅ WebRTC signaling (SDP/ICE exchange via Socket.IO)
|
||||||
|
- ✅ P2P file transfer (RTCDataChannel, 16KB chunking, 700MB tested)
|
||||||
|
- ✅ STUN servers for NAT traversal
|
||||||
|
- ✅ WebRTC detection & fallback UX
|
||||||
|
- ✅ E2E encryption (DTLS)
|
||||||
|
**Phase 3 Status:** ⏳ IN PROGRESS - MVP Finalization
|
||||||
|
- ✅ Landing page with hero section
|
||||||
|
- ✅ WebRTC test suite (7 backend tests passing)
|
||||||
|
- ⏳ Security hardening (CORS, CSRF, Helmet, CSP)
|
||||||
|
- ⏳ PWA features (manifest, service worker)
|
||||||
|
- ⏳ Production deployment
|
||||||
|
**Next Goal:** Security hardening, PWA features, Production deployment
|
||||||
|
|||||||
Reference in New Issue
Block a user