< Back to Index

Skill-Swap: Real-time P2P Platform

[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

> 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]