0% found this document useful (0 votes)
5 views14 pages

Movie Suggestion System Python Lab Report

The document is a project report for a Movie Suggestion System developed as part of a Python for Data Science lab course at REVA University. The system aims to alleviate 'decision paralysis' faced by users on OTT platforms by providing quick, offline movie recommendations based on user preferences. The report includes details on the project's objectives, implementation, testing, and potential future enhancements.

Uploaded by

isabelleadonis97
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
5 views14 pages

Movie Suggestion System Python Lab Report

The document is a project report for a Movie Suggestion System developed as part of a Python for Data Science lab course at REVA University. The system aims to alleviate 'decision paralysis' faced by users on OTT platforms by providing quick, offline movie recommendations based on user preferences. The report includes details on the project's objectives, implementation, testing, and potential future enhancements.

Uploaded by

isabelleadonis97
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd

School of Computer Science and Engineering

Python For Data Science lab

Project Report
Course Code: B25CS0102 Semester: 1st

Academic Year: 2025-26 Batch: CSE -E

Project Details
Movie Suggestion System
Project Title:

Place of Project: REVA UNIVERSITY, BENGALURU

Student Details:

Name Sign:
SRN
Shafia Anum R25EF245
Sulekha.P R25EF275
Roja.S R25EF220
[Link] R25EF223
Guide and Lab Faculty Member Details
Name of the Faculty Sign:
Date:
Marks by Lab
Faculty(5M)

Guide: Prof. Shiva Kumar R Naik


CONTENT

1 Abstract Page No.1

2 Introduction Page No.1

3 Problem Statement. Page No.2

3.1 Core Problem


3.2 The Need for Automation
3.3 The Impact

4 Project overview Page No.2

5 Objectives and goals Page No.3

6 Implementation Page No.3


-
6.1 Problem Analysis
Page No.10
6.2 Methodology / Algorithm
6.3 Modules Identified
6.4 Code with Comments

7 Output and Results Page No.10


-
Page No.11

8 Conclusion Page No.12

9 References Page No.12


1. ABSTRACT
In the modern digital landscape, the abundance of content on Over-
The-Top (OTT) platforms has created a phenomenon known as
"decision paralysis." Users often spend excessive time scrolling
through libraries of thousands of movies without making a
selection. The Movie Suggestion System is a Python-based
application designed to alleviate this issue. By leveraging core
Python data structures such as lists and dictionaries, combined with
the random module, the system offers an instant, offline solution
for entertainment selection. This report details the design,
implementation, and testing of the system, demonstrating how
simple algorithmic logic can solve real-world user frustration.

2. INTRODUCTION
Managing entertainment choices effectively is becoming
increasingly difficult. While technology has provided access to
unlimited content, it has also introduced the "Paradox of Choice,"
where having too many options leads to anxiety and indecision.
Traditional methods of browsing are manual, time-consuming, and
often result in users abandoning the platform entirely.

This project introduces a Python-based automation tool: the Movie


Suggestion System. Unlike complex recommendation engines that
require user history and internet connectivity, this tool is designed
to be lightweight, offline, and instant. It serves as a beginner-
friendly demonstration of how Python can be applied to build
practical utilities that enhance daily life.

3. PROBLEM STATEMENT
3.1 Core Problem:
Statistics suggest that users spend between 20 to 40 minutes
merely browsing OTT applications (like Netflix or Prime) trying to
decide on a title. This "scrolling fatigue" significantly reduces the
actual time available for entertainment.

3.2 The Need for Automation:


Manual selection is inefficient. Current solutions require expensive
subscriptions, high-speed internet, and login credentials. There is a
lack of simple, offline tools that provide an immediate, unbiased
recommendation.

3.3 The Impact:


The inability to choose quickly leads to frustration, wasted time,
and a poor user experience. This project aims to reclaim that lost
time by automating the decision process.

4. PROJECT OVERVIEW
The Movie Suggestion System is a console-based platform with
the following key features:
• Genre-Based Filtering
• Randomized Logic
• Offline Accessibility
• Instant Output

5. OBJECTIVES AND GOALS


