Giter Club home page Giter Club logo

teams-call's Introduction

Teams call

Built as a part of Microsoft Engage 2021 Program

Live Project

Documentation

Demo

Overview

A Video calling web application which lets users register and create meeting groups for real time chatting and video calling. It lets users schedule meetings and send email notifications. The video call interface has features like media controls, screen share and admin has been given the right to remove participants from the meeting.

Tech Stack

Frontend: EJS, CSS, JavaScript

Backend: Node.js, Express.js

Database: MongoDB (for storing user data, groups data, chats etc.)

Packages Used: socket.io, nodemailer, passportjs, passport local session, express session, passport local mongoose, uuidv4

APIs Used: Peerjs (WebRTC library), MediaStream API

Deployed to: Heroku

Features

User Authentication

User authentication is handled by Passport.js. All the routes are secure and cannot be accessed without authenticating the user. A session remains active as long as the browser is open.

Group Conversations

Group conversations work similar to the Microsoft Teams App. It has the following features:

  1. Schedule Meeting - Users can schedule/create new meeting groups.
  2. Add Participants - The admin can add participants to the group from the list of registered users that are fetched from the database.
  3. Email Notifications - When a new meeting group is scheduled, all the participants are notified via an email notification.
  4. Exclusive Video Calls (Private) - Real Time Chat and Video Calling (with Privacy). Each group has its unique meeting room. Only group members are authenticated to join that group’s video call meeting. This is done to maintain the privacy of group meetings.
  5. Real Time Chat - Chat messages are transmitted to and fro in real time between the group conversation and its corresponding meeting room.
  6. Chats saved in database - All the chats are saved in the database and users can see their groups and corresponding chats when they login again.
  7. View Members of Group - Users can view the participants list of any of their groups.

Video Call Meetings

Video Call Meetings have the following features:

  1. Video/Audio Toggle
  2. Privacy: Only the participants of the group have the permission to join that particular group’s meeting. No outsider can intrude on the meeting.
  3. Real Time Chat: Meeting Participants can send messages in real time. The messages in the meeting room are in sync with the group’s chat section, just like Microsoft Teams. Any member of the group who has not joined the meeting can also chat in real time with the members who have joined in the meeting.
  4. Raise Hand
  5. Screen Share
  6. Admin Rights: The Organiser/Admin of the meeting has the right to remove users from the meeting.
  7. Meeting Link Sharing

Local Setup

Run the following commands:

npm install (to install all the dependencies)

node server.js (to start the server)

teams-call's People

Contributors

jasleen0604 avatar

Stargazers

Pratham Jain avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.