Skip to content

Repository files navigation

Film-On-A-Whim

Film-On-A-Whim is a C++ movie discovery application that helps users find random movie recommendations based on a selected genre and IMDb rating range. The project compares two custom data structures—a Max Heap and a B+ Tree—to retrieve matching movies from the same dataset.

Features

  • Search for movies by genre
  • Filter movies by IMDb rating range
  • Receive up to five random movie recommendations
  • Compare results from a custom Max Heap and a custom B+ Tree
  • Menu-driven command-line interface

Data Structures

This project implements the following data structures from scratch:

  • Max Heap
  • B+ Tree

Dataset

The project uses a cleaned IMDb movie dataset (Movies.csv) containing over 100,000 movie records.

Each movie includes:

  • Title
  • Release year
  • Genre(s)
  • IMDb rating
  • Number of votes

Requirements

  • C++17 or later
  • A C++ compiler (Visual Studio, g++, Clang, etc.)

How to Run

  1. Clone the repository.
  2. Open the project in your preferred C++ IDE.
  3. Place Movies.csv in the project's root directory (the same folder as the executable).
  4. Build and run the project.
  5. From the main menu:
    • Select Find Movies
    • Enter a genre.
    • Enter a minimum and maximum IMDb rating.
    • View movie recommendations generated by both data structures.

Project Structure

  • main.cpp – User interface and program flow
  • DataLoader.* – Loads and parses the movie dataset
  • Movie.* – Movie data model
  • MaxHeap.* – Custom Max Heap implementation
  • btree.* – Custom B+ Tree implementation

Authors

  • Alice Krupitsky (@alicekrupitsky)
  • Sunay Kanade (@sunayk64)
  • Jack Reinhart (@deweyyyyyy)

About

watch a film on a whim.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages