Skip to content

Delphant/EntertainMe

Repository files navigation

EntertainMe! MSCSIT Capstone Project

Table of Contents

Click to expand

About

This project was created as our final project for the Sacred Heart University Jach Welsh Computer Science & Information Technology Graduate program. We had six weeks to design and analyze a project using an agile workflow, then another six weeks to implement our prototype. EntertainMe! is a movie and TV show recommendation web application where users can rate and review media they have seen while getting new recommendations based on the items they view.

Developers

  • Frontend: Trevor Neal
  • Backend: Remi Rosa
  • Database: Brandon Cassidy

Development

  • Frontend: React TS
  • Backend: Python with Flask
  • Database: PostgreSQL

Features

  • Account creation with input validation
  • User authentication with automatic refreshing tokens
  • Main page with title recommendations and ratings colorized by genre
  • Customizable watchlist
  • Title page
    • Title information with actors, genre, rating, and description
    • Adding/deleting from the user's watchlist
    • Viewing user reviews
    • Writing reviews with ratings
    • Similar title recommendations based on the selected title
  • Search functionality based on alphabetic order
  • App-wide error handling with toasts

Design Process

The design phase started our course CS620 Info Analysis and System Design. Our objective for this six-week course was to develop a capstone idea and design how the system would function. For our documentation, we simulated the cost analysis as if the project would go on to be a finished product. Following CS620 came CS670 where we had six weeks to implement our design and each split off to work on sections of the application. Our project development followed an agile workflow approach, which involved weekly meetings to present deliverables and decide on the following steps.

Functional Requirements

  • User authentication and account creation
  • Rate a title
  • Searching titles
  • Get recommendation
  • Add/remove the title from the user's watchlist

Non-Functional Requirements

  • User Friendliness
  • Scalability
  • Security
  • Compatibility
  • Capacity

Recommendation Algorithm Weights

When titles are recommended to a user, the title ID previously selected is fed into the algorithm and spits out 20~ titles based on parts of the original title. We weigh the Genre, Actors, Directors, and the title's rating against similar titles and select the tags with the closest matches to the original title.

  • Genre: 25%
  • Actors: 30%
  • Directors: 15%
  • Rating: 20%

Note: These values are subject to be changed

Architecture

Detailed Models


Context diagram


Data flow diagram


Level 0 DFD


Use-Case diagram

Database Design


ER diagram

Figma Design vs Prototype

     
Login Page

     
Create Account Page

     
Main Page
Note: Our Dataset does not include images, finding images was outside the scope of this project

     
Watchlist Page

     
Title Page

Datasets

This link provides datasets from Netflix, Hulu, Amazon Prime Video, and Disney+ from roughly 2021. https://www.kaggle.com/datasets/shivamb/netflix-shows

About

EntertainMe! is a simple webapp for reviewing media and getting recommendations. Sacred Heart University MSCSIT Capstone Project

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors