Skip to content

Files

Latest commit

 

History

History
98 lines (63 loc) · 2.85 KB

ERD - Audio Chat.md

File metadata and controls

98 lines (63 loc) · 2.85 KB

Engineering Requirement Document - Audio Chat

This document explores the design of Audio Chat.

Features

  • Basic authentication method (email and password)
  • Upload or Change the image profile
  • Create a virtual Room chat
  • Real-Time audio chat communication
    • open/close Mic
    • Leave Room
  • Real-Time text chat

Big Picture - Architect

Audio Chat Architect

Storage

Using MongoDB as a primary database for storing user information like name, password hash, and profile URL and also for storing logs; using Redis for storing user sessions and ids of rooms; and finally, using the file system for storing the profile picture.

Mongo Schema Validation

Using Mongo Schema Validation only on user collection as follows:

user

column type
_id objectId
name string
email (index) string
profileImg string
password string

Session Mechanism

Using session id as a primary identifier with an expiration of 2 weeks ⏱️ from last signin; after that time, resignin is required.

Room Id

Room id is formed by generating a random UUID and then using MD5 for hashing and setting room id in Redis with an expiration date of 5 hours.

Framework

This is shaping up to be a tiny MVC framework, interesting.

Client - API

Path What Should Do
/home Home page
/signin signin page
/# # page
/signout Revocation of Cookies and Session
/room/:id Room page

UI

Signin

signin

#

#

Home Page

home

Upload - Update Profiel Img

Upload - Update Profiel Img

Create a Virtual Room

room url

Virtual Room

room

Dependencies