Project Report

You might also like

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 23

1.

Introduction

1.1. Project Overview

It is an online movie recommender system to recommend you movies based on


end-users previews likes and rated movies, without wasting so much time in
manual searching. Basically, this system is a collection of three system i.e.
Movie Rating System, Recommendation System and Social Networking
website.
The main objective of this web based system is to efficiently evaluate the
movies for end-users which they wants to see next through a fully automated
system that not only saves lot of time but also gives the fast and accurate results.
Users also can search movies according to this genre.

This system will allow user to rate different movies or to post review on movies.
If any movie is not rated by the user then recommendation will come according
to the users search history. Also, if there is not any movie in search history then
user will be recommended for movies according to trending movies.

It also includes a feature to upload movie detail if there is no movie with the
same name, end-user can add-movies with the form given to add a new movie in
database. The whole process will help user to watch those movies which they
may like without wasting time to download or pay for a movie.

1.2.Purpose

Accurate Recommendations

Semantic Searching

Sharing on Social Network

No need to switch to other websites


1.3. Scope:

This project would be very useful for a person who loves watching movies in
their free time. So, he doesnt have to waste so much time to find movies
manually. The recommendation system will help to find them a movie with
their interest.

1.4. Definitions, Acronyms

The sub-section provides the definitions of all terms, acronyms, and abbreviations
used in this document.

S.No. Terms/Acronyms Description

1. The user mostly will appear for the movie recommendation and
End-User
social networking.

2. Another user mostly faculty member, lecturer or examiner who


Admin
posts set of questions, the available options and correct answers.

2. Functional or Specific Requirements :-


Required software is for movie recommendations and social networking. The
system should satisfy the following requirements.

2.1. Administrator Aspect:


2.1.1. Taking database backup.
2.1.2. Editing/Deleting/Creating the database.
2.1.3. Adding and expelling movies from the database.
2.1.4. Changing the super password.
2.2. End user Aspect:
2.2.1. Request registration.
2.2.2. Logging into system.
2.2.3. Edit user information.
2.2.4. Complete the user profile.
2.2.5. Rate the movies.
2.2.6. If end-user rated the sufficient movies, to get the recommendations,
then should get the recommended movies.
2.2.7. End-user can share the recommended movies on social network.
2.3. Analysis
2.3.1. Authenticating users based on username and password.
2.3.2. Recording the rate given by user for recommendation system.
2.3.3. Checking whether the number of rated movies is sufficient for the
recommendations.
2.3.4. Keeping history of the searched movies by the end-user.
Rating system :

DEFINITION

A rating system is an instrument for forming and validating a judgment on the relevance,
performance and success of a program or project through the use of a scale with numeric,
alphabetical and/or descriptive codes. As part of the broader monitoring and evaluation
framework, it has the potential to provide critical inputs to decision-making at various
management levels, support accountability, and enhance learning.

ESTABLISHING A RATING SYSTEM

The following factors need to be considered in establishing a rating system.

Need for clear definitions of the rating categories.


The rating categories must be clearly differentiated to facilitate choices. Extreme ratings
should be avoided (e.g., "failure") because the controversy associated with those ratings
discourages their use.
Odd versus even number of categories.
There should be an even number of categories to prevent the tendency of raters to opt for
the middle category.
Numeric, alphabetical or descriptive categories.
To facilitate the statistical analysis of performance trends, numeric codes with
corresponding descriptions must be used. However, to verify the ratings, a different type
of code (preferably alphabetical) should be used for the overall rating of the programme
or project.

Mechanisms are needed to ensure the reliability of the rating system. The system must be
continuously tested and refined within the relevance-performance-success framework for
monitoring and evaluation. The questions need to be reviewed so that the specific criteria of
relevance, performance and success are captured. To the extent feasible, the key stakeholders
(i.e., target groups, program or project managers, Government and UNDP) must rate the program
or project as a way of obtaining their views and as part of a validation process that can help to
ensure the reliability of the rating system.

USES OF THE RATING SYSTEM:-


The rating system must be used for the monitoring and evaluation of both program and projects.
It should thus be treated as an essential component of monitoring and evaluation reports. For
monitoring, the rating system should be built into field visit reports and annual and terminal
reports. For evaluation purposes, the rating system will continue to be incorporated in the
program or project evaluation information sheet (PEIS), which evaluators are required to submit
along with their evaluation reports. Data from the PEIS will continue to be entered in CEDAB.
Reading other Recommendation System
1. Jinni
It includes semantic search which make it best. User can input
terms like movies that have gangsters and the site will return the
movies that match with the query.
2. Taste Kid (More than good movie recommendation)
You input a film you like and it returns that offer similar action to
your favorites. But it goes beyond just movies. If you really like
the God Father , Taste Kid will fills user in on what kind of band
you will like to listen to , books you want to read and other stuff
related to that film.
3. Nanocrowd
The site goes well beyond a simple results page. Nanocrowd
allows you to drill down into a more refined search with the help
of a three word nano genre. On the result page you click the
three word category you prefer, based on keywords related to the
movie you input into the search field. Even better, the films it
displays are not always blockbuster.
4. Clerkdogs
5. Criticker (Unique)
6. IMDb
IMDb automatically (without asking for the rating) recommends
the similar films to the movie you searched for. At the bottom of
your web-page the Recommendation section explains that if you
liked the respective films, you will like the handful of other films
being displayed, based on information gathered from IMDb
database, which examines the film to find the similarities and
differences.
7. Flixster
8. Movielens
Movielens is ugly. But what it lakes in beauty, it makes up with a
great recommendation engine that calculates your taste based on
rating to films you have seen before. Once you rate 15 movies, it
returns recommendations that were accurate and certainly more
relevant than result from Netflix.
9. Rotten Tomatoes
10. Netflix

Collaborative Filtering

You know that the low-tech way to get recommendations for products, movies, or
entertaining web sites is to ask your friends. You also know that some of your friends
have better taste than others, something youve learned over time by observing whether
they usually like the same thing as you. As more and more options become available, it
becomes less practical to decide what you want by asking a small group of people, since
they may not be aware of all the options. This is why a set of techniques called
collaborative filtering was developed.

A collaborative filtering algorithm usually works by searching a large group of people


and finding a smaller set with taste similar to yours. It looks at the other things they like
and combines them to create a ranked list of suggestions. There are several different ways
of deciding.

A dictionary of movie critics and their ratings of a small set of movies


Critics= {Lisa Rose: {Lady in the water: 2.5, Snake on a plane: 3.5, Just My
Luck: 3.0, Superman Returns: 3.5, you, Me and Dupree: 2.5, The Night
Listener: 3.0},

Gene Seymour: {Lady in the water: 3.0, Snake on a plane: 3.5, Just My Luck:
1.5, Superman Returns: 5.0, you, Me and Dupree: 3.0, The Night Listener:
3.5},

Michael phillips: {Lady in the water: 2.5, Snake on the plane: 3.0, Superman
Returns: 3.5, The Night Listener: 4.0},

Claudia Puig: {Snake on a plane: 3.5, Just My Luck: 3.0, The Night Listener:
4.5, Superman Returns: 4.0, you, Me and Dupree: 2.5,},

Mick LaSalle: {Lady in the water: 3.0, Snake on a plane: 4.0, Just My Luck:
2.0, Superman Returns: 3.0, The Night Listener: 3.0,you ,Me and Dupree:
2.0,},

Jack Matthews: {Lady in the water: 3.0, Snake on a plane: 4.0, The Night
Listener: 3.0, Superman Returns: 5.0, you, Me and Dupree: 3.5},

Toby: {Snake on a plane: 4.5, you, Me and Dupree: 1.0, Superman


Returns:4.0 }}

This dictionary uses a ranking from 1 to 5 as a way to express how much each of these
movie critics ( and I) liked a given movie. Using a dictionary is convenient for
experimenting with the algorithm and for illustrative purpose.

Finding Similar User

After collecting data about the things people like, you need a way to determine how
similar people are in their taste. You do this by comparing each person with every other
person and calculating the similarity score.

Euclidean Distance Score


One very simple way to calculate a similarity score is to use a Euclidean distance score,
which takes the items that people have ranked in common and uses them as axes for a
chart. You can then plot the people on that chart and see how close together they are.

Graph

Toby has been plotted at 4.5 on the Snakes axis and at 1.0 on the Drupee axis. The closer
two people are in the preferences are. Because the chart is two-dimensional, you can only
look at two rankings at a time, but the principle is the same for the bigger set of rankings.

To calculate the distance between Toby and LaSalle in the chart, take the differences in
each axis, square them and add them together, then take the square root of the sum,

This will calculate the distance, which will be smaller for people who are more similar.
However, you need a function that gives higher values for people who are similar. This
can be done by adding 1 to the function and inverting it.

The new function always returns a value between 0 and 1, where values of 1 means two
people have identical preferences. You can put anything together to create a function for
calculating similarity.

Pearson correlation score

A slightly more sophisticated way to determine the similarity between peoples interestsis
to use a Pearson correlation coefficient. The correlation coefficient is a measure of how
well two sets of data fit on a straight line. The formula for this is more complicated than
the Euclidean distance score, but it tends to give better results in situations where the data
isnt well normalized for example, if critics movie ranking are routinely more harsh
than everage.

To visualized this method, you can plot the ratings of two of the critics on a chart on a
chart, as shown in figure 2-2. Superman was rated 3 by Mick LaSalle and 5 by Gene
Seymour, so it is placed at (3,5) on the chart.
GRAPH

You can also see a straight line in the chart. This is called the best-fit line because it
comes as close to all the items on the chart as possible. If the two critis had identical
ratings for every movie, this line would be diagonal and would touch every item in the
chart, giving a perfect correlation score of 1. In the case illustrated, the critics disagree
on a few movies, so the correlation score is about 0.4. Figure 2-3 shows an example of a
much higher correlation, one of about 0.75.

GRAPH

One interesting aspect of using the Pearson score, which you can see in the figure, is that
it corrects for grade information. In this figure, Jack Matthews tends of give higher score
than Lisa Rose, but the line still fits because they have relatively similar preferences. If
one critic is inclined to give higher scores than the other, there can still be perfect
correlation if the difference between there scores is consistent. The Euclidian distance
score described earlier will say that two critics are dissimilar because one is consistently
harsher than the other, even if there testes are very similar. Depending on your particular
application, this behavior may or may not be what you want.
Social Network

Login Failed:
If the username and password typed by the user are not matching the
database values then this frame is called. This frame has only two features
namely one is the text panel displaying the message Invalid login details
Register:
If the user is new he will click on the register link then he will provide various
information such as first name, last name, profile picture and date of birth
after submitting these information successfully his will be created in the
database, now he can login as other members.
Homepage:
When the user successfully log in to the MOVIEMANIA they are directed
towards the homepage they first see their name after the welcome message
to the user. On the homepage there is the link for notification, when user
click on the notification then all friend request that have been sent will be
visible there.
Search:
Search consists of the user searching for the known movie on the database.
Search will allow user of the MOVIE MANIA to find the movies if it is not
displayed on the front page. For searching movies the user have to input the
first name of the user they want to search and the real time system will
display all results related to the user query.
Send Friend Request:
It is an option in which the user will be able to send the friend request. The
user will be able to send the friend request after searching the name on the
friend suggestion list.
Receive Friend Request:
User will be able to see friend request when the user click on the notification
link. When the user hover to the notification then the notification container
slides down that consist of the friend request list. It has the button add
friend and above it contains the name of the person which sends the friend
request. If user clicks on add friend button then the record is stored in the
database.
Friends: When user accepts the friend request that is sent to him then the
sender and acceptor of the friend request becomes friends.
Post:
When the user wants to share information and feelings with all his friends
than the user will post the information or the feeling which will be seen by all
his friends. There will be two options for his friend to like the post or to
comment on the post. The post button will be provided on the Social
Network page there will be a text area in which user will input the
information or the feeling when the user post on the post button the post
share with all friends. On every there will be two options one is to like or
other is to comment on it.
Comment:
After every post there will be option for comment. A comment is done on the
post to tell about the feelings on the post. A comment will be visible to all
the person who are able to view the post. To comment on the post input the
text on the text area and click the named comment then the values will be
registered in the database.
Like:
As like the comment there is also an option to like the post. To like an post there is a
link name as like will be given when the user clicks on the link the count of the
number is increases by one.
Testing:-

Testing plays a critical role in quality assurance for software due to limitation of the
verification for the previous phases, design and requirement fault also appear in the
code. Testing is used to detect these error, in addition to the error produce during
coding phase.

Testing is dynamic method for verification and validation, where the system is to be
tested is executed and behaviour of the system is observed. Due to this testing the
failure of the system can be observed from which the presence of fault can be
reduced. However, separate activity have to be performed to identified the fault.

There are two method of testing : Functional and Structural. In functional testing,
the internal logic of the system under testing is not considered and the test case are
added from the specification or requirement. It is often called Black Box Testing .
Equivalance class partitioning, boundary analysis, and cause effect graphing are
example of method for selecting test cases for functional testing. In structure testing,
the test case are decided entirely on the internal logic of the program of module being
tested.

As the goal of testing is to detect any error in the programs different flavour of testing
are often used. Unit testing are used to test a module or a small collection of module
and the focus is on detecting coding error in modules.

System testing :-

Here the system testing involved is the most widely used testing process consist of
five stages as soon in fig. In general, the sequence of testing activities is component
testing, integration testing then user testing.

Diagram
Testing is the process of detecting error. Testing performs a very critical role for
quality assurance and for ensuring the reliability of software. The results of testing are
used latter on during maintenance also.

Testing is vital to the success of the system. The system makes a logical assumption
that if the part of the system are correct, the goal will be successfully achieved. In
adequate testing or non-testing leads to error that may not appear until months or even
years later (remember the New York three day power failure due to a miss place
Break statement ).

This creates two problems :-

1- The time lag between the cause and the appearance of the system.
2- The time interval effect of the system error on the file and the records on the system.

A small error can conceivably explode into a much larger problem. Effective testing
early in the process translate directly into long term cost saving form a reduce number
of error.

Another reason for system testing is its utility as a user oriented vehicle before
implementation. The best program is birthless if it does not meet the user
requirements. Unfortunately, the users demands are often compromise by effort to
facilitate program or design efficiency in term of processing time or design
efficiency.

Thus in this phase we want to test the code we write. We needed to know if the code
compiled with the design or not? Weather the code gave the desire output on given
inputs? Weather it was ready to be installed on the user computer or some more
modifications where needed?

Testing objective:

The main objective of testing is to uncover a host of error, systematically and with
minimum effort and time. Starting formally-

1- Testing is the process of executing a program with intend of finding an error.


2- A successful test is one that uncovers an as yet undiscover error.
3- A good test case is one that has a high probability of finding error, if it exists.
4- The test are inadequate to detect possibly presents errors.
5- The software more or less conforms to the quality and reliable standards.

Levels of testing :

In order to uncover the error present indifferent phase, we have the concept of level of
testing. Basic level of testing are :

Client Needs Acceptance testing

Requirements System testing

Design Integration testing

Code Unit testing

Unit testing:-

Unit testing focuses verification effort on the smallest unit of software i,e. the
module. Using the detailed design and the process specification, testing is done to
uncover errors within the boundary of the module. All modules must be successful in
the unit test before the start of the integration testing begins.

In this project each service can be thought of a modules. There are so many modules
like Login, HR Department, interviewer section, etc. Each module has been tested by
giving different sets of inputs. When developing the modules as well as finishing the
development, the module works without any error. The inputs are validated when
accepting them from the user.
Integration testing :-

