image

TeamTalk

TeamTalk is a real-time video conferencing website that provides convenient video calling, instant messaging rooms, and collaborative whiteboard functionality. With TeamTalk, you can easily stay connected and aligned with your team, no matter where you are.

Demo

Preview screen before joining a room & Real-time chat room

entering chat

Collaborative whiteboard & Screen sharing

whiteboard share

Recording

recording

Table of Contents

Main Features

  • Membership System
    • User can sign in locally or Google& Facebook OAuth 2.0 support for third-party login.
    • User authentication with Json Web Token.
    • Customizable user profiles and avatars.
  • Pre-meet
    • Before joining the video room, the pre-meet will confirm the audio and video status and on/off settings.
  • In-room
    • Real-time video and audio communication with team members.
    • Instant messaging in the chatroom.
    • Screen sharing during the video call.
    • Recording is available, and supports downloading.
    • Collaborative whiteboard for brainstorming.

Backend Technique

Key Points

  • WebRTC
  • Socket.IO
  • MVC Pattern

Deployment

  • Docker

Environment / Web Framework

  • Node.js / Express

AWS Cloud Service

  • EC2
  • S3
  • CloudFront

Database

  • MongoDB Atlas

Networking

  • HTTP & HTTPS
  • Domain Name System (DNS)
  • NGINX
  • SSL (Let's Encrypt)

Third Party Library

  • passport.js
  • peer.js

Version Control

  • Git/GitHub

Architecture

Server Architecture

TeamTalk Architecture

WebRTC Architecture

WebRTC Architecture

Socket Architecture

Socket Architecture

Database Schema

TeamTalk Schema

Frontend Technique

  • HTML
  • JavaScript
  • CSS
  • AJAX
  • Canvas

API Doc

Contact