A P2P Group Video Chat WebApp
HiWay is a P2P Group Video Chat WebApp that users can access for free. It utilizes the browser's WebRTC capabilities to establish a peer-to-peer mesh network for data transmission. HiWay employs JWT Authentication and socket.io to enable the creation of the network via WebRTC.
Live at: https://hiway.ashwincodes.com
Testing username : tester
Testing password : tester
- Group video call support.
- Peer to peer audio and video transmission via webRTC for security.
- Real-time text chat support via socket.io
- JWT Authentication.
- Responsive design.
- Free to use.
React, Redux, Tailwind, Simple-peer(WebRTC), Socket.io, NodeJS, Express, MongoDB Atlas, JWT Auth.
Clone the repository and run 'prebuild' npm command to install node modules in client and both microservices.
All the commands need to be run from the HiWay repository.
NOTE: Browsers do not allow any WebRTC connection until the connection is secure (over HTTPS); hence, SSL is required. To test the product locally, set the 'Insecure origins treated as secure' flag in Chrome. Follow this stackoverflow post for more info.
$ git clone https://github.com/Ashwin-Codes/HiWay.git
$ cd HiWay
$ npm run prebuild
Run this command to build the react frontend client.
$ npm run build
There are two microservices, one for auth and another for socket.io and serving the client.
Set up .env file for both the servers by following the instructions present in 'dotenv-example.env' file in respective repos in server folder.
To run auth server :
$ npm run authServer
To run socket.io and client server :
$ npm run ioServer
Feel free to submit pull requests for new feature or bug fixes.
To run react app via development server (react-scripts), run :
$ npm run client