Files
spotlightcam/docs/TODO.md
2025-11-14 14:43:33 +01:00

7.9 KiB

TODO - spotlight.cam

Active tasks and roadmap - optimized for quick reference


🎯 CURRENT STATUS

Phase: 1.5 (Email & WSDC & Profiles & Security) - COMPLETED Next Phase: 2 (Core Features) - PENDING Progress: ~65% complete

Completed

  • Phase 0: Frontend mockup with all views
  • Phase 1: Backend Foundation
    • Node.js + Express API
    • PostgreSQL database with Prisma ORM
    • JWT authentication (register, login)
    • Socket.IO real-time chat (event & match rooms)
    • Comprehensive test coverage (81%+)
  • Phase 1.5: Email & WSDC & Profiles & Security
    • Email verification (AWS SES with link + PIN)
    • Password reset workflow
    • WSDC API integration (auto-fill registration)
    • User profiles (social media links, location)
    • Public profiles (/{username})
    • Event participation tracking (auto-save joined events)
    • Event security (unique slugs, prevent ID enumeration)
    • QR code event check-in system (physical presence required at venue)

Next Priority

Core Features - Matches API + Ratings + WebRTC Signaling

See: docs/COMPLETED.md for full list of completed tasks


📌 Phase 1: Backend Foundation - COMPLETED

Completed: 2025-11-12 Time Spent: ~14 hours

