DEV Community

Akhileswar Mannuru (He/Him)
Akhileswar Mannuru (He/Him)

Posted on

WatchYaari - Watch videos together with your friends

Overview of My Submission

WatchYaari is a platform where friends can watch youtube videos together while connected over a video chat. It is primarily built using MEAN stack, WebRTC, socket.io & Redis.

The idea for the same originated back in April 2020 when people were socially distant due to COVID-19 outbreak & while talking to bunch of friends over a video call, the need for hanging out with friends during social distancing was the bootstrap point of WatchYaari.
Initially we had started off with youtube but the plan was to extend integrating with various OTT platforms.

Submission Category:

MEAN/MERN Mavericks
I have used Redis in the following 2 ways:

  1. As a primary database instead of MongoDB (i.e. replace “M” in MEAN/MERN with “R” for Redis).
  2. Added caching and advanced searching capabilities using JSON and Search modules.

[Video Explainer of My Project]

Language Used

JS/TS/Node.js

Link to Code

WatchYaari - Watch videos together with your friends

Platform where users can watch youtube videos while on a video chat. Basically a digital party where users can enjoy watching videos together Separated by distance, brought together by WatchYaari.

Screenshot 2022-08-24 at 9 53 28 PM

Screenshot 2022-08-24 at 10 00 39 PM

Screenshot 2022-08-24 at 10 01 06 PM

Screenshot 2022-08-24 at 10 00 23 PM

Screenshot 2022-08-24 at 10 00 51 PM

Screenshot 2022-08-24 at 9 52 19 PM

Screenshot 2022-08-24 at 10 01 28 PM

Screenshot 2022-08-28 at 9 22 02 AM

Overview video (Optional)

Here's a short video that explains the project and how it uses Redis:

Embed your YouTube video

How it works

How the data is stored:

Used RedisJSON for saving JSON data in Redis with the help of redis-om nodejs library.

Screenshot 2022-08-28 at 4 18 35 PM

Screenshot 2022-08-28 at 4 20 22 PM

How the data is accessed:

Used RedisSearch to query data stored in Redis with the help of redis-om nodejs library.

Screenshot 2022-08-28 at 4 27 31 PM

Screenshot 2022-08-28 at 4 24 48 PM

Keys changes while moving from MongoDB to Redis as primary database

  • Changed MongoDB ObjectId dependecies to RedisJSON entityId

  • Changed Mongoose models to RedisJSON schema

    Mongoose Model Screenshot 2022-08-27 at 10 33 17 PM

    RedisJSON Schema Screenshot 2022-08-27 at 10 32 48 PM

  • Changed queries

    Mongoose aggregate query
    Screenshot 2022-08-27 at 10 39 26 PM

    RedisSearch query
    Screenshot 2022-08-27 at 10 40 16 PM

Architecture diagram

WatchYaariBeforeAfterRedisHacathon drawio

How to run it locally?

Prerequisites

  • Node - v14.16.0

  • Angular: 9.1.9

  • Angular CLI: 9.1.4

  • NPM -…


Top comments (0)