A video chat app built from scratch without the use of any public or pre existing APIs/SDKs like firebase/jitsi
Video link : youtube
Demo link : shubh-meet
- Instantly create a new room or join a new one π¬
- Video call with multiple people in real-time πΉ
- Mute audio/video π
- Share screen during video call π»
- Chat before starting a video call by creating a new room in conversations tab π
- Chat with your friends during a video call π
- View the chats that happened in the video meet before you even joined to catch up with others if u are late π€
- Chat notifications πΈ
- Continue your chat after the video call also ( includes your chats during the call ) π€
- Authentication support using passport and JWT tokens to prevent unknown users π
- Simple and intuitive UI π
- XSS sanitization of chats (security π)
- ReactJS - (reactstrap , materailUI, etc)
- Redux
- Passport auth
- Express
- MongoDB
- SocketIO
- WebRTC
- and others
- /users (admin only)
- /users/login
- /users/signup
- /facebook/token (fb auth)
- /users/checkJWTToken
- /groups (to fetch groups of user)
- /groups/:roomId ( to fetch messages )
- you need to have Nodejs installed
- you need to have node package manager , npm or yarn( preferable )
- It currently uses a free and limited storage mongoDB cluster . To use local database or your database , change the mongoUrl in config.js . ( Use 'localhost:27017' for using local mongoDB and execute
mongo run
command on your terminal before using ) .
$ git clone https://github.com/5h0bh4nk/SHUBH_TEAMS_
$ cd SHUBH_TEAMS_
$ yarn install
$ yarn build
$ yarn start
In browser, open http://localhost:4001
$ git clone https://github.com/5h0bh4nk/SHUBH_TEAMS_
$ cd SHUBH_TEAMS_
$ yarn install
$ yarn dev
In browser, open http://localhost:8000
- π __CODE STRUCTURE___
- π [README.md](README.md)
- π [app.js](app.js)
- π [authenticate.js](authenticate.js)
- π [cicd.jpg](cicd.jpg)
- π __client__
- π [package.json](client/package.json)
- π __public__
- π [icon.png](client/public/icon.png)
- π [index.html](client/public/index.html)
- π [manifest.json](client/public/manifest.json)
- π [package.json](client/public/package.json)
- π [robots.txt](client/public/robots.txt)
- π __src__
- π [App.js](client/src/App.js)
- π __Components__
- π __ContactBar__
- π [ContactBar.css](client/src/Components/ContactBar/ContactBar.css)
- π [ContactBar.js](client/src/Components/ContactBar/ContactBar.js)
- π __Header__
- π [Header.css](client/src/Components/Header/Header.css)
- π [Header.js](client/src/Components/Header/Header.js)
- π __Jumbotron__
- π [jumbotron.css](client/src/Components/Jumbotron/jumbotron.css)
- π [jumbotron.js](client/src/Components/Jumbotron/jumbotron.js)
- π __Navbar__
- π [Navbar.css](client/src/Components/Navbar/Navbar.css)
- π [Navbar.js](client/src/Components/Navbar/Navbar.js)
- π __SignButtons__
- π [SignButtons.css](client/src/Components/SignButtons/SignButtons.css)
- π [SignButtons.js](client/src/Components/SignButtons/SignButtons.js)
- π __Containers__
- π __Dashboard__
- π [Dashboard.css](client/src/Containers/Dashboard/Dashboard.css)
- π [Dashboard.js](client/src/Containers/Dashboard/Dashboard.js)
- π __Homepage__
- π [Homepage.css](client/src/Containers/Homepage/Homepage.css)
- π [Homepage.js](client/src/Containers/Homepage/Homepage.js)
- π __Login__
- π [Login.css](client/src/Containers/Login/Login.css)
- π [Login.js](client/src/Containers/Login/Login.js)
- π __MeetStart__
- π [Home.css](client/src/Containers/MeetStart/Home.css)
- π [Home.js](client/src/Containers/MeetStart/Home.js)
- π __Room__
- π __Helpers__
- π [peerConnectionConfig.js](client/src/Containers/Room/Helpers/peerConnectionConfig.js)
- π [server\_url.js](client/src/Containers/Room/Helpers/server_url.js)
- π [Video.css](client/src/Containers/Room/Video.css)
- π [Video.js](client/src/Containers/Room/Video.js)
- π __Signup__
- π [Signup.css](client/src/Containers/Signup/Signup.css)
- π [Signup.js](client/src/Containers/Signup/Signup.js)
- π __Messenger__
- π __App__
- π [App.test.js](client/src/Messenger/App/App.test.js)
- π [index.js](client/src/Messenger/App/index.js)
- π __Compose__
- π [Compose.css](client/src/Messenger/Compose/Compose.css)
- π [index.js](client/src/Messenger/Compose/index.js)
- π __ConversationList__
- π [ConversationList.css](client/src/Messenger/ConversationList/ConversationList.css)
- π [Dropdown.js](client/src/Messenger/ConversationList/Dropdown.js)
- π [index.js](client/src/Messenger/ConversationList/index.js)
- π __ConversationListItem__
- π [ConversationListItem.css](client/src/Messenger/ConversationListItem/ConversationListItem.css)
- π [index.js](client/src/Messenger/ConversationListItem/index.js)
- π __ConversationSearch__
- π [ConversationSearch.css](client/src/Messenger/ConversationSearch/ConversationSearch.css)
- π [index.js](client/src/Messenger/ConversationSearch/index.js)
- π __Message__
- π [Message.css](client/src/Messenger/Message/Message.css)
- π [index.js](client/src/Messenger/Message/index.js)
- π __MessageList__
- π [MessageList.css](client/src/Messenger/MessageList/MessageList.css)
- π [index.js](client/src/Messenger/MessageList/index.js)
- π __Messenger__
- π [Messenger.css](client/src/Messenger/Messenger/Messenger.css)
- π [Messenger.js](client/src/Messenger/Messenger/Messenger.js)
- π [index.js](client/src/Messenger/Messenger/index.js)
- π __Toolbar__
- π [Toolbar.css](client/src/Messenger/Toolbar/Toolbar.css)
- π [index.js](client/src/Messenger/Toolbar/index.js)
- π __ToolbarButton__
- π [ToolbarButton.css](client/src/Messenger/ToolbarButton/ToolbarButton.css)
- π [index.js](client/src/Messenger/ToolbarButton/index.js)
- π [index.js](client/src/index.js)
- π __redux__
- π [ActionCreators.js](client/src/redux/ActionCreators.js)
- π [ActionTypes.js](client/src/redux/ActionTypes.js)
- π [auth.js](client/src/redux/auth.js)
- π [configureStore.js](client/src/redux/configureStore.js)
- π [forms.js](client/src/redux/forms.js)
- π [serviceWorker.js](client/src/serviceWorker.js)
- π __shared__
- π [basUrl.js](client/src/shared/basUrl.js)
- π __images__
- π [demo.webp](client/src/shared/images/demo.webp)
- π [logo\-icon.png](client/src/shared/images/logo-icon.png)
- π [logo\-white.png](client/src/shared/images/logo-white.png)
- π [mslogo.svg](client/src/shared/images/mslogo.svg)
- π __storage__
- π [data.js](client/src/shared/storage/data.js)
- π [config.js](config.js)
- π [demo.png](demo.png)
- π [list.md](list.md)
- π [package.json](package.json)
- π [procfile](procfile)
- π __server__
- π __models__
- π [groups.js](server/models/groups.js)
- π [message.js](server/models/message.js)
- π [user.js](server/models/user.js)
- π __routes__
- π [cors.js](server/routes/cors.js)
- π [groupsRouter.js](server/routes/groupsRouter.js)
- π [index.js](server/routes/index.js)
- π [users.js](server/routes/users.js)