{"id":17702360,"url":"https://github.com/kaali001/varta","last_synced_at":"2025-07-13T00:35:29.800Z","repository":{"id":258003748,"uuid":"868151101","full_name":"kaali001/varta","owner":"kaali001","description":"A online video chat platform which matches two people who are learning same languages. ","archived":false,"fork":false,"pushed_at":"2025-02-12T18:44:25.000Z","size":440,"stargazers_count":13,"open_issues_count":3,"forks_count":12,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-05-07T22:33:51.294Z","etag":null,"topics":["hacktoberfest","nodejs","reactjs","socket-io","typescript","webrtc"],"latest_commit_sha":null,"homepage":"https://varta-online.vercel.app","language":"TypeScript","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/kaali001.png","metadata":{"files":{"readme":"Readme.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":null,"code_of_conduct":"CODE_OF_CONDUCT.md","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-10-05T15:55:32.000Z","updated_at":"2025-04-25T15:48:18.000Z","dependencies_parsed_at":"2025-05-07T22:39:29.964Z","dependency_job_id":null,"html_url":"https://github.com/kaali001/varta","commit_stats":null,"previous_names":["kaali001/varta"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/kaali001/varta","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kaali001%2Fvarta","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kaali001%2Fvarta/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kaali001%2Fvarta/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kaali001%2Fvarta/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kaali001","download_url":"https://codeload.github.com/kaali001/varta/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kaali001%2Fvarta/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265075822,"owners_count":23707510,"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":["hacktoberfest","nodejs","reactjs","socket-io","typescript","webrtc"],"created_at":"2024-10-24T19:06:38.891Z","updated_at":"2025-07-13T00:35:29.266Z","avatar_url":"https://github.com/kaali001.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003e🗣️ Varta  \u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e \u003cimg src=\"https://img.shields.io/badge/License-MIT-blue.svg\" alt=\"License MIT\"/\u003e \u003cimg src=\"https://img.shields.io/badge/Socket.io-v4.5.4-%235865F2\" alt=\"Socket.io Badge\"/\u003e \u003cimg src=\"https://img.shields.io/badge/WebRTC-Supported-brightgreen\" alt=\"WebRTC Supported\"/\u003e \u003cimg src=\"https://img.shields.io/badge/Node.js-v18.0.0-%23339933\" alt=\"Node.js Badge\"/\u003e \u003cimg src=\"https://img.shields.io/badge/React-v18.2.0-%2361DAFB\" alt=\"React Badge\"/\u003e \u003c/p\u003e\n\n\nVarta is a real-time video chat platform that connects users randomly to have face-to-face conversations through WebRTC. It leverages Socket.io for signaling and enables smooth peer-to-peer video streaming between users. Whether you want to chat with strangers or friends, Varta offers an intuitive and seamless video calling experience.\n\n\n\n\n# 🚀 Features\n\n  - Random Peer Matching: Users are connected randomly to available peers in the lobby.\n   - WebRTC-based Video Streaming: Real-time peer-to-peer video calls with minimal latency.\n  - Lobby System with Loader Animation: Users wait for matching with a circular spinning loader.\n  - Local Video Preview: Self-video preview in a small floating window for monitoring appearance.\n  - Automatic Room Creation: Dynamically creates rooms when two users connect.\n  - Responsive UI: Clean and modern design built with React and Tailwind CSS.\n  - Cross-Browser Support: Works well across major browsers with WebRTC support.\n\n\n# 🛠️ Technologies Used\n\n| Frontend | Backend | Other Dependencies |\n| ------ | ------ | ------- |\n| React | Node.js\t| Socket.io |\n| TypeScript |\tExpress.js | WebRTC API |\n| Tailwind CSS |\n\n\n# ⚙️ Installation Guide\n\nFollow these steps to run the application on your local machine.\n\n## Prerequisites\nMake sure you have the following installed:\n\n  - Node.js (v18+)\n  - npm (or yarn)\n\n\n ### 1. Step 1: Clone the Repository\n \n  ```\n     git clone https://github.com/your-username/varta.git \n     cd varta\n ```\n\n\n\n### 2. Step 2: Install Dependencies\n\n  - #### For the backend\n  ```\n   cd server\n   npm install\n  ```\n    - (option)create a config.env file and add below details, as of now both predefined in `index.js`.\n    ```\n    PORT\n    FRONTEND_URL\n\n    ```\n  - #### For the frontend\n  ```\n   cd ../client\n   npm install\n\n  ```\n\n### 3. Step 3: Run the Application\n\n Open two terminal windows: one for the backend and one for the frontend.\n\n  - #### Backend (Server)\n   ```\n    cd server\n    node src/index.js\n\n   ```\n  - #### Frontend (Client)\n   ```\n     cd client\n     npm start\n   ```\n\n\n# 🌐 Project Structure\n\n \n  ```\n\n    varta/\n├── client/                 # Frontend code (React)\n│   ├── src/\n│   │   ├── pages/          # React pages (ChatPage, etc.)\n│   │   └── components/     # UI components (Room)\n│   └── public/             # Public assets\n|\n├── server/                 # Backend code (Node.js)\n│   ├── Managers/\n│   │   ├── RoomManager.js        \n│   │   └── UserManager.js       \n|   └── index.js            # Server entry point\n└── README.md               # Documentation\n\n\n\n  ```\n\n\n# 🎥 Demo\n\n## 📸 Screenshots:\n![image](https://github.com/user-attachments/assets/1ba18cdc-14e2-4280-9d0f-25569af7ac3e)\n\n\n![image](https://github.com/user-attachments/assets/cce7a8e3-293a-4ad0-b857-7e0f57ddeb59)\n\n\n\n\n\n# ❓ How It Works\n\n  - When a user joins, they enter the lobby and wait for another user to connect.\n  - Once two users connect, the server creates a room and initiates the offer-answer exchange using WebRTC.\n  - The two peers exchange ICE candidates to establish a connection.\n  - Users can see both self-video preview and peer video on the interface.\n\n\n# 🧑‍💻 Contributing\n\nWe welcome contributions! Please follow the steps below to contribute:\n\n  - Fork the repository.\n  - Clone the repository.\n  - Create a feature branch `git checkout -b feature-name`.\n  - Commit your changes `git commit -m \"Add new feature\"`.\n  - Push to your branch `git push origin feature-name`.\n  - Open a Pull Request on GitHub.\n\n\n\n\n\n    \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkaali001%2Fvarta","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkaali001%2Fvarta","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkaali001%2Fvarta/lists"}