< Back to Index

[Node.js][Express][MongoDB][Socket.io][WebRTC]

01 Context & Problem

Learners lack affordable, real-time interactive platforms to exchange skills directly with peers without intermediaries.

02 Architecture & Design

SYSTEM DIAGRAM
[ Initializing Diagram... ]
> Signaling Server: Socket.io for WebRTC handshake
> Media Transport: WebRTC Peer-to-Peer data/media channels
> Persistence: MongoDB for user profiles and skill matching
> Auth: JWT-based stateless authentication

Created a real-time platform facilitating direct P2P connections via WebRTC video calls and low-latency Socket.io messaging.

03 Key Technical Decisions

  • Decision: WebRTC chosen for near-zero latency video calls avoiding expensive media server costs.
  • Decision: MongoDB (NoSQL) for flexible user profile schemas and skill tags.
  • Decision: Socket.io rooms used for isolating chat sessions and whiteboard events.

04 Challenges & Resolutions

! Warning: NAT Traversal: Configured STUN/TURN servers to allow connections across different networks.
! Warning: State Synchronization: Managed collaborative whiteboard state using event broadcasting to ensure all peers see the same drawing.
[View Source Code on GitHub]