Skip to content

sand050965/mini-room

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Mini-Room

Mini Room is a real-time video conferencing system that supports concurrent peer-to-peer video calls, online meetings, and instant messaging.

📄 API Doc: https://app.swaggerhub.com/apis/SAND050965_1/mini-room_api/1.0.0

🧑‍💻 Login with:
    Test Account: test@gmail.com
    Test Password: 123456

     

## Table of Contents

Main Features

Online Video Calls, Meetings, and Conferencing

  • Use WebRTC and PeerJS to achieve Peer-to-Peer video calls.

    image

Real-Time Messaging

  • Use Socket.IO for meeting room management and a real-time chat room.

    image

Screen Sharing and Meeting Recording

  • Support meeting recording and screen sharing functions.

    image

AI Hand Tracking Canvas (more info ...)

  • Use MediaPipe to implement hand tracking.

  • Use OpenCV to process images.

Side Features

  • User can sign in locally or use Google OAuth 2.0.
  • User authentication with Json Web Token (JWT).
  • Set up CI/CD workflow with GitHub Actions, Docker Hub Webhooks and Jenkins.
  • Support sending invitation mail.
  • Support file uploading and sending emojis in the chatroom.
  • User can change their avatar image.

Architecture

Server Architecture

image



WebSocket Architecture

image



WebRTC Architecture

image


PeerJS Architecture

image



Backend Technique

Infrastructure

  • Docker
  • docker-compose

Environment

  • Node.js/Express.js

Database

  • MongoDB Atlas

Cache

  • Redis

Cloud Services

  • AWS EC2
  • AWS CodeDeploy
  • AWS ElastiCache
  • AWS S3 Bucket
  • AWS CloudFront

Networking

  • HTTP & HTTPS
  • WebSocket
  • Domain Name System (DNS)
  • NGINX
  • SSL (ZeroSSL)

CI / CD

  • CI:
    • GitHub Actions
    • Docker Hub Webhooks
    • Jenkins
  • CD:
    • AWS CodeDeploy

Test

  • Unit test: Supertest

Third Party Library

  • Socket.IO
  • mongoose
  • passport.js
  • nodemailer
  • joi.js
  • multer
  • aws-sdk
  • bcrypt

Version Control

  • Git / GitHub
  • Docker Hub

Key Points

  • WebSocket
  • MVC Pattern

Database Schema

image



Frontend Technique

  • HTML, JavaScript, CSS
  • WebRTC
  • EJS Template

Third Party Library

  • PeerJS
  • Bootstrap
  • FontAwesome
  • AOS
  • Open Emoji API

Contact

🙂 Hsien-Yu, Yang

📩 Email: sand050965@gmail.com

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published