After unit testing, we have to perform integration testing. The goal are is to see if
modules can be integrated properly, the emphases being on testing interfaces between
modules. This testing activity can be considered as testing the design and hence the
emphasis on testing module interactions.

In this project the main system is formed by integrating all the modules. When
integrating all the modules I have checked whether the integration effects working of
any of the services by giving different combinations of inputs with which the two
services run perfectly before integration.

System testing:-

Here the entire software system is tested. The reference document for this process is
the requirements document, and the goal is to see if software meets its requirements.

Here entire HRRP has been tested against requirements of project and it is checked
whether all requirements of project have been satisfied or not.

Acceptance testing:-

Accepting testing is performed with realistic data of the client to demonstrate that the
software is working satisfactorily. Testing here is focused in external behavior of the
system, the internal logic of program is not emphasized.

Test cases should be selected so that the largest number of attributes of an


equivalence class is exercised at once. The testing phase is an important part of
software development. It is the process of finding errors and missing operations and
also a complete verification to determine whether the objectives are met and the user
requirements are satisfied.

WHITE BOX TESTING

This is a unit testing method, where a unit will be taken at a time and tested
thoroughly at a statement level to find the maximum possible errors.
I tested step wise every piece of code, taking care that every statement in the code is
executed at least once. The white box testing is also called Glass Box Testing.

I have generated a list of test cases, sample data, which is used to check all possible
combinations of execution paths through the code at every modules level.

White-Box test focuses on the program control structure. Test cases are derived to
ensure that all statement in the program control structure. Test cases are derived to
ensure that all statement in the program has been executed at least once during testing
and that all logical conditions have been exercised. Basis path testing, a white box
technique, makes use of program graphs (or graph matrices) to derive the set of
linearly independent test that will ensure coverage. Condition and data flow testing
further exercising degrees of complexity.

BLACK BOX TESTING

This testing method considers a module as a single unit and checks the unit at
interface and communication with other modules rather getting into details at
statement level. Here the module will be treated as a block that will take some input
and generate output. Output for a give set of input combinations are forwarded to
other modules.

Black-box test are designed to uncover errors functional requirement without regard
to the internal working of a program. Black-Box testing techniques focus on the
information domain of the software, deriving test cases by partitioning the input and
output domain of a program in manner that provided through test coverage. The
black-box test is used to demonstrate that software functions are operational, that
input is properly produced, and that the integrity of external information are
maintained. A black-box test examines some fundamental aspect of a system with
little or no regard for the integral logical structure of the software.

Graph based testing method explore the relationship between and behavior of
program objects. Equivalence partitioning divides the input classes of data are likely
to exercise specific software function. Boundary values analysis probes the programs
ability to handle data at the limits of acceptability.

TEST INFORMATION FLOW

A strategy for software testing may also be viewed in the context of the spiral. Unit
testing begins at the vortex of the spiral and, concentrates on each unit, component of
the software as implemented in source code. Testing progresses moving outward
along the spiral to integration testing, where the focus is on designed the construction
of the software architecture. Taking another turn outward on spiral, we encounter
validation testing, where requirements established as part of software requirements
analysis are validated against the software the has been constructed. Finally, we arrive
at system testing, where the software and other system elements are tested as a whole.
To test computer software, we spiral out along stream lines but broaden the scope of
testing with each turn.

Considering the process from a procedural point of view, testing within the context of
software engineering is actually a series of four steps that are implemented
sequentially. The steps are shown in figure, initially, test focus on each component
individually, ensuring that it functions properly as unit. Hence, the name is unit
testing. Unit testing makes heavy use of white-box testing techniques, increasing
specific paths in modules control structure to ensure complete coverage and
maximum error detection.
System Testing

Validation Testing

Integration Testing

Validation Testing

Code

Design

SYSTEM SECURITY

There are basically two types of security associated with this system:-

