/Tech-Titans_046

Watch Video Together is a web application that allows users to create or join virtual rooms where they can watch YouTube videos in perfect synchronization with friends and chat in real-time. This project enhances online social interactions by providing a platform for sharing video-watching experiences, even when users are physically apart.

Primary LanguageJavaScript

Tech-Titans_046

Construct week project work

Project Title

Watch Video Together

Introduction

Watch Video Together is a web application that allows users to create or join virtual rooms where they can watch YouTube videos in perfect synchronization with friends and chat in real-time. This project enhances online social interactions by providing a platform for sharing video-watching experiences, even when users are physically apart.

Project Type

Full_Stack-Web Application

Deployed Link

Invoice and Payment Tracker (React) :- https://watchtogather.netlify.app/ GitHub Link :- GitHub Repository Directory Structure

Contribution Link

Group Presentation :- Presentation Link One-to-One Questionaries :- Questionaries Link Video Walkthrough of the Project Attach a very short video walkthrough of all of the features [1 - 3 minutes] Video Link:-https://www.youtube.com/watch?v=Xe0FLyCJLiU

Video Walkthrough of the Codebase

Attach a very short video walkthrough of the questions on the Project [1 - 5 minutes] Video Link:-https://www.youtube.com/watch?v=zziKzGWdilE

Screenshot

Features

  1. User Authentication
    • Secure login and signup
    • User roles and permissions
  2. Room Creation and Joining:
    • Users can create a room with a unique identifier and share the link for others to join.
    • Users can join an existing room using the shared link.
  3. YouTube Video Sync
    • Users can paste a YouTube video link, and the video will be played in sync across all users in the room.
    • Play, pause, and seek actions by any user are reflected for all users in real-time
  4. Real-Time Chat
    • Users can chat with each other in real-time while watching the video.
    • The chat is displayed alongside the video player.
  5. User Presence:
    • A list of users currently in the room is displayed.
  6. Moderation Tools:
    • The room creator (host) can kick users out and control video playback.
  7. Notifications
    • Email reminders for due payments
    • Notifications for new invoices and payments
  8. Screen Sharing:
    • The host can share their screen instead of a YouTube video.
  9. Notification System:
    • Users receive notifications for new messages, users joining or leaving, and other important events.

Design Decisions or Assumptions

Design Decisions:

React Framework: React is used for building the user interface. Chakra UI and Tailwind CSS: These are used for styling and creating a responsive design. Redux: Used for state management. Vite: Used as the build tool for faster development and optimized production builds. Assumptions:

API Services: The application assumes that the backend API services for user authentication, invoice management, and payment processing are available and reliable. Responsive Design: The application is designed to work on both desktop and mobile devices. Performance: The application assumes acceptable performance considering the use of modern libraries and frameworks. Installation & Getting Started Detailed instructions on how to install, configure, and get the project running.

bash Copy code

Clone the repository

git clone https://github.com/SoumyaSubhamPatra/Tech-Titans_046.git

Navigate to the project directory

cd Tech-Titans_046

Install dependencies

npm install

Start the development server

npm start Usage Instructions and examples on how to use your project.

Download or Clone the Project:

Clone the repository to your local machine using Git. Or download the project as a zip file and extract it. Open the Project Files:

Navigate to the project directory and open the project in a code editor like Visual Studio Code. Install Dependencies:

The project uses npm for package management. Run npm install to install the required dependencies. Run the Project:

Start the development server using npm start. Open http://localhost:3000 in your web browser to view the project. Backend Server:

Ensure the backend server is running and accessible. For a mock server, you can use json-server. bash Copy code

Install json-server globally

npm install -g json-server

Run the mock server

json-server --watch db.json Credentials Provide user credentials for authenticated pages

GitHub user-id

Team-Lead: Soumya Subham Patra (SoumyaSubhamPatra) Collab-1: Suraj Pradip Kamble (suraj0119) Collab-1: Arnab Dutta (ar98anb)

Manager I.A: Aashis Kumar Technology Stack A brief overview of the technologies used in the project:

React TypeScript Chakra UI Tailwind CSS Redux Vite Node.js Express MongoDB