Objectives:
• To design a simple and efficient decision-making algorithm.
• To implement Python dictionaries for data storage and retrieval.
• To utilize the random library for probabilistic selection.

Goals:
• Reduce user decision time from 20 minutes to under 5 seconds.
• Create a bug-free, user-friendly interface.
• Demonstrate the practical application of Python for First-Year
Engineering concepts.

6. IMPLEMENTATION
6.1 Problem Analysis:
To solve the problem, we required a data structure that maps
a "Key" (Genre) to multiple "Values" (Movies). A Python
Dictionary was chosen over simple lists because it allows for
organized categorization and fast lookup speeds.

6.2 Methodology / Algorithm:


START → DISPLAY → INPUT → VALIDATE →
PROCESS → SELECT → OUTPUT

6.3 Modules Identified:


Input Module
Data Handling Module
Logic Module

6.4 Code with Comments

#!/usr/bin/env python

# coding: utf

# In[1]:

import pandas as pd

import random

import [Link] as plt

from [Link] import display

languages = ["English", "Hindi", "Tamil", "Telugu", "Malayalam",


"Kannada"]

genres = ["Sci-Fi", "Comedy", "Action", "Thriller", "Drama", "Sports",


"Romance", "Crime"]

movie_names = {

"English": {

"Sci-Fi": ["Inception", "Interstellar", "Arrival"],

"Comedy": ["The Hangover", "Free Guy", "Crazy Rich Asians"],


"Action": ["Mad Max Fury Road", "John Wick", "The Dark Knight"],

"Thriller": ["Se7en", "Gone Girl", "Shutter Island"],

"Drama": ["The Shawshank Redemption", "Forrest Gump", "The


Pursuit of Happyness"],

"Sports": ["Moneyball", "Rush", "Ford v Ferrari"],

"Romance": ["The Notebook", "La La Land", "Before Sunrise"],

"Crime": ["The Godfather", "Heat", "Scarface"]

},

"Hindi": {

"Sci-Fi": ["PK", "[Link]", "Robot"],

"Comedy": ["3 Idiots", "Munna Bhai MBBS", "Chup Chup Ke"],

"Action": ["War", "Dhoom", "Singham"],

"Thriller": ["Andhadhun", "Drishyam", "Badla"],

"Drama": ["Taare Zameen Par", "Swades", "Pink"],

"Sports": ["Dangal", "Chak De India", "Bhaag Milkha Bhaag"],

"Romance": ["Jab We Met", "Kal Ho Naa Ho", "Veer-Zaara"],

"Crime": ["Gangs of Wasseypur", "Company", "Satya"]

},

"Tamil": {

"Sci-Fi": ["Enthiran", "2.0", "Indru Netru Naalai"],

"Comedy": ["Boss Engira Bhaskaran", "Soodhu Kavvum",


"Kalakalappu"],

"Action": ["Vikram", "Kaithi", "Master"],

"Thriller": ["Ratsasan", "Dhuruvangal Pathinaaru", "Imaikkaa


Nodigal"],

"Drama": ["Asuran", "Jai Bhim", "Visaranai"],


"Sports": ["Irudhi Suttru", "Kanaa", "Jeeva"],

"Romance": ["96", "Vinnaithaandi Varuvaayaa", "OK Kanmani"],

"Crime": ["Vada Chennai", "Theeran Adhigaaram Ondru", "Viswasam"]

},

"Telugu": {

"Sci-Fi": ["Aditya 369", "24", "Oke Okkadu"],

"Comedy": ["F2", "Jathi Ratnalu", "DJ Tillu"],

"Action": ["RRR", "Baahubali", "Pushpa"],

"Thriller": ["Evaru", "Goodachari", "Hit"],

"Drama": ["Leader", "Rangasthalam", "Jersey"],

"Sports": ["Jersey", "Gold", "Gani"],

"Romance": ["Geetha Govindam", "Arjun Reddy", "Ye Maaya


Chesave"],

"Crime": ["Kshanam", "Agent Sai Srinivasa Athreya", "Anukokunda


Oka Roju"]

},

"Malayalam": {

"Sci-Fi": ["Android Kunjappan", "9", "Red Rain"],

"Comedy": ["Kunjiramayanam", "Om Shanti Oshana", "Godha"],

"Action": ["Lucifer", "Ayyappanum Koshiyum", "Kurup"],

"Thriller": ["Drishyam", "Anjaam Pathiraa", "Joseph"],

"Drama": ["Kumbalangi Nights", "Uyare", "Take Off"],

"Sports": ["Godha", "Finals", "Kho Kho"],

"Romance": ["Premam", "Bangalore Days", "Hridayam"],

"Crime": ["Mumbai Police", "Iyobinte Pusthakam", "Virus"]

},
"Kannada": {

"Sci-Fi": ["Lucia", "Kavaludaari", "RangiTaranga"],

"Comedy": ["Kirik Party", "Googly", "French Biriyani"],

"Action": ["Kantara", "Ugramm", "Tagaru"],

"Thriller": ["U Turn", "Birbal", "RangiTaranga"],

"Drama": ["Mungaru Male", "Charlie 777", "Dia"],

"Sports": ["Kiccha", "Rama Rama Re", "Yuvarathnaa"],

"Romance": ["Dia", "Love Mocktail", "Krishna Leela"],

"Crime": ["Birbal", "Kavaludaari", "Popcorn Monkey Tiger"]

data = []

for lang in languages:

for genre in genres:

for title in movie_names[lang][genre]:

[Link]({

"Title": title,

"Language": lang,

"Genre": genre,

"Rating": round([Link](6.0, 10.0), 1),

"Year": [Link](2005, 2024)

})
df = [Link](data)

[Link]()

print("Available Languages:", df["Language"].unique())

print("Available Genres:", df["Genre"].unique())

language = input("Enter preferred language: ").title()

genre = input("Enter preferred genre: ").title()

min_rating = float(input("Enter minimum rating (e.g. 8.0): "))

recommendations = df[

(df["Language"] == language) &

(df["Genre"] == genre) &

(df["Rating"] >= min_rating)

if [Link]:

print("\n❌ No movies found matching your preferences.")

else:

print("\n🎬 Recommended Movies:\n")

display(recommendations.reset_index(drop=True))

# Plot ratings if recommendations exist

# Plot ratings if recommendations exist

# Plot ratings if recommendations exist

if [Link]:

print("No movies to plot.")

else:

[Link]()
# Combined dark + aesthetic palette

combined_colors = [

"#C3B1E1", # Lavender

"#F4A6C1", # Baby pink

"#40E0D0", # Turquoise

"#1f1f1f", # Dark charcoal

"#2f3640", # Dark slate

"#40E0D0", # Turquoise

"#192a56", # Navy

"#2d3436", # Gunmetal

"#273c75", # Indigo

"#3b3b3b", # Dark grey

"#C3B1E1" # Lavender

# Trim or repeat colors to match number of bars

colors = (combined_colors * ((len(recommendations) //


len(combined_colors)) + 1))[:len(recommendations)]

[Link](recommendations["Title"], recommendations["Rating"],
color=colors)

[Link](rotation=45, ha="right")

[Link]("Recommended Movies vs Ratings")

[Link]("Rating")
[Link]("Movie Title")

[Link]()

# In[ ]:

7. OUTPUT AND RESULTS

The application was tested with multiple inputs to ensure


reliability.
Test Case 1:
Input: Action
Output: Recommendation: KGF Chapter 1

Test Case 2:
Input: Comedy
Output: Recommendation: Hera Pheri

Result Analysis: The system successfully identifies valid inputs


and rejects invalid ones, providing a robust user experience.
8. CONCLUSION
The Movie Suggestion System successfully meets its primary
objective of automating entertainment selection. By using Python's
robust standard libraries, the project eliminates the scrolling
fatigue faced by users.

Future Enhancements: Future versions of this project could include


a Graphical User Interface (GUI) using Tkinter, or integration with
the IMDb API to fetch real-time ratings and posters.

9. REFERENCES
Python Official Documentation ([Link])
Python Crash Course by Eric Matthes
W3Schools Python Tutorial (Random Module & Dictionaries)

You might also like