Backend:
• Technologies
- Node.js: Node. js is a platform built on Chrome's JavaScript runtime for easily building fast and scalable network applications. Node. js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient, perfect for data-intensive real-time applications that run across distributed devices.
- Webrtc: WebRTC (Web Real-Time Communication) is a technology which enables Web applications and sites to capture and optionally stream audio and/or video media, as well as to exchange arbitrary data between browsers without requiring an intermediary.
- Socket.io: Socket.IO is a library that enables real-time, bidirectional and event-based communication between the browser and the server.
- Heroku : Heroku is a container-based cloud Platform as a Service (PaaS). Developers use Heroku to deploy, manage, and scale modern apps. Our platform is elegant, flexible, and easy to use, offering developers the simplest path to getting their apps to market.
• Dependencies
- Cors: CORS is a node. js package for providing a Connect/Express middleware that can be used to enable CORS with various options.
- Express: Express is a minimal and flexible Node.js web application framework that provides a robust set of features to develop web and mobile applications. It facilitates the rapid development of Node based Web applications.
- Nodemon: Nodemon is a utility that will monitor for any changes in your source and automatically restart your server. Perfect for development.
- Socket.io: Socket.io enables real-time event-based communication between one or more clients and a server. It works on every platform, browser or device and is fast and reliable. Socket.io has two parts: a client-side library that runs in the browser, and a server-side library for Node.
Frontend: React framework is used.
• Libraries
- Material UI: Material UI is the most powerful and efficient tool to build an Application by adding Designs and Animations and use it with technical and scientific innovation. It is basically a design language that was developed by Google in 2014.
- Material UI icons: You can also use https://material-ui.com/components/material-icons/ to search for the icon you need.
- Copy-To-Clipboard: To copy any text.
- Simple-peer: PeerJS simplifies WebRTC peer-to-peer data, video, and audio calls. PeerJS wraps the browser's WebRTC implementation to provide a complete, configurable, and easy-to-use peer-to-peer connection API. Equipped with nothing but an ID, a peer can create a P2P data or media stream connection to a remote peer.
- Frontend was deployed on netlify.
How to use
Video call
1.Click on copy your id
2.Share this id to the person whom with you want to connect
3.Ask him to paste this in id to call column.
4.Click on call button.
5.you will receive notification like xyz is calling , accept it.
6.To hangup press on hangup button.
7.Features like video pause mute and share screen are also availaible.
Message
write your name.
Simply send message.
CHECK OUT MY APP: https://teams-clone-ms-engage.netlify.app/