Introduction
Goal
The goal of IMDb-- is to build a movie-focused platform centered on searching and viewing movie synopses. Beyond the technical challenge, the project was also used as a workflow exercise, simulating a more realistic development environment with fixed meetings, progress sharing, weekly planning, and feedback sessions.
Motivation
The team was motivated by the complexity of the problem. The project required data structures, algorithms, parallel programming, and teamwork, which helped improve both technical depth and communication skills.
Scope
IMDb-- supports searches by prefix or keyword, displays synopses and genres, and lets users keep a liked movies list and a watch later list.
Requirements
Software Requirements
- C++ compiler: g++ (GCC) version 11.2.0 or later or clang++ version 13.0.0 or later
- Operating systems: Linux (Ubuntu, Fedora, Arch, etc.), macOS, Windows
Hardware Requirements
No special hardware is required. The program is not especially demanding in terms of resources.
Installation
If a C++ compiler is not installed yet, it can be installed with: sudo apt-get install g++
Clone the repository and move into the project directory:
git clone <url>
cd imdb--/
Compile the project with: g++ -o main main.cpp
Run it with: ./main
User Guide
When the program starts, the main menu includes the following options:
You have no movies in Likes.
You have no movies in Watch Later.
=== Main Menu ===
1. View Watch Later movies
2. View liked movies
3. Search movies
4. View search history
5. Save state
6. Restore state
7. Recommended movies
0. Exit
--------------------------
| Select an option: |
--------------------------
Main Actions
View Watch Later movies: Shows the movies saved in the Watch Later list. If the list is empty, the program displays a message.
View liked movies: Shows the movies saved in the Likes list. If the list is empty, the program displays a message.
Search movies: The user can search by full title or partial keyword. If there are no matches, the program reports it. If matches are found, the user can optionally filter them by genre.
Results are shown with pagination and extra options: n (next page), g (filter by genre), r (remove filter), 0 (exit).
View search history: Shows previous searches. If there is no history, the program reports it.
Save state: Saves the current application state.
Restore state: Restores the previously saved application state.
Recommended movies: Displays recommended movies. If there are none, the program shows a message.
Exit: Leaves the program.
Documentation
Class Diagram
The class diagram shows the program structure and the relationships between its classes: View Class Diagram
Data Cleaning
The dataset was cleaned using R. The process included loading libraries, loading the dataset, defining a text-cleaning function to remove non-Latin characters and unnecessary symbols, applying the function, and saving the cleaned data.
