Skip to content

5h0bh4nk/Rep_Teams

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

59 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Welcome to Shubh_Meet

node yarn express react redux mongo git postman

Shubh_Meet

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

Features

  • 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 πŸ˜‰)

TechStacks / Modules used

  • ReactJS - (reactstrap , materailUI, etc)
  • Redux
  • Passport auth
  • Express
  • MongoDB
  • SocketIO
  • WebRTC
  • and others

API endpoints

  • /users (admin only)
  • /users/login
  • /users/signup
  • /facebook/token (fb auth)
  • /users/checkJWTToken
  • /groups (to fetch groups of user)
  • /groups/:roomId ( to fetch messages )

Requirements

To be able to run this app locally :

  • 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 ) .

Installation / Local Setup

Running locally ( production server )

Step 1 - clone the repo

$ git clone https://github.com/5h0bh4nk/SHUBH_TEAMS_

Step 2 - cd in the repo

$ cd SHUBH_TEAMS_

Step 3 - install dependencies

$ yarn install

Step 4 - Build the react app

$ yarn build

Step 5 - run application

$ yarn start

In browser, open http://localhost:4001


Running locally ( Development server )

Step 1 - clone the repo

$ git clone https://github.com/5h0bh4nk/SHUBH_TEAMS_

Step 2 - cd in the repo

$ cd SHUBH_TEAMS_

Step 3 - install dependencies

$ yarn install

Step 4 - run application

$ yarn dev

In browser, open http://localhost:8000


Code Structure

- πŸ“‚ __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)