Project Report
Project Report
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
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.
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.
Browser Compatibility
The project being web based required compatibility with at least the popular web browsers.
Microsoft Windows XP and above, Linux and Macintosh being the current popular operating
system and Microsoft Internet Explorer, Mozilla Firefox, Opera, Safari and Google Chrome
being the currently popular web browsers.
1.3 Performance
The system would be used by multiple users at a time and may grow as time passes; the system
would need to implement multithreading to achieve acceptable performance. Further a database
connection pool may also be required for assigning faster database connection.
SOFTWARE REQUIREMENT
Database fields for questions and respective options must be in Unicode format to handle non
English characters
1.2 TECHNOLOGY
This section lists all the technologies for the web based system.
PHP scripting for server side scripting as it has a very strong support for HTML and
SQLite.
HTML as database format: The database performance requirements are not very high
and the ability to have custom fields in case the quiz creator needs to add more than
expected answer options. This is limited in any other database management system where
we have to first specify the maximum number of fields.
1.3 SOFTWARE
HARDWARE REQUIREMENT
The recommended hardware specified by the respective software would suffice the needs. The
memory and processing power needed would increase as the number of users increase. The
estimated hardware requirements are as specified.
SERVER
The minimum hardware as recommended by all of the software required on server side say web
server, operating system and development software
1 GB of RAM
Network interface
CLIENT
The minimum hardware as recommended by all of the software required on client side say web
browser, operating system
Browser Compatibility
The project being web based required compatibility with at least the popular web browsers.
Microsoft Windows XP and above, Linux and Macintosh being the current popular operating
system and Microsoft Internet Explorer, Mozilla Firefox, Opera, Safari and Google Chrome
being the currently popular web browsers.
1.2 Globalization Support
The system will mostly be in US English, although the questions and their options may not be in
US English. Hence the questions and their options are to be in Unicode format.
1.3 Performance
The system would be used by multiple users at a time and may grow as time passes; the system
would need to implement multithreading to achieve acceptable performance. Further a database
connection pool may also be required for assigning faster database connection.
Database fields for questions and respective options must be in Unicode format to handle non
English characters
1.2 Technologies
This section lists all the technologies for the web based system.
PHP scripting for server side scripting as it has a very strong support for HTML and
SQLite.
HTML as database format: The database performance requirements are not very high
and the ability to have custom fields in case the quiz creator needs to add more than
expected answer options. This is limited in any other database management system where
we have to first specify the maximum number of fields.
1.3 Software
Hardware Requirement
The recommended hardware specified by the respective software would suffice the needs. The
memory and processing power needed would increase as the number of users increase. The
estimated hardware requirements are as specified.
SERVER
The minimum hardware as recommended by all of the software required on server side say web
server, operating system and development software
1 GB of RAM
Network interface
CLIENT
The minimum hardware as recommended by all of the software required on client side say web
browser, operating system
Minimum hardware depending on the operating system used
Administrator Aspect:
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.
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
Design:-
ER- Diagram
DATA FLOW DIAGRAM
USE CASE DIAGRAM
SEQUENCE DIAGRAM
Database Designs:-
LIKE
COUNTRY
STATE
CITY
USER LOCATION
FIELD TYPE NULL DESCRIPTION
Location id Int No Unique id of
country
User Foreign No Used a foreign
key(Country) key of user
whose location is
adding
User country Foreign No Used a foreign
key(Country) key of country to
select a country
from list
User State Foreign No Used a foreign
key(State) key of state to
select a state
from list
User City Foreign No Used a foreign
key(City) key of city to
select a city from
list
Timestamp Datetime No Time of creating
country
USER QUALIFICATION
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.
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.
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.
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.
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.
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.
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, as
shown in figure below.
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.
A slightly more sophisticated way to determine the similarity between peoples interests
is 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 average.
To visualize this method, you can plot the ratings of two of the critics on a chart on a
chart, as shown in figure below. Superman was rated 3 by Mick LaSalle and 5 by Gene
Seymour, so it is placed at (3, 5) on the chart.
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 critics 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 below shows an example of a
much higher correlation, one of about 0.75.
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 their 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
REGISTRATION:
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.
FFRIENDS:
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
persons 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 the errors, 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 behavior 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 activities have to be performed to identify 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 cases are
added from the specification or requirement. It is often called Black Box Testing .
Equivalence class partitioning, boundary analysis, and cause effect graphing are
example of method for selecting test cases for functional testing. In structure testing,
the test cases 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.
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 is 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 failures due to a miss place
Break statement).
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 user 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-
LEVELS OF TESTING:
In order to uncover the error present indifferent phase, we have the concept of level of
testing. Basic levels of testing are:
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.
ACCEPTENCE 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.
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.
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.
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:-
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.
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.
Category Activity
Maintainable Design:-
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.
USER QUALIFICATION