Zbiba42 / WatchShroom

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

WatchShroom πŸ„

WatchShroom is a 🌟 unique website that allows you to create 🏠 virtual rooms and share a Room ID with your friends and guests. These rooms are not just ordinary spaces; they are 🎬 multimedia hubs where you can enjoy videos, πŸ—¨οΈ chat with friends, and control the playback of videos in real-time.

Features πŸš€

Create and Join Rooms 🏠

  • Hosts can create rooms and share a Room ID with guests. πŸŽ‰
  • Guests can join rooms using the provided Room ID. πŸ”‘

Video Playback πŸ“Ί

  • Hosts can add videos to the playlist from various supported platforms, including:
    • Facebook πŸ“˜
    • Vimeo πŸŽ₯
    • Wistia πŸ“½οΈ
    • Dailymotion πŸ“Ή
    • SoundCloud 🎡
    • Mixcloud 🎢
    • Twitch (excluding live streams) πŸ•ΉοΈ
    • Direct video links πŸ”—

Real-time Video Control ⏯️

  • Hosts have full control over video playback, including play, pause, seek, and more. ⏩⏸️
  • When a video buffers for the host, playback pauses for all users until buffering is complete. πŸ“Ά

Chat Functionality πŸ’¬

  • Engage in real-time conversations with other users in the chat corner. πŸ’¬πŸ’¬

Installation πŸ› οΈ

To run WatchShroom, you will need Node.js and MongoDB installed on your system.

  1. Clone the repository:
git clone https://github.com/Zbiba42/WatchShroom.git
  1. Install dependencies for both the client and server:
npm install
cd back-end
npm install

Usage 🎯

Development Mode 🚧

To run the website in development mode:

  1. Start the client (frontend):
npm run dev # In the client folder
  1. Start the server (backend):
cd back-end
npm run dev:watch # For watch mode
# OR
npm run dev

Building the App πŸ—οΈ

To build the app:

  1. Build the client:
npm run build
  1. Serve the build:
serve -s build
  1. Build the server:
cd back-end
npm run build
  1. Run the server:
npm start

Client Dependencies πŸ“¦

  • axios: HTTP client for making requests. 🌐
  • react and react-dom: React for building user interfaces. βš›οΈ
  • react-player: A React component for playing media. ▢️
  • react-router-dom: Routing library for React. πŸ›£οΈ
  • react-toastify: Toast notifications for React. 🍞
  • socket.io-client: Socket.IO client for real-time communication. πŸ“‘

Server Dependencies 🏒

  • express: Web application framework for Node.js. 🌐
  • mongoose: MongoDB object modeling library. πŸƒ
  • socket.io: Real-time bidirectional event-based communication. πŸ“‘
  • ts-node and typescript: TypeScript support for the server. πŸ¦•
  • cors: Cross-Origin Resource Sharing middleware for Express. 🀝
  • @types/express and @types/node: TypeScript type definitions for Express and Node.js. 🧾

Contributing 🀝

Feel free to contribute to WatchShroom by opening issues or pull requests. We welcome your ideas and suggestions! πŸ™Œ

Enjoy using WatchShroom, and happy watching! πŸ„πŸ“ΊπŸŽ‰

About

License:MIT License


Languages

Language:TypeScript 90.1%Language:JavaScript 6.5%Language:CSS 1.9%Language:HTML 1.5%