Step 1: Backend Setup (COMPLETED)

  • Add backend service to docker-compose.yml
  • Initialize Node.js + Express project
  • Create folder structure (routes, controllers, middleware, etc.)
  • Add healthcheck endpoint: GET /api/health
  • Update nginx config to proxy /api/* to backend
  • Unit tests (7 tests passing)

Step 2: PostgreSQL Setup (COMPLETED)

  • Add db service (PostgreSQL 15) to docker-compose.yml
  • Configure volumes for data persistence
  • Prisma ORM implementation
  • Create database schema (6 tables with relations)
  • Add indexes for performance
  • Create seed data (3 events, 2 users, chat rooms)
  • Fix OpenSSL compatibility issue for Prisma

Step 3: Authentication API (COMPLETED)

  • Install dependencies: bcrypt, jsonwebtoken, express-validator
  • Implement password hashing with bcrypt (10 salt rounds)
  • Implement JWT token generation and verification
  • Create endpoints: register, login, /users/me
  • Create auth middleware for protected routes
  • Update frontend AuthContext to use real API
  • Unit tests (30 tests, 78%+ coverage)

Step 4: WebSocket Chat (COMPLETED)

  • Install Socket.IO 4.8.1 on backend
  • Setup Socket.IO server with Express integration
  • JWT authentication for socket connections
  • Event rooms (join/leave/messages/active users)
  • Match rooms (private 1:1 chat)
  • Install socket.io-client on frontend
  • Update EventChatPage with real-time messaging
  • Update MatchChatPage with real-time chat
  • Unit tests (12 tests, 89% coverage for Socket.IO module)

📌 NEXT STEPS - Phase 2: Core Features

Estimated Time: 12-15 hours Priority: HIGH

Step 1: Matches API (3-4h)

  • Create Match controller and routes
  • POST /api/matches - Create match request
  • POST /api/matches/:id/accept - Accept match request
  • GET /api/matches - List user's matches (active, pending, completed)
  • GET /api/matches/:id - Get match details
  • Frontend integration:
    • Match request button in EventChatPage
    • Match notification handling
    • Match acceptance flow
  • Unit tests (match creation, acceptance, validation)

Step 2: Ratings API (2-3h)

  • Create Rating controller and routes
  • POST /api/ratings - Submit rating after collaboration
  • GET /api/users/:id/ratings - Get user's ratings & average
  • GET /api/matches/:id/rating - Check if match already rated
  • Frontend integration:
    • Update RateMatchPage to use real API
    • Display user ratings on profile/active users
  • Validation (1-5 stars, comment length)
  • Unit tests (rating submission, retrieval, validation)

Step 3: WebRTC Signaling (3-4h)

  • Add Socket.IO signaling events:
    • webrtc_offer - Send SDP offer
    • webrtc_answer - Send SDP answer
    • webrtc_ice_candidate - Exchange ICE candidates
  • Frontend WebRTC setup:
    • RTCPeerConnection initialization
    • STUN server configuration
    • Signaling flow implementation
  • Connection state monitoring
  • Unit tests (signaling message exchange)

Step 4: WebRTC File Transfer (4-5h)

  • RTCDataChannel setup (ordered, reliable)
  • File metadata exchange (name, size, type)
  • File chunking implementation (16KB chunks)
  • Progress monitoring (sender & receiver)
  • Error handling & reconnection logic
  • Complete P2P video transfer flow:
    • Select video file
    • Establish P2P connection
    • Transfer file via DataChannel
    • Save file on receiver side
  • Test with various file sizes
  • Fallback: Link sharing (already implemented in UI)

🎯 Future Phases (Reference)

Phase 3: MVP Finalization (2-3 weeks)

  • Security hardening:
    • Rate limiting (express-rate-limit)
    • Input validation & sanitization
    • CORS configuration
    • SQL injection prevention
    • XSS protection
  • Testing:
    • Integration tests (API endpoints)
    • E2E tests (Playwright/Cypress)
    • WebRTC connection tests
  • PWA features:
    • Web app manifest
    • Service worker (offline support)
    • App icons & splash screens
    • Install prompt
  • Deployment:
    • Production Docker images
    • Environment configuration
    • Database backups
    • Monitoring & logging
    • CI/CD pipeline

Phase 5: Optional Extensions

  • User badges & trust system
  • Block users
  • Public profiles
  • Push notifications
  • Video compression
  • Multi-file transfer

📝 Active Development Tasks

Documentation

  • README.md
  • QUICKSTART.md
  • CONTEXT.md
  • TODO.md
  • SESSION_CONTEXT.md
  • ARCHITECTURE.md
  • COMPLETED.md
  • RESOURCES.md
  • API documentation (Swagger/OpenAPI) - after backend
  • Architecture diagrams - after backend
  • WebRTC flow diagram - after WebRTC implementation

Infrastructure

  • Docker Compose (nginx, frontend)
  • Docker Compose (backend, db)
  • Production Dockerfile optimization (multi-stage builds)
  • CI/CD pipeline (GitHub Actions)
  • HTTPS setup (Let's Encrypt)

Testing

  • Backend tests (Jest + Supertest)
  • Frontend tests (Vitest + React Testing Library)
  • E2E tests (Playwright / Cypress)
  • WebRTC manual testing (different devices)

🚀 Quick Commands

Start development:

docker compose up --build

Rebuild after changes:

docker compose down && docker compose up --build

Access:

Git workflow:

git status
git add .
git commit -m "feat: description"

📊 Progress Tracking

Phase Status Progress Estimated Time
Phase 0: Frontend Mockup Done 100% ~8h (completed)
Phase 1: Backend Foundation Done 100% ~14h (completed)
Phase 1.5: Email & WSDC & Profiles Done 100% ~12h (completed)
Phase 2: Core Features Next 0% ~15-20h
Phase 3: MVP Finalization Pending 0% ~15-20h
Phase 4: Extensions Pending 0% TBD

Overall Progress: ~65% (Phase 0, 1, 1.5 completed)


📝 Notes

  • Frontend mockup is presentation-ready
  • All views work with mock data - easy to connect real API
  • WebRTC P2P mockup in MatchChatPage - needs real implementation
  • Focus on Phase 1 next (backend foundation)
  • Update task status: 🔄

For detailed task history: See docs/COMPLETED.md For learning resources: See docs/RESOURCES.md For quick session context: See docs/SESSION_CONTEXT.md For technical details: See docs/ARCHITECTURE.md


Last Updated: 2025-11-14