Skip to content

WorkDesk is Realtime time communication plateform build on top of websockets,webrtc which has zoom like feature:https://workdesk.netlify.app/

Notifications You must be signed in to change notification settings

ovaisazmi/WorkDesk

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 

Repository files navigation

logo

Reatime screen sharing web application..

Tech Stack

Client: HTML,CSS, Javascript,Bootsrap

Server: Node.js, Express.js , MongoDB, WebRTC, PeerJS library, Socket.io

Frontend Part

  • Home page
  • Login/Signup
  • Google OAuth
  • Github OAuth

Backend Part

  • Authentication using JWT
  • Mongoose - connecting the database
  • Server side -->> Node.js and Express

Database -

- MongoDB

Features

  • Screen Sharing
  • Chatting
  • Vedio calling

Application Guide

To use {Screen share} feature -->

  • First Create room
  • User can share the screen
  • Than user can join the room using room ID
  • Enter room ID to join

Stop share -->

  • Click on stop share option

To use {Video calling} feature -->

  • First Create room
  • User can join the call by using the room ID
  • To end the call click on hang on button

To use {Chat} feature -->

  • Enter the user name
  • User can chat with online users
  • For online users it will show green tick

Examples

Creating connection and accessing user media .

    peer = new Peer(room_id);
    peer.on('open', (id) => {
        console.log("Peer has joined ID no", id);
        hideModal()
        // media options...
        getUserMedia({ video: true, audio: true },
            (stream) => {
                local_stream = stream;
                setLocalStream(local_stream)
            }, (err) => {
                console.log(err);
            })
        notify("Waiting for the member to join.")
    })

Backend api endpoints

create user -> post: localhost:8080/user/register
sample data :

{
  "name": "chikkuuu",
  "email": "chikkuuu@gmail.com",
  "password": "mayank"
}

  • login user -> post : localhost:8080/user/login

  • get new token -> get : localhost:8080/newtoken

  • logout user -> get : localhost:8080/logout

  • get all user -> get : localhost:8080/user

  • get one user -> get : localhost:8080/user/id

    while making get request from fontend we need to send access_key(presented in .env)


github Oauth

1. Route login,dashboard 
2. impelement auth 
3. sessions
4. protected
5. logout 

System_design

Untitled Diagram

Screenshot (517)

Screenshot (518) Screenshot (519) Screenshot (520) Screenshot (522)

About

WorkDesk is Realtime time communication plateform build on top of websockets,webrtc which has zoom like feature:https://workdesk.netlify.app/

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • CSS 47.3%
  • JavaScript 22.2%
  • HTML 19.2%
  • SCSS 11.3%