Gather

Team Name

Gatherers

Timeline

Summer 2021 – Fall 2021

Students

  • Samuel Adegoke
  • Ivan Ahumada
  • Omer Ishtiaq
  • Colin Kirchenbauer

Abstract

Gather is a Google extension that will incorporate YouTube video streaming so that users may watch videos with their friends at the same time regardless of the distance. This mitigates separation among close friends and relatives that stay busy and don’t have time to travel long distances or are practicing social distancing. A chat room will also pop up through Google extension so the user is able to chat with them while watching the video simultaneously. 

Background

The idea behind this extension is to bring relatives or friends closer, and overall bring people closer who are far away. The people might not be in the same city or country. Even if they are in the same city, they might not meet each other because of their busy schedule or routine. With this extension people will have the chance to watch movies or videos together online, thus spending time online together and having fun together. This extension will create a tool for the people to spend quality time together and at the comfort of their own homes. This extension is an opportunity for users to be provided with entertainment for themselves and others online whilst encouraging users to stay connected with otherwise distant friends.

Project Requirements

The top requirements are 

  • User will be able to install the extension on the chrome web store. 
  • Extension can be launched only when on Youtube videos
  • A generated link is provided to allow users to join the video
  • Only users with this link are capable of joining
  • A chat room should be available with basic functionalities
  • At any time, one can leave the room, and terminate the session

System Overview

The interface control layer is comprised of all the separate components that are going to control the interface of the chrome extension. Things like the source/video selection, event handler, room, and the play controller. Every single component of this layer is an interface for the user to interact with the extension. Implemented in JavaScript and HTML/CSS. Next is the chat layer which comprised the separate components for the chat system that is a part of the chrome extension. The layer itself includes text for basic conversation, which will then send to the dispatcher to then send to the user. Implemented in JavaScript (Socket.IO and Express.JS). Lastly is the Streaming Layer which is comprised of all the separate components that are going to control the streaming of for the chrome extension. The layer allows the users to sync the videos together through a TCP connection, then the Streamer(Host) would be allowed to maintain the connection between the users and the video.

Results

Demo Video: (link)

Future Work

Optimizing the synchronization of the video is a priority, whilst modifying the link to take away from the two step process of both video launching, and chat opening. It is also in our interest to expand our extension to work with other streaming platforms such as Twitch.

Project Files

Project Charter (link)

System Requirements Specification (link)

Architectural Design Specification (link)

Detailed Design Specification (link)

Poster (link)

Source Code:

Main Server (link) Chat System (link)

References

[1] Rayome Alison DeNisco. How to start a Hulu watch party in 5 easy steps.​
https://www.cnet.com/tech/services-and-software/how-to-start-a-hulu-watch-party-5-easy-​
steps/, December 2020.​
[2] Disney+. What is the GroupWatch feature. https://help.disneyplus.com/csp?id=csparticlecontentsyskbid=​
ec924ed1db631c94c2deeacb13961944, Accessed : 2021-08−07.​
[3] Netflix Party Extension. A New Way To Watch TV Together. https://sites.google.com/view/netflix-​
party/, Accessed: 2021-08-07.​

cjk8983