1- Physical security:-
Damage due to natural causes like earth w
System Engineering
Implementation:-

System implementation is the stage when the user has thoroughly tested the system
and approves all the features provided by the system. The various tests are performed
and the system is approved only after all the requirements are met and the user is
satisfied.

The new system may be totally new; replacing an existing manual or automated system.
Or it may a major modification to an existing system. In the either case, proper
implementation is essential to provide a reliable system to meet organization
requirements. Successful implementation may not guarantee improvement in the
organization using the new system (that is a design question) ,but improper will prevent
it.

Implementation is process of having systems personal check out and put new
equipment to use, train users, install the new application and construct any files of data
needed to use it. This phase is less creative than system design. Depending on the size
of the organization that will be involved in using the application and the risk involve in
its use, system developer may choose to test the operation in only one area of the firm
with only one or two persons. Sometimes, they will run both old and new system in
parallel way to compare the results. In steel other situations, system developers stop
using the old system one day and start using the new one the next.

The implementation of the web based or LAN based network project has some extra
steps at the time of implementation. We need to configure the system according the
requirement of the software.

For the project we need to install and configure weblogicserver8.1, database server and
deployment directory for the project.
Aspects of implementation:-

The two aspects of implementation are:

1- Training personnel
2- Conversion procedures

Training:-

Even well designed and technically elegant systems can succeed or fail because of the
way they are used. Therefore the quality of the training received by the personnel
involved with the stem in various helps or hinders, and may event prevent, the
successful implementation of an information system.
Maintenance:-

Software maintenance is the last phase in the software engineering process that
eliminates errors in the working system during its work span and to tune the system to
any variations in its working environment. The system requires maintenance as there
may be changes and requirements in the organizational need , government policies,
hardware and software environment etc. often small system deficiencies are found as a
system is brought into operation and changes are made to remove them. System
requirement may be revised as a result of system usage or changing operational needs.
Perhaps oversight that occurred during the development process needs to be occurred.
Often the maintenance needs to be arises to capture additional data for storage in a
database or in transaction files or perhaps it may be necessary to add error detection
features to prevent system users from in adversely taking an unwanted action.

Maintenance of the system after it is installed in concerned with an additional factor in


hardware. Once the system is delivered and installed there is a brief warranty period
during which time the vendor is responsible for maintenance. This is typically a 90 day
period after that time the purchaser has the option of acquiring of maintenance from
various sources. Maintenance source excepting vendor is also available from companies
specializing in providing the service, called third party maintenance companies.

When the system is installed, it is generally used for long period. The average life of this
system is 4-6 years, with the eldest applications often is used for 10 years. The need for
debugging and correcting errors or failure on an emergency basic is comparatively low:
less than 20% of the task of correction. System and organization are in constant state of
flux; therefore the maintenance of the system also involved adoptions for earlier version
of software.

Approximately 20%of all maintenance work is performed to accommodate changes in


report, files and database. The greatest amount of maintenance work is for user
enhancement, improvement documentation and recording system components of
greater efficiency about 60% of all maintenance is for this purposed.
Following table summarized the broad classes of maintenance found in development of
sekkjob.com

Category Activity

1- Corrective Emergency fixes, routine debugging.


2- Adaptive Accommodation of changes to data and to hardware and software,
changes in the external environment.
3- Pre effective User enhancement, improved documentation recording of
computational efficiency, user recommendations for new capabilities.
4- Preventive Routine service of cleaning and adjusting the equipmet to prevent
breakdowns, future maintainability reliability enhancement , recovering design
information to improve the overall quality.

Maintainable Design:-

The points of reduce the needs for maintenance are:

1- More accurately defining the users requirements during the system development
assembling better system documentation.
2- Using more effective methods for designing process logic and communicating it to
project team members.
3- Making better use of existing tools and techniques.
4- Managing the system engineering process effectively.

The maintenance for Integrated Movie Mania was performed with the above mentioned
points as the underlying principles and according to the demands of the users.

You might also like