Report
Report
SYSTEM
A Project Report submitted in partial fulfilment of the requirements for
the award of the degree of
Bachelor of Technology
in
Computer Science and Engineering
By
Aryan Patel Priyansh Gupta
Roll No.: 2115000215 Roll No.: 2115000773
GLA University
Mathura- 281406, INDIA
April, 2025
Department of Computer Engineering and Applications
GLA University, 17 km Stone, NH#2, Mathura-Delhi Road,
P.O. Chaumuhan, Mathura-281406 (U.P.)
Declaration
I hereby declare that the work which is being presented in the B.Tech. Project
“Movie Recommendations System”, in partial fulfillment of the requirements
for the award of the Bachelor of Technology in Computer Science and
Engineering and submitted to the Department of Computer Engineering and
Applications of GLA University, Mathura, is an authentic record of my own
work carried under the supervision of Dr. Pappu Kumar Bhagat (Assistant
Professor)
The contents of this project report, in full or in parts, have not been
submitted to any other Institute or University for the award of any degree.
Certificate
This is to certify that the above statements made by the candidate are correct
to the best of my/our knowledge and belief.
_______________________
Supervisor
(Name of Supervisor)
Dr. Pappu Kumar Bhagat
Dept. of Computer Engg, & App.
______________________ ______________________
Project Co-ordinator Program Co-ordinator
(Dr. Mayank Srivastava) (Dr. Nikhil Govil)
Associate Professor Associate Professor
Dept. of Computer Engg, & App. Dept. of Computer Engg, & App.
Date: 30/04/2025
ACKNOWLEDGEMENT
I hereby declare that the work which is being presented in the B.Tech. Project
"Movie Recommendation System", in partial fulfillment of the requirements
for the award of the Bachelor of Technology in Computer Science and
Engineering and submitted to the Department of Computer Engineering and
Applications of GLA University, Mathura, is an authentic record of my own
work carried out under the supervision of Dr. Pappu Kumar Bhagat (Assistant
Professor).
The contents of this project report, in full or in parts, have not been submitted to
any other Institute or University for the award of any degree.
In today’s digital era, the abundance of available movies across various platforms often
overwhelms users, making it difficult to select content that aligns with their preferences.
A movie recommendation system serves as an intelligent solution by suggesting films
tailored to individual tastes, improving user experience and satisfaction. This project
aims to design and implement a Movie Recommendation System utilizing machine
learning techniques to predict and recommend movies based on user profiles, historical
data, and behavioral patterns.
Technologies used include Python programming, Pandas for data manipulation, Scikit-
learn for machine learning algorithms, and Streamlit for developing an interactive user
interface. The system provides users with a seamless and intuitive experience, allowing
them to discover new movies efficiently. Through this project, we demonstrate the
application of data-driven methodologies in solving real-world problems and highlight
the potential of recommender systems in the entertainment industry.
This project not only showcases technical proficiency in machine learning and software
development but also contributes to a growing field where personalization plays a
crucial role in user engagement.
List of Figures
1 System Architecture 7
2 Collaborating Filtering 17
3 User Based 18
4 Level 0 DFD 22
5 Level 1 DFD 22
6.1 Class Diagram 23
6.2 Object Diagram 23
6.3 Sequence Diagram 24
6.4 Collaboration Diagram 24
7 Implementation 28
8 Code Front-end & Back-End 30
CONTENTS
Declaration ii
Certificate ii
Acknowledge iii
Abstract iv
List of figures v
List of Tables vi
CHAPTER 1 Introduction 1
1.1 Overview and Motivation 2
1.2 Objective 3
1.3 Summary of Similar Application 4
1.4 Organization of the Project 5
1.5 Proposed System 6
1.5.1 Advantages 7
APPENDICES
Appendix 1. Description Page
Appendix 2. Sample References
Chapter 1 Introduction
Chapter 1
Introduction
1.1 Motivation and Overview
1.2 Objective
and the likelihood of enjoyment. This multi-layered approach ensures that the
recommendations are not only relevant but also tailored to the unique tastes of
each individual. The system is constantly evolving and adjusting, ensuring that
users discover content that fits their ever-changing preferences.
Collaborative filtering (CF) is one of the most widely adopted and successful
recommendation approaches. Unlike many content-based approaches which
utilize the attributes of users and items, CF approaches make pre dictions by
using only the user-item interaction information. These methods can capture
the hidden connections between users and items and have the ability to provide
serendipitous items which are helpful to improve the diversity of
recommendation. recommendation systems have been indispensable
nowadays due to the incredible increasing of information in the world,
especially on the Web. These systems apply knowledge discovery techniques
to make personalized recommendations that can help people sift through
huge number of available articles, movies, music, web pages, etc. Popular
examples of such systems include product recommendation in Amazon, music
recommendation in Last.fm, and movie recommendation in Movie lens.
Chapter 2
Software Requirement Analysis
The Technical Feasibility analysis evaluates the technical aspects of the Movie
Recommendation System project, considering both the hardware and software
requirements needed to develop, implement, and deploy the system. It also
includes a review of the various technical challenges that may arise during the
project and how we plan to address them. A successful recommendation
system is highly dependent on the integration of algorithms, databases, and
user interfaces, which requires careful planning and resource management.
2.6.1 Python
Python can connect to database systems and also read and modify files.
Python can be used to handle big data and perform complex mathematics.
Python has a simple syntax, which is similar to the English language, making
it easier for developers to write code.
The syntax allows developers to write programs with fewer lines compared to
many other programming languages.
The most recent major version of Python is Python 3, which is used in this
project. However, Python 2, although no longer receiving updates other than
security patches, is still widely used.
Python 2.0 was released in 2000, and the 2.x versions were the standard until
December 2008, when Python 3.0 was released. Python 3.0 introduced several
significant changes that were not backward compatible with Python 2.x.
Python 2 and 3 are similar, but not fully compatible. As of January 1, 2020,
Python 2 reached its official End of Life, and it is no longer maintained.
Python was designed with readability in mind and has similarities to the
English language, with influences from mathematics. Unlike many other
languages that require semicolons or parentheses to end statements, Python
uses new lines to denote the end of a command. Additionally, Python uses
indentation to define scope (such as the scope of loops, functions, and classes),
whereas other languages typically use curly brackets.
The rapid growth of the internet has made it increasingly difficult to extract
useful information from the vast amount of available data. This overwhelming
volume of information has created a need for mechanisms that can efficiently
filter relevant data. Collaborative filtering is one of the key techniques used to
address this problem. It is motivated by the idea that individuals often receive
the best recommendations from others with similar tastes.
Collaborative filtering methods are used to match users with similar interests
and provide recommendations based on these similarities. Typically,
participation from users an easy-to-understand way to represent users'
interests, and algorithms capable of matching users with similar interests.
The process typically involves creating a User-Item Matrix, where users are
matched to items (such as movies) they have rated, and the system predicts
ratings for items that the active user hasn't yet seen. These predicted ratings
are based on the preferences of users who have similar tastes. Essentially, the
system works by comparing the active user to other users and using their
collective ratings to make educated recommendations.
In K-NN classification, the output is a class label. The algorithm classifies the
input object by a majority vote of its 'k' nearest neighbors. The class most
common among the neighbors is assigned to the object. If k = 1, the object is
simply assigned the class of the nearest neighbor.
Find the K-nearest neighbors (KNN) to the user. This is done using a similarity
function that measures the distance between the current user and all other users
in the dataset, such as cosine similarity or Euclidean distance.
Predict ratings that the active user will give to items (e.g., movies) that the K-
nearest neighbors have rated, but the active user has not. The system uses these
predicted ratings to recommend items that are most likely to be of interest to
the user. The item with the highest predicted rating can be selected as a
recommendation.
Chapter 3
Software Design
The design of a software system defines the blueprint for the overall
architecture, components, and their interactions. In this chapter, we will
describe the software design for the Movie Recommendation System. The
design process includes system architecture, data flow, and detailed
representations of individual components. It also covers how different
modules interact with each other to meet the requirements set forth in the
earlier chapters. The goal is to provide a comprehensive understanding of the
design decisions and methodologies employed in creating the Movie
Recommendation System.
The system architecture defines the structure of the software and how the
components interact with each other. Our Movie Recommendation System
follows a modular architecture, with distinct layers for data processing,
recommendation algorithms, and the user interface. These modules work in
harmony to provide personalized movie recommendations.
2. Level 1 DFD: This breaks down the system further, showing the
internal workings of the recommendation engine, user interface, and
data storage.
Fig 6.1
Fig 6.2
Fig 6.3
Fig 6.4
Database design is a crucial part of the system since it stores all the
information about users, movies, and their ratings. The database design
includes:
Several key factors were considered during the design phase of the system:
The following sections describe these design elements in detail, providing the
foundation for the implementation of the Movie Recommendation System.
Chapter 4
Implementation and
User Interface
This chapter explains how the movie recommendation system was
implemented from back-end logic to the front-end user interface. It describes
each module's role, how they interact, and how the user receives intelligent
movie recommendations.
4.1 Functional Overview of the System: This section describes the core
functional blocks of the system, detailing how raw data is processed, how
similarity is calculated, and how movies are recommended based on user
input.
Data Collection and Loading: Movie data including titles, genres, cast,
ratings, and summaries is gathered from public APIs or datasets like IMDb
and loaded into the system for processing.
Feature Engineering and Vectorization: Features like genre, cast, and plot
are transformed into numerical formats using encoding techniques (like one-
hot encoding or TF-IDF), making them suitable for machine learning models.
Fig 7.1
Search Box and Movie Selector Panel: Users can search for a movie by
typing its name or pick from a list, triggering the recommendation process in
real time without needing technical knowledge.
.
Fig 7.3
Fig 7.4
4.3 Code: Front-end (PyCharm): In this project we have used popular front-
end web framework (PyCharm) to build an interactive
user interface.
Fig 8.1
Fig 8.2
Fig 8.3
Fig8.4
Chapter 5
Software Testing
1. Unit Testing: Unit testing is the first level of testing, typically performed
by the developers. It focuses on verifying the functionality of individual units
or components of the software.
Chapter 6
Conclusion
5.4 Conclusion
In conclusion, the movie recommendation system developed as part of this
project successfully demonstrated how various recommendation algorithms,
such as collaborative filtering, content-based filtering, and K-means
clustering, can be used to deliver personalized movie recommendations. The
system performed well in providing users with relevant movie suggestions,
based on either user behavior or movie attributes. It was evident that
combining different filtering techniques in a hybrid model enhanced the
overall performance and accuracy of the system.
However, several challenges, such as data sparsity, cold start issues, and
computational complexity, were encountered during the development process.
These challenges presented limitations to the system’s performance,
especially when scaling to larger datasets. Despite these obstacles, the system
showed promise and provided valuable insights into the development of
recommendation systems.
The future work outlined for the system presents a path forward for improving
scalability, incorporating more complex models, and addressing the cold start
problem. By leveraging deep learning, advanced feature extraction, and real-
time feedback, the recommendation system could be further optimized to
deliver even more accurate and dynamic recommendations. Ultimately, this
project contributes to the growing field of recommendation systems and
demonstrates the potential for machine learning to enhance the user experience
in the entertainment industry
Home Page
The home page is the first interface the user interacts with upon entering the
system. It features several key sections: the movie search bar, the upcoming
movie list, and a button that leads to the recommendation page.
Key functionality:
Search bar to quickly find movies by title, genre, or director.
Upcoming movies list showing the latest releases.
Link to navigate to the personalized recommendation page.
Libraries Used
The movie recommendation system utilizes several libraries to facilitate data
processing, machine learning, and web development. Here is an overview of
the major libraries
Code Snippets:
Below are some snippets of the key code used in the system for movie
recommendation: