Meerkat

Team Name

Team Meerkat

Timeline

Fall 2019 – Spring 2020

Students

  • Teresa Nguyen
  • Nika Davis
  • Saurav Subedi
  • Quan Doan
  • Hy Nguyen

Abstract

The purpose of this blog post is to explain the reasons for the development of Project Meerkat, including any inspiration from existing software on the market, and to give an overview of how Meerkat was intended to work and what we were able to implement during the course of these past two semesters. We will also showcase the various components of our application and how they interact with each in order to function properly.

Background

In a world where everyone is always busy, it’s hard to find time to meet up with friends and family to unwind and relax. Fortunately, technology has advanced in a way that allows us to participate in activities through virtual means when doing so physically would be a hassle, or even impossible considering the current state of pandemic. Team Meerkat wanted to build something that would allow people to share their media experiences with anyone, anywhere, cleanly and easily. This is what made us undergo the development of Project Meerkat, a web application designed to do exactly just that – empowering people to host virtual watch parties at any place and any time.

Project Requirements

  1. Users will be able to register an account.
  2. Users will be able to login with their account.
  3. Users will be able to view their user information through a profile page: first name, last name, username, and favorite genres.
  4. Users will be able to create ‘party rooms’ in which they are the host of.
  5. Users will be able to view all party rooms that have been created.
  6. Users will be able to join any party room.
  7. Within a party room, users will be able to share their computer screen if they are the host of that room.
  8. Within a party room, non-host users will be able to view what the host user shares.
  9. Within a party room, all users will be able to see whenever another user joins the room.
  10. Within a party room, all users will be able to view text chat messages sent by other users.

System Overview

Meerkat consists of a frontend application, backend API, and a media server which all interact with each other in order in order to carry out the necessary functions of the system as a whole. The image below gives a visual representation of how they communicate.

The backend server communicates with the database, retrieving the necessary data and performing business logic on it, in order to fulfill HTTP requests made from the frontend application. These requests include creating an account, creating a new room, retrieving the details of a room, etc. A more in-depth look into how the backend server is designed in order to handle these requests are shown in this image:

In addition to API requests, the frontend also uses web sockets in order to quickly send and receive information about the state of the stream from the media server, as well as chat messages to other frontend clients. These messages are routed through the server socket that is implemented on the backend server.

Results

A demo of our application is shown here:

Future Work

Possible future work for this project include:

  • Implement the ability to add more chat rooms per and allow users to have multiple streaming views at one time.
  • Expand the application’s platform to mobile devices like Apple and Android.
  • Create a feature where users can save their favorite videos and be able to replay them without having to search the video on the streaming services.
  • Implement feature that allows users to add other users as a friend and add their username to a friends list.

Project Files

Project Charter (link)

System Requirements Specification (link)

Architectural Design Specification (link)

Detailed Design Specification (link)

Source Code (link)

Poster (link)

gustijl