{"id":28275008,"url":"https://github.com/techthrives/video-calling-app","last_synced_at":"2026-04-11T06:04:46.256Z","repository":{"id":251756341,"uuid":"819300366","full_name":"TechThrives/Video-Calling-App","owner":"TechThrives","description":"The Video Calling App is a real-time communication application built with Express.js, MongoDB, React.js, Socket.IO, and PeerJS. It allows users to host and join video calls seamlessly, manage meetings effectively, and provides a secure registration and login process.","archived":false,"fork":false,"pushed_at":"2025-06-02T08:42:28.000Z","size":377,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-06-02T19:39:57.465Z","etag":null,"topics":["expressjs","mongodb","peerjs","reactjs","socket-io"],"latest_commit_sha":null,"homepage":"https://video.techthrives.in/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/TechThrives.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-06-24T08:29:44.000Z","updated_at":"2025-06-02T08:42:32.000Z","dependencies_parsed_at":null,"dependency_job_id":"f7369d70-4806-499b-8484-2a40a22ac79c","html_url":"https://github.com/TechThrives/Video-Calling-App","commit_stats":null,"previous_names":["techthrives/video-calling-app"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/TechThrives/Video-Calling-App","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TechThrives%2FVideo-Calling-App","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TechThrives%2FVideo-Calling-App/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TechThrives%2FVideo-Calling-App/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TechThrives%2FVideo-Calling-App/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TechThrives","download_url":"https://codeload.github.com/TechThrives/Video-Calling-App/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TechThrives%2FVideo-Calling-App/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260162605,"owners_count":22968084,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["expressjs","mongodb","peerjs","reactjs","socket-io"],"created_at":"2025-05-21T03:13:16.345Z","updated_at":"2025-12-30T23:03:28.887Z","avatar_url":"https://github.com/TechThrives.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Video Calling App\n\n## Overview\n\nThe Video Calling App is a real-time communication application built with Express.js, MongoDB, React.js, Socket.IO, and PeerJS. It allows users to host and join video calls seamlessly, manage meetings effectively, and provides a secure registration and login process.\n\n## Features\n\n- **Real-Time Video Communication**: Achieved using Socket.IO and PeerJS for smooth and interactive video calls.\n- **Secure Account Management**: Improved user registration and login processes for enhanced application security.\n- **Easy Meeting Management**: Allows users to create and join meetings effortlessly for a streamlined experience.\n\n## Technologies Used\n\n- **Frontend**: React.js\n- **Backend**: Express.js\n- **Database**: MongoDB\n- **Real-Time Communication**: Socket.IO, PeerJS\n\n## Installation\n\n### Prerequisites\n\n- Node.js\n- MongoDB\n- PeerJS\n\n#### 1. Clone the Repository\n\n   ```bash\n   git clone https://github.com/TechThrives/Video-Calling-App\n   ```\n\n#### 2. Set Up the Back-End\n- #### Navigate to the Back-End Directory\n``` bash\ncd video-calling-backend\n```\n\n- #### Install Dependencies\n```bash\nnpm install\n```\n\n- #### Configure Environment Variables\n    In the root directory of your Server, create a file named `.env`.\n    \n    Open the `.env` file and add the following environment variables:\n\n    - **`PORT`**: Specifies the port on which the backend server will listen.\n\n    - **`MONGO_URI`**: Connection string for MongoDB, including credentials and database information.\n\n    - **`JWT_SECRET`**: Secret key used for signing JSON Web Tokens.\n\n    - **`FRONTEND_URL`**: URL of the frontend application for CORS configuration.\n\n    - **`PASSPHRASE`**: Passphrase for SSL certificate, used for encryption.\n\n    - **`SSL_CRT_FILE`**: Path to the SSL certificate file used for HTTPS communication. For example, `../credentials/rootCA.cert`.\n\n    - **`SSL_KEY_FILE`**: Path to the SSL key file associated with the SSL certificate. For example, `../credentials/rootCA.key`.\n\n    By setting these environment variables, you ensure that your application is configured correctly for different environments and scenarios.\n\n- #### Start the Back-End\n``` bash\nnpm start\n```\n\n#### 2. Set Up the PeerJS Server\n- #### Navigate to the PeerJS Directory\n``` bash\ncd peerjs-server\n```\n\n- #### Install Dependencies\n```bash\nnpm install\n```\n\n- #### Configure Environment Variables\n    In the root directory of your PeerJs Server, create a file named `.env`.\n    \n    Open the `.env` file and add the following environment variables:\n\n    - **`FRONTEND_URL`**: URL of the frontend application for CORS configuration.\n\n    - **`PASSPHRASE`**: Passphrase for SSL certificate, used for encryption.\n\n    - **`SSL_CRT_FILE`**: Path to the SSL certificate file used for HTTPS communication. For example, `../credentials/rootCA.cert`.\n\n    - **`SSL_KEY_FILE`**: Path to the SSL key file associated with the SSL certificate. For example, `../credentials/rootCA.key`.\n\n    By setting these environment variables, you ensure that your application is configured correctly for different environments and scenarios.\n\n- #### Start the PeerJS Server\n``` bash\nnpm start\n```\n\n#### 4. Set Up the Front-End\n- #### Navigate to the Front-End Directory\n``` bash\ncd video-calling-frontend\n```\n\n- #### Install Dependencies\n```bash\nnpm install\n```\n\n- #### Configure Environment Variables\n    In the root directory of your React App, create a file named `.env`.\n    \n    Open the `.env` file and add the following environment variables:\n\n    - **`REACT_APP_SERVER`**: URL of the backend server that the React application will communicate with.\n\n    - **`REACT_APP_PEER_SERVER`**: Hostname or IP address of the PeerJS server used for real-time communication.\n\n    - **`REACT_APP_PEER_PORT`**: Port on which the PeerJS server is listening.\n\n    - **`REACT_APP_PEER_PATH`**: Path to the PeerJS server endpoint used for establishing connections.\n\n    - **`HTTPS`**: Set to `true` to enable HTTPS for secure communication.\n\n    - **`SSL_CRT_FILE`**: Path to the SSL certificate file used for HTTPS communication. For example, `../credentials/rootCA.cert`.\n\n    - **`SSL_KEY_FILE`**: Path to the SSL key file associated with the SSL certificate. For example, `../credentials/rootCA.key`.\n\n    By setting these environment variables, you ensure that your application is configured correctly for different environments and scenarios.\n\n- #### Start the Front-End\n``` bash\nnpm start\n```\n\n#### 5. Access the Application\nOpen your browser and go to http://localhost:3000 to start using the app.\n\n## Usage\n**Registration \u0026 Login**: Securely register and log in using your credentials.\n\n**Create a Meeting**: Set up a new meeting with a unique ID and invite participants.\n\n**Join a Meeting**: Enter the meeting ID to join an ongoing video call.\n\n**Chat with Participants**: Send and receive messages with other participants in the ongoing chat conversation.\n\n## Contributing\nWe welcome contributions from the community. To contribute to this project, please follow these guidelines:\n\n- Fork the repository\n- Create a new branch for your feature or bug fix\n- Make your changes and ensure they are well-tested\n- Create a pull request to the main branch of the original repository\n\n## Developers\n- Swarup Kanade [@swarupkanade](https://www.github.com/swarupkanade)\n- Omkar Kanade [@omkarkanade](https://www.github.com/omkarkanade)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftechthrives%2Fvideo-calling-app","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftechthrives%2Fvideo-calling-app","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftechthrives%2Fvideo-calling-app/lists"}