Skip to content

deepakChourasiya-aj/WorkDesk-Realtime-Communication-Plateform

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

logo

Reatime screen sharing web application..

Tech Stacks Used

html CSS js nodejs express mongo redis npm

Client: HTML,CSS, Javascript,Bootsrap

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

Frontend Part

  • Home page
  • Login/Signup

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": "User",
  "email": "User@gmail.com",
  "password": "User"
}

  • 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 

Installation

To install the WorkDesk, follow these steps:

  1. Clone the repository:
https://github.com/deepakChourasiya-aj/melted-group-7444.git
  1. Install the dependencies:
cd melted-group
npm install

Start the server:

npm run server

You are good to go


System_design

Untitled Diagram

Screenshot (517)

Screenshot (518) Screenshot (519) image 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

Packages

No packages published