How lakey82/watchpartybackend works
ReelSync is a watch-party backend whose main workflow is account authentication, room creation or joining, then synchronized playback and live interaction among room participants. REST handlers manage room membership, playback updates, and persisted chat history; Socket.io supports live room state, chat, participant events, and WebRTC signaling. A separate authenticated endpoint supplies optional TURN credentials. The README and sampled code support these major branches, though the socket implementation excerpt is partial, so only its evidenced interactions are mapped.
Main entry points: socket.js Socket Events · app.js Express App · server.js Server Bootstrap · authRoutes.js Auth Routes
Components 18
HTTP API
- Server Bootstrap
src/server.js - Express App
src/app.js - DB Connection
src/config/db.js
Identity
- Auth Routes
src/routes/authRoutes.js - JWT Guard
src/middleware/authMiddleware.js - Auth Controller
src/controllers/authController.js - User Store
src/models/User.js
Room Domain
- Room Routes
src/routes/roomRoutes.js - Room Controller
src/controllers/roomController.js - Room Store
src/models/Room.js - Message Store
src/models/Message.js
Realtime
- TURN Routes
src/routes/turnRoutes.js - TURN Credentials
src/controllers/turnController.js - Socket Events
src/socket/socket.js - Live Room State
src/socket/socket.js
Other components
- Watch Party Client
- MongoDB
- Metered TURN
Connections 24
- Watch Party Client → Express App: sends REST requests
- Server Bootstrap → Express App: creates HTTP server
- Server Bootstrap → DB Connection: connects database
- Server Bootstrap → Socket Events: initializes sockets
- Express App → Auth Routes: mounts auth API
- Express App → Room Routes: mounts room API
- Express App → TURN Routes: mounts TURN API
- Auth Routes → JWT Guard: guards profile route
- Auth Routes → Auth Controller: dispatches auth handlers
- Auth Controller → User Store: reads and writes users
- Room Routes → JWT Guard: guards room routes
- Room Routes → Room Controller: dispatches room handlers
- Room Controller → Room Store: reads and writes rooms
- Room Controller → Message Store: reads and deletes messages
- TURN Routes → JWT Guard: guards credentials route
- TURN Routes → TURN Credentials: dispatches credentials
- TURN Credentials → Metered TURN: fetches TURN servers
- Watch Party Client → Socket Events: exchanges live events
- Socket Events → User Store: loads joining user
- Socket Events → Room Store: loads room settings
- Socket Events → Message Store: persists chat
- Socket Events → Live Room State: updates playback state
- Socket Events → Watch Party Client: relays room events
- DB Connection → MongoDB: connects to