Tribhuvan University
Institute of Science and Technology
A 3rdYear Project Report
on
Movie Recommendation System
Submitted to:
Department of Computer Science and Information Technology
Ambition College
Baneshwor, Kathmandu, Nepal
In partial fulfilment of the requirements
for the Bachelors of Science in Computer Science and Information Technology
Submitted by:
Kusum Katwal
Shreya Pokhrel
Subodh Shah
Sushmita Shrestha
Under the supervision of
Mr. Tej Bahadur Shahi
July 2019
Recommendation
I hereby recommend that this project report prepared under my supervision by the
team of Kusum Katwal, Shreya Pokhrel, Subodh Shah and Sushmita Shrestha entitled
“Movie Recommendation System” is accepted as fulfilling in partial requirements for
the degree of Bachelor of Science in Computer Science and Information Technology.
In my best knowledge, this is an original work in Computer Science by them.
__________________________
Mr. Janak Raj Joshi
Head of Department,
Department of Computer Science and Information Technology,
Ambition College, Baneshwor, Kathmandu
Supervisor
Tribhuvan University
Institute of Science and Technology
Department of Computer Science and Information Technology
Ambition College
Baneshwor, Kathmandu, Nepal.
We certify that we have read this dissertation work and, in our opinion, it is
satisfactory on the scope and quality as a dissertation in the partial fulfilment for the
requirement of Bachelors of Science in Computer Science and Information
Technology.
Evaluation committee
_____________________ _____________________
Mr. Janak Raj Joshi Mr.Tej Bahadur shahi
Head of Department Lecturer
Department of CSIT Department of CSIT
Ambition College. Ambition College.
Baneshwor, Kathmandu Baneshwor Kathmandu
ACKNOWLEDGEMENT
This project is specially prepared to get the knowledge at the practical based
assignment of bachelor level B.Sc. (CSIT) syllabus, during the preparation of this
dissertation for “Movie Recommendation System”. This project work hasbeen
performed under Department of Computer Science and Information
Technology,AmbitionCollege, Baneshwor, Kathmandu, Nepal. We also thank all
team members of my department for giving us support.
We would like to thank our supervisor Mr.Tej Bahadur Shahi, Lecturer Tribhuvan
University. Without his help and suggestion this project could not have been done. He
has advised us on the relevant track to follow on our research. He has shown good
patience and high level of experience to guide us through and we have gained the
valuable knowledge with him as a result. We would always be grateful for his
guidance and support.
Most importantly we would like to thank respected Mr.Janak Raj Joshi, Head of
Department, Ambition College for his kindness and inspiration within this time
period.
We thank to all our colleagues and friends for supporting us directly and indirectly in
this project work.
Table of Contents
Content Pageno.
Chapter 1:Introduction
1.1 Introduction 1
1.2 Problem definition 2
1.3 Objectives 2
1.4 Scope and limitation 2-3
1.5 Report and Organization 3
Chapter 2: Requirement analysis and Feasibility Study
2.1 Literature Review 4
2.2 Requirement Analysis 5
2.3 Feasibility Analysis 7
2.4 Structuring System Requirement
Chapter 3: System Design
3.1 System Design
Chapter 4:Implementation and Testing
4.1 Background Study 15
4.2 Implementation Tools
4.3 Testing
4.4 Test Cases
Chapter 5: Conclusion 19
References 20
CHAPTER 1
INTRODUCTION
1.1 Introduction
Movie recommender system is a type of filtering system that presents list of movies
which are likely of user interest. Recommender systems have become increasingly
popular in recent years, and are used in many areas including movies, music, news,
books, and social media in general. Recommender systems handle the problem of
information overload that users normally encounter by providing them with
personalized, exclusive content and service recommendations. A movie
recommendation is important in our social life due to its strength in providing
enhanced entertainment. Such a system can suggest a set of movies to users based on
their interest, or the popularities of the movies. Although, a set of movie
recommendation systems have been proposed, most of these either cannot recommend
a movie to the existing users efficiently or to a new user by any means. Recently,
various approaches for building recommendation systems have been developed,
which can utilize either collaborative filtering, content-based filtering or hybrid
filtering. Two main approaches are used for recommender systems. One is content-
based filtering, where we try to profile the user’s interests using information collected,
and recommend items based on that profile. The other is collaborative filtering, in
which two users share the same interest in the past, e.g if they liked the same book or
the same movie, they are likely to have similar tastes in the future. Recommender
systems are used to provide personalized recommendations according to the user
profile and previous behaviour. Recommender systems are widely used in the Internet
Industry. Services like Amazon, Netflix, and YouTube are the typical example of
recommender system users. Movie recommender system cannot only help the users
find their favourite movie, but also bring potential profit to online service providers.
1.2Problem Definition
This paper is based on recommendation system that recommends different things to
users. This system will recommend movies to user’s. This may be sometime useless
for the users who have different taste from there commendations shown by the system
as every user may have different tastes. This system calculates the similarities
1
between different users and then recommend movie to them as per the ratings given
by the different users of similar tastes. This will provide a precise recommendation to
the user. This is a web based system where there is a movie web service which
provides services to user to rate movies, see recommendations put comments and see
similar movies.
1.3Objectives
The major objective of this project is to develop an application which gives
recommendation on which movies to watch and increase user’s satisfaction.
The major objectives of this system are:
To recommend good movies to the user.
To provide the better and best collections of the movies.
To provide the users the list of movies of their interest.
To decrease the confusion of users about which movies to watch
1.4 Scope and limitation
This system provides a better platform for users to list which movies to watch. The
goal of this system is to provide a better recommendation for the user so that they can
get the movies of their type.
Limitations
After studying the project surfacely, we might encounter some problem during the
implementation process of this project. They may reduce the efficiency of this project.
Some limitations are:
Sometimes the recommended movies may not be of user’s interest.
No any options to watch the trailer of the movies.
User has to select the multiple movies to get recommendation.
The recommended system gives the recommended movies names only.
2
1.5 Report organization
Report organization is an important part for report formation and understanding the
report properly. It gives idea about the structure of the report. For readability, this
document is divided into several chapters and sub chapters including all details of the
project. Here’s brief description about all the chapters:
First chapter gives the introduction about the whole report. It includes short
introduction of the system, objectives, scope and limitations of the system.
Second chapter includes requirement analysis in the project. It also contains
functional and non-functional requirement, feasibility study and data and
process modelling.
Third chapter is about system design and includes sub chapters like database
schema design, interface design and process design.
The fourth chapter is about implementation and testing part. It includes the
tools that are essential to implement the system. In testing section, different
testing methodologies are included.
The fifth chapter includes maintenance and support of the system.
The last chapter i.e. sixth is about conclusion of the whole project. It also
provides information about what can be achieved or done further.
3
CHAPTER 2
REQUIREMENTANALYSIS AND FEASIBILITY STUDY
2.1 Literature Review
Movie recommendation applications support the interaction between different users
participating in a different recommendation process via the network, as well as the
management of the data involved in the process.
A good site should present the following factors to the users for better usability [1]:
• Recommend the movies best on the rating and user interests.
• Returning to different parts of the site after recommending a movie.
• User friendly to use the various sites.
• Better and best collection of the movies.
Another important factor in the design of this site is feedback. The interactive cycle
between a user and a web site is not complete until the web site responds to a
command entered by the user. Imagine trying to talk to someone when you cannot
even hear your own voice, or trying to draw a picture with a pencil that leaves no
mark: there would be no feedback".
In these websites, recommendations algorithms are the core part. Whenever a user
watches something online, websites recommends them similar product based on their
choice. Other attributes that can be used for suggestions are items viewed, user
profile, age, demographic data and many more [3].
There are three common approaches to implement the recommendation system:
Traditional Collaborative Filtering, Cluster models, and search based methods.
Collaborative Filtering is also referred to as social filtering, filters information by
using the recommendations of other people. It is based on the idea that people who
agreed in their evaluation of certain items in the past are likely to agree again in the
future. Cluster models divide the customer base into many segments and treat the task
as a classification problem. The algorithm’s goal is to assign the user to the segment
4
containing the most similar customers. It then uses the purchases and ratings of the
customers in the segment to generate recommendations. The segments typically are
created using a clustering or other unsupervised learning algorithm. Using a similarity
metric, a clustering algorithm groups the most similar customers together to form
clusters or segments. Once the algorithm generates the segments, it computes the
user’s similarity to vectors that summarize each segment, then chooses the segment
with the strongest similarity and classifies the user accordingly. Some algorithms
classify users into multiple segments and describe the strength of each relationship
[4].
2.2 Requirement Analysis
It is necessary to analyze the whole system requirements before developing and
implementing the system. Requirements can be specified into two parts i.e. functional
and non-functional requirements.
2.2.1 Functional Requirements
It describes what a software system should do when it is given input. Some of the
functional requirements are:.
User can get the recommended movies list after giving inputs.
User can give rating to the movies.
Fig:1 Block Diagram
5
2.2.2 Non-functional Requirements
A non-functional requirements describe how the system performs certain functions.
Non-Functional requirements generally specify the system’s quality attributes or
characteristics.
In general sense, non-functional requirements include:
This system should be capable of supporting large number of visitors.
User should first input the movies name to get the recommendations.
2.3 Feasibility Analysis
Feasibility analysis is a part of system analysis carried to confirm whether the system
being developed is actually feasible or not. This is the phase where any system
designers are able to know whether to start the project or not.
We performed some study and analysed the system and get to know that it is feasible
to make the system. Mainly four types of feasibility studies were done with this
system analysis, namely: Economic feasibility, Operational feasibility, Technical
feasibility and Schedule Feasibility.
2.3.1 Economic feasibility
Developing and deploying this system has a small economical cost. All the resources
required to develop this system are computers and server for deploying the system.
For development, PCs that support any Operating System with some applications is
sufficient. For deployment, server is required. During data collection too, not much
cost was spent and same with time as well. Further, it does not cost much to develop
and access this system and hence, we can say it is economically feasible to develop
the system.
2.3.2Operational feasibility
This project allows users to perform all the rudimental operations that are needed in
the forum. This project is made by taking deliberate consideration on the generally
used similar platforms. This project won’t come up as cheap imitation rather as a full-
6
fledge application. This system will provide correct results according to the way the
system needs to do. Hence, this system is operationally feasible too.
2.3.3 Technical feasibility
We can say that the current web application, we are building, is technically feasible.
This system is built using simple programming language and design, which can be
used by any users and can get better place, which contain information regarding
different services.As per technicality goes this project should be able to perform
smoothly, without the hints of error.
2.3.4 Schedule feasibility
This project with the conjoint effort of our team should be ready as per our
assumption. On the time of making this proposal our system is being developed in trail
blazing rate with less to no hiccup .A system is said to be scheduled feasible if it is
implemented within the planned scheduled. We carried out the study on how much it
will take to complete the task after studying the requirements and proposed plan.
S/N Task Name Weeks
1 2
3 4 5 6 7
1. Study &Analysis
2. Data Collection
3. Implementation
4. Testing
5. Documentation
6. Review
7
2.4 Structuring System Requirements
Giving structure to system requirements helps to get better idea about the system
process and to know how the system actually works. Different models can be designed
to represent the system and show the flow of data in different part of the system.
In this project, we perform various activities regarding the relationships, data
manipulations and data processing .The data processing is represented in the
diagrammatic form so that every individual who look at the diagram can understand.
about the main gist of the system. Diagrams are made following the Structured
Approach that contains ER-Diagram (Entity Relationship Diagram) as a data
modelling approach and DFD (Data Flow Diagram) as a process modelling approach.
2.4.1 Data Modelling
The ER-Diagram contains different entity sets, relationship sets along with their
properties and data flow direction. The system contains the following entity sets and
their relationship.
Fig 2: ER Diagram of system
8
2.4.2 Process Modelling
Process Modelling is a part of structuring the requirement where different processes in
the system are connected with the sources and sink.
Context Diagram:
The diagram shows overall system process. There are two source/sink admin,
user(query) and user linked with a single process. There is shown the flow of
information from one source to the main process and vice versa.
Fig3: Context Diagram (level-0)
9
CHAPTER 3
SYSTEM DESIGN
3.1 Database Schema Design
Database Schema is the overall representation of database tables in a way that
represents all the co-relations between them. The database schema design of our
project is given below:
Movies Table
Attributes Data Types
MovieId (PK) INT
Title nvarchar(256)
Year INT
Movies Rating Table
Attributes Data Types
UserId INT
MovieId INT
Rating FLOAT
Movie Genres Table
Attributes Data Types
MovieId Int
GenreId Bit
10
Genres Table
Attributes Data Types
GenreId Int
Name Nvarchar(50)
3.2 Process Design
The process design is the way of representing the working process in the system. It is
similar to the data flow diagram where every processes are decomposed in order to
show clear flow of data in the system.
Here, in this system we have decomposed some of the processes so that it can give the
give the information about data flow in the system.
Fig 3.3: - Decomposition diagram for the system
11
CHAPTER 4
IMPLEMENTATION AND TESTING
4.1Background Study
In order to design the system, it is necessary to know the background knowledge of
basic terms in programming language. This system is possible using some
programming languages and tools. This project is done using Asp.NET CORE in
backend. The frond end part is made using HTML, CSS, Bootstrap, JavaScript etc. As
for database, to get the movies list movie lens dataset is imported in database. We
have also used NRECO recommendation engine to recommend the movies.
4.2 Implementation Tools
This is the phase where we are actually building the system. Firstly, the whole
information that we gathered are studied, analysed and then it was processed to build
an actual system. Different tools and technologies that we have used are given below:
4.2.1 HTML, CSS, BOOTSTRAP
In this system, HTML is used to display the data in the web browser. Interactive forms
are created using HTML codes. Many pages include HTML codes that also links other
pages and codes. In the header section of HTML tag, designing link are places so that
it is accessed in every page.
CSS, used as a designing tool, helps the interface look much better. Bootstrap, so
called framework of CSS, contains various classes for designing the interface. It gives
better shape to CSS and make the page more interactive and good looking. We have
used Bootstrap classes to make nice frame of design.
4.2.2 Asp.Net CORE
We have used Asp.Net CORE as backend of our project.
12
4.2.3 ML.Net
ML.Net is the machine learning framework which is used in our project. It helps to
recommend movies using matrix factorization method.
4.2.4 Ms Sql
As mentioned above, we have used movie lens dataset to get the movies list. For the
ease of working we have imported the dataset in the Ms Sql database.
4.2.5 Visual Studio
We have used Visual Studio to create application for users. We have written our app
in C# Programming Language using Visual Studio.
4.3 Testing
Various types of testing procedures were performed in order to check the working
mechanism and correctness of the system. Some of the types of testing that we did
attempt are described below:
4.3.1 Unit Testing
We have tested each modules of this system in order to check the correctness of the
output. Firstly, we found many errors and then it was resolved stepwise. Hence, this
test was successful. For this testing, we test for login section by registering new users
and providing access to use the system. We added Users, Replies Channel and Likesin
the database. Hence, unit testing is done.
4.3.2 Integration Testing
We used this testing process to verify the functional, performance, and reliability
between the modules that are integrated. For this test, we combined some modules of
task like commenting on a discussion, liking a reply, marking as a best answer and
checked for output. Correct output is obtained through this test.
4.3.3 System Testing
In this testing process, we assembled all the components of the system at a common
place and created test. Inputs were given to the system which includes adding
13
discussion, replying to that discussion, liking and disliking discussion, marking reply
as the best answer, watching the discussion all at the same time. Thus, system testing is
carried out.
14
CHAPTER 5
CONCLUSION
5.1 Conclusion
Hence, we have developed web application named “ Movie Recommendation
System”. Our project provides anytime, anywhere service to the users for ordering the
products online. The recommendation system tries to suggest the movies which the
user wants to watch. The system displays the movies that may be of user’s interest.
This system is built in order to help people by providing a better platform for
searching the movies which they would be satisfied by watching them. Hence, they
feel comfortable to visit the website repeatedly.
15
References
[1] G. Adomavicius and A.Tuzhilin, “Toward the next generation of recommender
systems: A survey of the state-of-the-art and possible extensions,” IEEE Trans.
Knowl. Data Eng.
[2] G. Linden, B. Smith, and J. York, “Amazon recommendations: Item to-item
collaborative filtering,” IEEE Internet Comput, Feb. 2003.
[3] Michael Hashler, “Recommender Lab: A Framework for Developing and
Testing Recommendation Algorithms”Nov. 2011
16
17