Skip to content

MovieMate provides a simple and user-friendly solution for movie enthusiasts who struggle to find relevant and accurate information.

Notifications You must be signed in to change notification settings

Shelly0104/MovieMate

 
 

Repository files navigation

MovieMate

Overview

MovieMate provides a simple and user-friendly solution for movie enthusiasts who struggle to find relevant and accurate information. MovieMate allows fuzzy search and full-text search, which improves flexibility. Additionally, this application serves as a solid starting point for further development, such as implementing payment options and personalized recommendation systems. Throughout the development process, with features and theories covered in the class, methods for improving performance through the utilization of normalization and query optimization have been explored.

Demo link:

https://drive.google.com/file/d/1Zl6QjXRinFMqK_uYCgaCklU_WBmPA-PE/view?usp=share_link

Technology Stack and System Architecture

List of technologies

  • Python(Jupyter Notebook): data cleansing and data scrap- ing
  • MySql: managing the data
  • Node.js: running environment for JavaScript
  • React: building interactive user interface
  • CSS: styling and formatting web pages
  • HTML: creating structures and contents of the webpage
  • MUL: building visually appealing web applications
  • Recharts: create interactive and responsive charts and graphs
  • Git: version control
  • Postman: API testing
  • Midjourney: generating logo
  • Balsamic Mockup: interface design tool for creating wireframes
  • Premiere Pro: demo editing

System Architecture

image

ER Diagram

image

Query Optimization

  • For 1,2,3, and other queries: performance improved by switch from AND to JOIN, eliminating unnecessary columns, minimizing the number of joins required, and pushing selections and projections ahead of joins, which reduced the amount of data processed.
  • Improved the Oscar movie recommendation(4) by replac- ing the CTE with a subquery and counting the number of Oscar nominations in the same query with selecting Oscar winning movies. This optimization led to a faster and more efficient Optimized query, which only requires two joins compared to the old query’s four joins.
  • By implementing subqueries to perform aggregations be- fore joining tables and including the WHERE statement within the subquery, we minimized the amount of data being joined. This resulted in significantly faster query ex- ecution. Furthermore, we utilized the IFNULL function to effectively handle null values and ensure the query did not encounter any errors in case of null values within the database. Overall, these optimization techniques improved the efficiency and robustness of the top Oscar director query.
  • For the query related to legendary actresses, we optimized the code by combining some subqueries and minimizing the number of joins, which decreased the overall computation time. To further enhance query performance, we utilized the STR_TO_DATE function to convert the date_of_birth column into a date format to address the data type issue.

image

Team members

About

MovieMate provides a simple and user-friendly solution for movie enthusiasts who struggle to find relevant and accurate information.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 51.4%
  • HTML 27.4%
  • Jupyter Notebook 18.7%
  • CSS 2.5%