Introduction
Chapter 1
IntroductionWhen users browse through a web site they are usually looking for items they find
interesting. Interest items can consist of a number of things.
For example, textual information can be considered as interest items or an index on a certain
topic could be the item a user is looking for.
Another example, applicable for a web vendor, is to consider purchased products as
interest items. Whatever the items consist of, a website can be seen as a collection of these
interest items. Recommender systems are widely implemented in e-commerce websites to
assist customers in finding the items they need.
A recommender system should also be able to provide users with useful information
about the item that interest them. The ability of promptly responding to the changes in user’s
preference is a valuable asset for such systems.
With the explosion of network in the past decades, internet has become the major
source of retrieving multimedia information such as video, books, and music etc. People have
considered that music is an important aspect of their lives and they listen to music, an activity
they engaged in frequently. Previous research has also indicated that participants listened to
music more often than any of the other activities (i.e. watching television, reading books, and
watching movies). Music, as a powerful communication and self-expression approach,
therefore, has appealed a wealth of research.
However, the problem now is to organise and manage the millions of music titles
produced by society. MIR(Music Information Retrieval) techniques have been developed to
solve problems such as genre classification, artist identification, and instrument recognition.
Additionally, music recommender is to help users filter and discover songs according to their
tastes. A good music recommender system should be able to automatically detect preferences
and generate playlists accordingly. Meanwhile, the development of recommender systems
provides a great opportunity for industry to aggregate the users who are interested in music.
More importantly, it raises challenges for us to better understand and model users’
preferences in music.
Currently, based on users’ listening behaviour and historical ratings, collaborative
filtering algorithm has been found to perform well. Combined with the use of content-based
model, the user can get a list of similar songs by low-level acoustic features such as rhythm,
pitch or high-level features like genre, instrument etc.
1.1 AIM AND OBJECTIVESUsing this idea we propose a method to automatically recommend music in a user’s
device as the next song to be played. In order to keep small the computation time for
calculating recommendation, the method is based on user behavior and high-level features but
not on content analysis. Which song should be played next can be determined based on
various factors.
1.2 PROJECT PROBLEM & RELEVANT KNOWLEDGEA Recommender system for music data is proposed which assists customers in searching
music data and provides result with items resulting in own user preference. This system first
extracts unique properties of music like pitch, chord, and tempo from the music file using a
CLAM annotator software tool. This extracted data is then stored on the database. Each stored
property is analysed using content Based filtering and interactive genetic algorithm. After
acquiring records, the system recommends items Appropriate to user’s own favourite.
High recommendation accuracy
Rich variety of artists
Prompt responses and adaptation to changing preferences
Enriched user interface
Improved overall music listening experience
As users accumulate digital music in their digital devices, the problem arises for them to
manage the large number of tracks in their devices. If a device contains thousands of tracks, it
is difficult, painful, and even impractical for a user to pick suitable tracks to listen to without
using pre-determined organization such as playlists. The topic of this project is
computationally generated recommendations. Music recommendation is significantly
different from other types of recommendations, such as those for movies, books and
electronics. Because a same song can be recommended to a same users many times if we
successfully keep from him/her bored with it.
A main purpose of a music recommendation system is to minimize user’s effort to provide
feedback and simultaneously to maximize the user’s satisfaction by playing appropriate song
at the right time. Reducing the amount of feedback is an important point in designing
recommendation systems, since users are in general lazy. We can evaluate user’s attitude
towards a song by examining whether the user listens to the song entirely, and if not, how
large a fraction he/she does.
In particular, we assume that if the user skips a recommended song, it is a bad
recommendation, regardless of the reason behind it. If the recommended song is played
completed, we infer that the user likes the song and it is a satisfying recommendation. On the
other hand, if the song is skipped while just lasting a few seconds, we conclude that the user
dislikes the song at that time and the recommendation is less effective.
Using this idea we propose a method to automatically recommend music in a user’s
device as the next song to be played. In order to keep small the computation time for
calculating recommendation, the method is based on user behaviour and high-level features
but not on content analysis. Which song should be played next can be determined based on
various factors.
1.3 PROPOSED SYSTEMWe propose a system to recommend songs to the user based on the user’s preference.
The user will login to his/her account in the system, and listen to songs and give rating to
these songs. Once the user clicks the submit button, the system selects two songs with the
highest ratings and submits these as input to the genetic algorithm which computes the songs
most similar to the songs given as input. These songs are then provided to the user as
recommendations.
1.4 SCOPE OF THE PROJECT More than half the music now-a-days is downloaded
The trend is bound to rise exponentially
Virtually impossible to go through the heap of data and choose
Recommendations from primary sources are too narrow
They amount to a bulk of online sales across sectors
These systems are attracting huge attention and investments from e-commerce sites
The proposed system based on concrete analysis and thus is way better than any other
conventional methods
We propose a real-time genetic recommendation method for music data in order to
overcome the shortfalls of existing recommendation systems based on content based filtering
and other such techniques that fail in reflecting in the current user preferences.
1.5 ORGANIZATION OF REPORTIn Chapter 2 we have introduced and described existing systems for music
recommendation system using genetic algorithms.
Chapter 3 deals with object oriented analysis and design.
Chapter 4 deals with the implementation of the system, the software and hardware
requirements of the system, analysis of the system and the risks associated with developing
the system.
Chapter 5 includes the project schedule which consists of the timeline chart along with
the task sheet.
Chapter 6 includes the algorithms and flowcharts used in the system along with system
snapshots.
Chapter 7 deals with the testing of the system and consists of test cases.
Chapter 8 evaluates the project and discusses the applications of the project and last
but not the least publications and references are mentioned at the end.
Chapter 2
REVIEW OF LITERATUREIntroduction
Many different approaches have been applied to the basic problem of making accurate and
efficient recommender and data mining systems. Many of the technologies used in the actual
recommender systems studied are fairly simple database queries.
Automatic recommender systems, however, use a wide range of techniques, ranging from
nearest neighbour algorithms to Bayesian analysis. The worst-case performance of many of
these algorithms is known to be poor. However, many of the algorithms have been tuned to
use heuristics that are particularly efficient on the types of data that occur in practice.
2.1 Study of Existing Systems
2.1.1 Collaborative Recommender Systems
The earliest recommenders used nearest-neighbour collaborative filtering algorithms. The
nearest neighbour algorithms are based on computing the distance based on their preference
history. Predictions of how much a consumer will like a product are computed by taking the
weighted average of the opinions of a set of nearest neighbours for that product. Neighbours
who have expressed no opinion on the product in question are ignored. Opinions should be
scaled to adjust for differences in ratings tendencies between users. Nearest neighbour
algorithms have the advantage of being able to rapidly incorporate the most up-to-date
information, but the search for neighbours is slow in large databases. Practical algorithms use
heuristics to search for good neighbours and may use opportunistic sampling when faced with
very large populations.
Collaborative recommender systems, as presented by Xerox PARC’s researchers consisted on
the simple idea that the system would take user-defined news filter rules, compare them, and
propose new rules to users. This proposal, however, required a significant amount of user’s
attention and involvement since the new filters had to be added manually by the system users.
An alternative method for building a Music Recommender System that combined information
about preferences submitted by users to generate automatically filtering rules that were
applied on objects in the database, without user explicit intervention.
Preferences Elicitation
Recommended items Recommended items
Figure 2.1: Collaborative Recommender Systems
These early collaborative filtering systems were designed to explicitly provide users with
information about items. That is, users visited a website for the purpose of receiving
recommendations from the CF system. Later, websites began to use CF systems behind the
scenes to adapt their content to users, such as choosing which news articles a website should
be presenting prominently to a user. Providers of information on the web must deal with
limited user attention and limited screen space. Collaborative filtering can predict what
information users are likely to want to see, enabling providers to select subsets of information
to display in the limited screen space. By placing that information prominently, it enables the
user to maximize their limited attention. In this way, collaborative filtering enables the web to
adapt to each individual user’s needs.
Prediction Computation
Revealed Preferences
Predicted ratings
UserUser
Preferences Preferences
Predicted ratings
2.1.2 Bayesian networks
Bayesian networks create a model based on a training set with a decision tree at each node
and edges representing consumer information. The model can be built off-line over a matter
of hours or days.
Figure 2.2: Bayesian Network [2]
The resulting model is very small, very fast, and essentially as accurate as nearest neighbour
methods. Bayesian networks may prove practical for environments in which knowledge of
consumer preferences changes slowly with respect to the time needed to build the model but
are not suitable for environments in which consumer preference models must be updated
rapidly or frequently.
2.1.3 Clustering
Clustering techniques work by identifying groups of consumers who appear to have similar
preferences. Once the clusters are created, predictions for an individual can be made by
averaging the opinions of the other consumers in that cluster. Some clustering techniques
represent each consumer with partial participation in several clusters. The prediction is then
an average across the clusters, weighted by degree of participation. Clustering techniques
usually produce less-personal recommendations than other methods, and in some cases, the
clusters have worse accuracy than nearest neighbour algorithms. Once the clustering is
complete, however, performance can be very good, since the size of the group that must be
analyzed is much smaller.
Figure 2.3: Clustering Technique
Clustering techniques can also be applied as a “first step” for shrinking the candidate set in a
nearest neighbour algorithm or for distributing nearest-neighbour computation across several
recommender engines. While dividing the population into clusters may hurt the accuracy or
recommendations to users near the fringes of their assigned cluster, pre-clustering may be a
worthwhile trade-off between accuracy and throughput.
2.1.4 Content Based Filtering
A content-based filtering system selects items based on the correlation between the content of the items and the user’s preferences. It makes recommendations by comparing a user profile with the content of each document in the collection. The content of a document can be represented with a set of terms. Terms are extracted from documents by running through a number of parsing steps. First all HTML tags and stop words (words that occur very often and cannot be used as discriminators) are removed. The remaining words are reduced to their stem by removing prefixes and suffixes. For instance the words “computer”, “computers” and “computing” could all be reduced to compute.
The user profile is represented with the same terms and built up by analyzing the content of documents that the user found interesting. Which documents the user found interesting can be determined by using either explicit or implicit feedback. Explicit feedback requires the user to evaluate examined documents on a scale. In implicit feedback the user’s interests are inferred by observing the user’s actions, which is more convenient for the user but more difficult to implement.
Figure 2.4: Content Based Filtering Technique
Recommender system
User data model
Items
User ratings
Item Attributes
Recommended items
2.1.5 Context Based Filtering
As an alternative to both content-based and collaborative recommender systems, context
based recommender systems have recently appeared. This approach, much like collaborative
recommender systems, abstracts the music object, and describes its context. This context
refers to the time, the people who crafted it or the impressions it caused on the listeners.
In fact, we can see collaborative filtering as a concrete case of context-based recommender
systems. Context-based recommendation basic assumption is that given a set of observation of
user preference for objects with a given set of context features, objects with similar features
should also satisfy user information needs.
Figure 2.5: Context Based Filtering Technique
The emergence of the World Wide Web as an enormous repository of information publicly
available has inspired some researchers to design web crawling agents that harvest contextual
information about items from the Web. This information can be either structured or
unstructured. Structured information is rare, but as the Semantic Web becomes more of a
reality it should be expected to increase with availability. Unstructured information, mainly
text describing a song or reviewing an album or an artist biography, require specialized
Natural Language Processing applications measures in order to become usable as item
surrogates. The nature of this approach to defining item surrogates limits the range of
recommendation algorithms.
2.1.6 Genetic algorithm
A Genetic Algorithm (GA) is a procedure used to find approximate solutions to search
problems through application of the principles of evolutionary biology. Genetic algorithms
use biologically inspired techniques such as genetic inheritance, natural selection, mutation,
and reproduction (recombination, or crossover). Along with genetic programming (GP), they
are one of the main classes of genetic and evolutionary computation (GEC) methodologies.
Genetic algorithms are typically implemented using computer simulations in which an
optimization problem is specified. For this problem, members of a space of candidate
solutions, called individuals, are represented using abstract representations called
chromosomes. The GA consists of an iterative process that evolves a working set of
individuals called a population toward an objective function, or fitness function. Traditionally,
solutions are represented using fixed length strings, especially binary strings, but alternative
encodings have been developed.
The evolutionary process of a GA is a highly simplified and stylized simulation of the
biological version. It starts from a population of individuals randomly generated according to
some probability distribution, usually uniform and updates this population in steps called
generations. Each generation, multiple individuals are randomly selected from the current
population based upon some application of fitness, bred using crossover, and modified
through mutation to form a new population .
• Crossover – exchange of genetic material (substrings) denoting rules, structural
components, features of a machine learning, search, or optimization problem.
• Selection – the application of the fitness criterion to choose which individuals from a
population will go on to reproduce.
• Replication – the propagation of individuals from one generation to the next
• Mutation – the modification of chromosomes for single
Figure 2.6: Genetic Algorithm
2.5 Comparison of existing systems
Recommender
system
Content based Collaborative Context based Genetic
algorithm
Method Content-based
filtering-selects
information based on
semantic content.
Collaborative
filtering
combines the
opinions of
other users to
make a
prediction for a
target user
This system
abstracts the
music object, and
describes its
context. This
context refers to
the time, the
people who
crafted it or the
impressions it
caused on the
listeners.
This applies
concept of
genetic algorithm
by extracting
features of items
and applying
genetic algorithm
operators over
them and
recommend
similar items.
User profile Not required Required Not required May require
Advantages These techniques
might prove highly
suitable
for users who have
specific interests and
who are looking for
related
recommendations.
The pool will
also include
items that other
users have rated
highly.
The System
would benefit
those users who
have to use
search engines to
locate relevant
content.
It solves
problems with
multiple
solutions. These
are easy to
understand and
do not demand
extra knowledge.
Limitation No new topics are
explored; only those
that are similar to
topics already in the
user’s profile. This
leads to over-
specialization: one is
restricted to seeing
items similar to those
New user
problem. If a
user has not
made any rating
the system
cannot predict
effectively the
ratings of
Context-based
recommender
systems share the
same limitations
as content-based
recommenders.
The genetic
algorithm cannot
assure constant
optimization
response times.
that have already been
rated highly.
unrated items.
New item
problem
Implementatio
n
These are difficult to
apply to situations
where the desirability
of an item, for
example a web page,
is determined in part
by multimedia content
or aesthetic qualities.
These are generally
incompatible with the
type of content
analysis that these
techniques require in
order to make further
recommendations
The system
constructs rating
profiles of its
users, locates
other users with
similar rating
profiles and
returns items
that the similar
users rated
highly.
This approach,
abstracts the
music object, and
describes its
context. This
context refers to
the time, the
people who
crafted it or the
impressions it
caused on the
listeners.
This system first
extracts unique
properties. Each
stored property is
analyzed using
genetic
algorithm. the
system
recommends
items appropriate
to user’s own
favorite.
Table 2.1: Comparison of Existing Systems
Chapter 3
REQUIREMENT ANALYSIS3.1 FEASIBILITY ANALYSIS The very first phase in any system developing life cycle is preliminary investigation.
The feasibility study is a major part of this phase. A measure of how beneficial or practical
the development of any information system would be to the organization is the feasibility
study.
The feasibility of the development software can be studied in terms of the following
aspects:
1. Operational Feasibility.
2. Technical Feasibility.
3. Economical feasibility.
4. Motivational Feasibility.
5. Legal Feasibility
OPERATIONAL FEASIBILITY The site will reduce the time consumed to maintain manual records and is not tiresome
and cumbersome to maintain the records. Hence operational feasibility is assured.
TECHNICAL FEASIBILITY Minimum hardware requirements:
At least 166 MHz Pentium Processor or Intel compatible processor.
At least 256 MB RAM.
14.4 kbps or higher modem.
A video graphics card.
A mouse or other pointing device.
At least 1 GB free hard disk space.
Microsoft Internet Explorer 4.0 or higher.
ECONOMICAL FEASIBILTY Once the hardware and software requirements get fulfilled, there is no need for the
user of our system to spend for any additional overhead.
For the user, the web site will be economically feasible in the following aspects:
The web site will reduce a lot of paper work. Hence the cost will be reduced.
Our web site will reduce the time that is wasted in manual processes.
The storage and handling problems of the registers will be solved.
MOTIVATIONAL FEASIBILITY The users of our system need no additional training. Visitors do not require entering
password and are shown the appropriate information.
LEGAL FEASIBILITY The licensed copy of the required software is quite cheap and easy to get. So from legal
point of view the proposed system is legally feasible. Software Development Model Used:
Software process model deals with the model which we are going to use for the
development of the project. There are many software process models available but while
choosing it we should choose it according to the project size that is whether it is industry scale
project or big scale project or medium scale project.
3.2 REQUIREMENT ANALYSIS
Requirements analysis in systems engineering and software engineering, encompasses those
tasks that go into determining the needs or conditions to meet for a new or altered product,
taking account of the possibly conflicting requirements of the various stakeholders, analysing,
documenting, validating and managing software or system requirements.
Requirements analysis is critical to the success of a systems or software project. The
requirements should be documented, actionable, measurable, testable, traceable, related to
identified business needs or opportunities, and defined to a level of detail sufficient for system
design.
Fig 3.1: Requirement Analysis
Types of Requirements
Requirements are categorized in several ways. The following are common categorizations of
requirements that relate to technical management:
Customer Requirements:
Statements of fact and assumptions that define the expectations of the system are in
terms of mission objectives, environment, constraints, and measures of effectiveness
and suitability. The customers are those that perform the eight primary functions of
systems engineering, with special emphasis on the operator as the key customer.
Operational requirements will define the basic need and, at a minimum, answer the
questions posed in the following listing:
Operational distribution or deployment: Where will the system be used?
Mission profile or scenario: How will the system accomplish its mission
objective?
Performance and related parameters: What are the critical system parameters to
accomplish the mission?
Utilization environments: How are the various system components to be used?
Effectiveness requirements: How effective or efficient must the system be in
performing its mission?
Operational life cycle: How long will the system be in use by the user?
Environment: What environments will the system are expected to operate in an
effective manner?
Architectural Requirements
Architectural requirements explain what has to be done by identifying the
necessary system architecture of a system.
Structural Requirements
Structural requirements explain what has to be done by identifying the
necessary structure of a system.
Behavioural Requirements
Behavioural requirements explain what has to be done by identifying the
necessary behaviour of a system.
Functional Requirements
Functional requirements explain what has to be done by identifying the necessary task,
action or activity that must be accomplished. Functional requirements analysis will be
used as the top-level functions for functional analysis.
Non-functional Requirements
Non-functional requirements are requirements that specify criteria that can be used to
judge the operation of a system, rather than specific behaviours.
Performance Requirements
The extent to which a mission or function must be executed; generally measured in
terms of quantity, quality, coverage, timeliness or readiness. During requirements
analysis, performance (how well does it have to be done) requirements will be
interactively developed across all identified functions based on system life cycle
factors; and characterized in terms of the degree of certainty in their estimate, the
degree of criticality to system success, and their relationship to other requirements.
Design Requirements
The “build to,” “code to,” and “buy to” requirements for products and “how to
execute” requirements for processes expressed in technical data packages and
technical manuals.
Derived Requirements
Requirements that are implied or transformed from higher-level requirement. For
example, a requirement for long range or high speed may result in a design
requirement for low weight.
Allocated Requirements
A requirement which is established by dividing or otherwise allocating a high-level
requirement into multiple lower-level requirements.
Example: A 100-pound item that consists of two subsystems might result in weight
requirements of 70 pounds and 30 pounds for the two lower-level items.
3.2.1 Functional requirement
In software engineering (and System Engineering), a functional requirement defines a
function of a system or its component. A function is described as a set of inputs, the
behaviour, and outputs. Functional requirements may be calculations, technical details, data
manipulation and processing and other specific functionality that define what a system is
supposed to accomplish. Behavioural requirements describing all the cases where the system
uses the functional requirements are captured in use cases. Generally, functional requirements
are expressed in the form "system must do <requirement>".
As defined in requirements engineering, functional requirements specify particular results of a
system. Functional requirements drive the application architecture of a system
In some cases a requirements analyst generates use cases after gathering and validating a set
of functional requirements. The hierarchy of functional requirements is: user/stakeholder
request → feature → use case → business rule. Each use case illustrates behavioural scenarios
through one or more functional requirements. Often, though, an analyst will begin by eliciting
a set of use cases, from which the analyst can derive the functional requirements that must be
implemented to allow auser to perform each use case
Fig 3.2 : System use case diagram
3.2.2 Non-functional requirement
In systems engineering and requirements engineering, a non-functional requirement is
a requirement that specifies criteria that can be used to judge the operation of a system, rather
than specific behaviours. The plan for implementing non-functional requirements is detailed
in the system architecture.
Non-functional requirements define how a system is supposed to be. Non-functional
requirements are in the form of "system shall be <requirement>", an overall property of the
system as a whole or of a particular aspect and not a specific function. The systems' overall
properties commonly mark the difference between whether the development project has
succeeded or failed.
Non-functional requirements are often called qualities of a system. Other terms for non-
functional requirements are "constraints", "quality attributes", "quality goals", "quality of
service requirements" and "non-behavioural requirements”. Informally these are sometimes
called the "ileitis", from attributes like stability and portability. Qualities, that are non-
functional requirements, can be divided into two main categories:
1. Execution qualities, such as security and usability, which are observable at run time.
2. Evolution qualities, such as testability, maintainability, extensibility and scalability,
which are embodied in the static structure of the software system.
3.3 SYSTEM ANALYSIS
After analyzing the requirements of the task to be performed, the next step is to analyze the
problem and understand its context. The first activity in the phase is studying the existing
system and other is to understand the requirements and domain of the new system. Both the
activities are equally important, but the first activity serves as a basis of giving the functional
specifications and then successful design of the proposed system. Understanding the
properties and requirements of a new system is more difficult and requires creative thinking
and understanding of the existing running system is also difficult, improper understanding of
present system can lead diversion from solution.
3.4 RISK ANALYSISRisk Management plan tackles risk through Risk Assessment and Risk Control. Risk
Assessment involves Risk Identification, Risk Analysis and Risk Prioritization. While Risk
Control involves Risk Management Planning, Risk Resolution and Risk Monitoring.
Purpose: The Risk Management plan outlines the risk management strategy adopted. We
adopt a proactive approach to tackle risks and thus reduce the performance schedule and cost
overruns, which we may incur due to occurrence of unexpected problems.
This “Risk Management Plan” identifies the risks associated with our project. In addition to
project risk and technical risks, business risks are also identified, analyzed and documented.
This document outlines the strategy that we have adopted to avoid these risks. A contingency
plan is also prepared for each risk, in case it becomes a reality. Only those risks have been
treated whose probability and impact are relatively high i.e. above a referent level.
Risk Table
Impact levels: The risks are categorized on the basis of their probability of occurrence and the
impact that they would have, if they do occur. Their impact is rated as follows:
Catastrophic 1
Critical 2
Marginal 3
Negligible 4
No. Risk Category Probability Impact
1 Increase of work load Personal 20% 3
2Inexperience in Project
software environmentTechnical 25% 3
3Overly optimistic
schedulesProject 20% 3
4 Lack of sufficient research Technical 50% 3
5
Modules require more
testing and further
implementation work
Project 50% 2
6 Inconsistency in Input Project 30% 3
7Inexperience of Data
Entry ClerkPersonal 20% 3
Table 3.1: Risk Analysis
3.5 HARDWARE AND SOFTWARE REQUIREMENTSHardware
1. 256 MB RAM.
2. 80 GB HDD.
3. Intel 1.66 GHz Processor Pentium 4
Software
1. Visual Studio 2008(.Net framework)
2. MS SQL Server 2005
Chapter 4
SYSTEM DESIGNA design detail is the process of defining the architecture, components, modules, interfaces,
and data for a system to satisfy specified requirements. One could see it as the application of
systems theory to product development. Object-oriented analysis and design methods are
becoming the most widely used methods for computer systems design. The UML has become
the standard language in object-oriented analysis and design. It is widely used for modeling
software systems and is increasingly used for high designing non-software systems and
organizations
4.1 OVERALL SYSTEM OVERVIEW
The Recommender system first extracts unique properties of music like pitch, chord, and
tempo from the music file using a CLAM annotator software tool.
This extracted data is then stored on the database. The user logs in to his/her account on the
recommender system site and listens to songs and provides ratings to these songs. Two songs
with the maximum ratings are selected and the genetic algorithm is applied to them.
PHASES OF GENETIC ALGORITHM IN RECOMMENDER SYSTEM:
Fig 4.1: The process of Interactive GA phase
The following are phases of genetic algorithm:
1. Selection phase – Music features are extracted using CLAM software. The items
which are rated above threshold value are selected rest other items are ignored.
2. Crossover phase – The BLX – alpha crossover algorithm is used since extracted
features are real numbers. Hence crossover is performed with this algorithm resulting
in new generation
BLX-a:
1. Select two parents X(t) and Y(t) from a parent pool2. Create two offspring X(t+1) and Y(t+1) as follows:3. for i = 1 to n do4. di=|xi(t)-yi(t)|5. Choose a uniform random real number u from6. interval <min(xi(t),yi(t))-adi,7. max(xi(t),yi(t))+adi>8. xi(t+1)=u9. Choose a uniform random real number u from10. interval11. <min(xi(t),yi(t))-adi, max(xi(t),yi(t))+adi>12. yi(t+1)=u13. end do14. where: a – positive real parameter
3. Matching phase- This phase finds the similar items stored in database to the newly
generated music features. Once similarity is found those items are recommended to
the User. This phase uses Euclidean distance between two offspring and distance
between Each feature of the two offspring is calculated, resulting value is used to
match the records stored in the database those records are compared with the resulting
value which the user has given highest rating to the tracks.
Euclidean Formula:
dij=√∑k−1
n
( x ik−x jk )2
Where i and j are two items and k is the length of each music property.
Display recommended items
The final step after applying genetic algorithm is displaying the items that are closest to the
items which the user has given the highest rating. Using Euclidean distance formula the
nearest possible music features which are matching with the one generated by crossover step
of genetic algorithm are matched and given as out for recommended items.
Here a separate recommendation page is displayed where the top ten similar records matching
which the two off springs generated is displayed.
4.2 PROPOSED SYSTEM DESIGN/ARCHITECTUREWORKING:
Apply genetic algorithm to music recommendation system.
The system can detect and recommend appropriate songs which are suitable for user’s
musical preference.
And, the system requires pre-processing which is feature (i,e. tempo, chord, pitch, etc.)
extraction from music. It based on shuffle operation. (i.e, play song randomly)
At first time, the system recommends songs randomly and user cans judge’s song’s
preference by controlling their devices or program. Just click the next song button.
Fig 4.2: System Architecture
4.3 ANALYSIS MODEL
4.3.1 Data Flow DiagramData flow diagrams are the most commonly used way of documenting the process of
current and required systems. As their name suggests they are a pictorial way of showing
the flow of data into/within the system, around the system and out of a system. It is a
graphical representation of flow of data within a system. Unlike, flowcharts, DFDs do not
give detailed descriptions of modules but graphically describe data and how the data
interact with the system. The DFD enable us to visualize how the system operates, its final
output and the implementation of the system as a whole including modification if any.
Components of DFD
DFDs are constructed using four major components
1. external entries
2. data stores
3. processes and
4. data flows
External entities represent the source of data as input to the system. They are also the
destination of system data. External entities can be called data stores outside the system.
These are represented by squares.
Data stores represent stores of data within the system, for example, computer files or
databases. An open-ended box represents a data, which implies store data at rest or a
temporary repository of data.
Processes represent activities in which data is manipulated by being stored or retrieved or
transferred in some way. In other words, we can say that process transforms the input data
into output data. Circles stand for a process that converts data into information.
Data flow represents the movement of data from one component to the other. An arrow
(→) identifies data flow, i.e. data in motion. It is a pipeline through which information
flows. Data flows are generally shown as one-way only. Data flows between external
entities are shown as dotted lines (------›).
Fig 4.3: System DFD
Fig 4.4: User login DFD
Fig 4.5: Resources DFD
Fig 4.6: Admin login DFD
4.3.2 CLASS DIAGRAMIn software engineering, a class diagram in the Unified Modelling Language (UML) is a
type of static structure diagram that describes the structure of a system by showing the
system's classes, their attributes, operations (or methods), and the relationships among
objects.
The class diagram is the main building block of object oriented modelling. It is used both
for general conceptual modelling of the application, and for detailed modelling translating
the models into programming code. In the diagram, classes are represented with boxes
which contain three parts:
The middle part contains the attributes of the class
The bottom part gives the methods or operations the class can take or undertake. In
the design of a system, a number of classes are identified and grouped together in a
class diagram which helps to determine the static relations between those objects
Fig 4.7: Class Diagram
4.3.3 Use Case DiagramA use case diagram at its simplest is a representation of a user's interaction with the
system and depicting the specifications of a use case. A use case diagram can portray the
different types of users of a system and the various ways that they interact with the
system.
While a use case itself might drill into a lot of detail about every possibility, a use-case
diagram can help provide a higher-level view of the system. It has been said before that
"Use case diagrams are the blueprints for your system". They provide the simplified and
graphical representation of what the system must actually do.
Fig 4.8 : System use case diagram
4.3.4 Sequence DiagramA sequence diagram is a kind of interaction diagram that shows how processes operate
with one another and in what order. It is a construct of a Message Sequence Chart.
A sequence diagram shows object interactions arranged in time sequence. It depicts the
objects and classes involved in the scenario and the sequence of messages exchanged
between the objects needed to carry out the functionality of the scenario.
Sequence diagrams are typically associated with use case realizations in the Logical View
of the system under development. Sequence diagrams are sometimes called event
diagrams, event scenarios
A sequence diagram shows, as parallel vertical lines (lifelines), different processes or
objects that live simultaneously, and, as horizontal arrows, the messages exchanged
between them, in the order in which they occur. This allows the specification of simple
runtime scenarios in a graphical manner.
Fig 4.9: Sequence Diagram
Chapter 5
Project Planning And Scheduling
5.1 Timeline ChartThe Time Chart Shows planned and actual progress for a number of tasks displayed against a
horizontal time scale.
It is effective and easy-to-read method of indicating the actual current status for each of set of
tasks compared to planned progress for each activity of the set.
Time Charts provide a clear picture of the current state of the project.
FIRST PHASE:
Table 5.1: Timeline Table
Months AUGUST SEPTEMBE
R
OCTOBER NOVEMBER
Particulars ↓
W
1
W
2
W
3
W
4
W
1
W
2
W
3
W
4
W
1
W
2
W
3
W
4
W
1
W
2
W
3
W
4
1)Gathering
initial
requirement
Meet internal
guide
Identify needs
and constraints
Determine goals
and scope
Establish
specification
2) Feasibility
Phase
Technical (s/w
h/w) feasibility
Economic
feasibility
Application
(code) feasibility
Operational
feasibility
3) Requirement
determination
phase
Determine inputs
Determine
outputs
Process control
Synopsis
SECOND PHASE:
Table 5.2: Timeline Table
Months JANUARY FEBRUARY MARCH APRIL
Particulars ↓
W
1
W
2
W
3
W
4
W
1
W
2
W
3
W
4
W
1
W
2
W
3
W
4
W
1
W
2
W
3
W
4
Project Design
Class Diagram
Sequence
Diagram
Activity Diagram
Dataflow
Diagram
Implementation
Implementing
Test Module
Database
Connectivity
Admin Module
User Module
Designing UI
Testing
5.2 Task SheetThe following table gives the project plan for the Phase 1 & 2 of our project:
Table 5.3: Work Distribution Table
Work task sheet Planned Start
Actual start
Planned End
Actual End
Assigned Start Effort Allocated
1.Conceptualization &
InitializationWk1,d1 Wk1,d1 Wk1, d4 Wk1, d4
Amit Dahiya,
Dan Mathews,
Manoj Jaiswal,
Justin Ebby
4-days
2.Literature Survey Wk1,d1 Wk1,d1 Wk1, d4 Wk1, d4
Amit Dahiya,
Dan Mathews,
Manoj Jaiswal,
Justin Ebby
4-days
3.Propsed system Wk1,d1 Wk1,d3 Wk1,d4 Wk1,d6 5-days
4.Methodology Wk1,d1 Wk1,d3 Wk1,d4 Wk1,d6Amit Dahiya,
Dan Mathews5-days
5.Alogorithm
DevelopmentWk2,d1 Wk2,d1 Wk2,d5 Wk1,d5
Dan Mathews,
Manoj Jaiswal, 6-days
6.Feasibility System Wk2,d1 Wk2,d2 Wk3,d5 Wk3,d6Manoj Jaiswal,
Justin Ebby4-days
7.Requirement
AnalysisWk3,d1 Wk3,d2 Wk3,d5 Wk3,d6
Amit Dahiya,
Justin Ebby4-days
8.Risk analysis Wk3,d1 Wk3,d3 Wk4,d5 Wk4,d7Amit Dahiya,
Manoj Jaiswal3-days
9.Design Details Wk4,d1 Wk4,d1 Wk5,d5 Wk5,d5Dan Mathews,
Justin Ebby6-days
10. Flow Chart Wk5,d1 Wk5,d3 Wk5,d5 Wk5,d7
Amit Dahiya,
Manoj Jaiswal, 2-days
11. Implementation W6,d1 W6,d2 W7,d1 W7,d3Dan Mathews,
Justin Ebby9-days
12.Designing UI W7,d4 W7,d6 W8,d1 W8,d5Dan Mathews,
Justin Ebby5-days
13.Testing W8,d6 W8,d7 W9,d2 W9,d7Amit Dahiya,
Manoj Jaiswal,7-days
Chapter 6
IMPLEMENTATION6.1 Algorithms and Flowcharts
6.1.1 Algorithm for System Flow
Load Music files Extract music properties Store the music properties and attributes in the database Extract the records of songs which user has rated Implement Genetic Algorithm and analyze the user rated songs Display recommendations which are similar to user’s best rated songs
6.1.2 Flowchart for System Flow
6.1.3 Algorithm for BLX-a Crossover
15. Select two parents X(t) and Y(t) from a parent pool16. Create two offspring X(t+1) and Y(t+1) as follows:17. for i = 1 to n do18. di=|xi(t)-yi(t)|19. Choose a uniform random real number u from20. interval <min(xi(t),yi(t))-adi,21. max(xi(t),yi(t))+adi>22. xi(t+1)=u23. Choose a uniform random real number u from24. interval25. <min(xi(t),yi(t))-adi, max(xi(t),yi(t))+adi>26. yi(t+1)=u27. end do28. where: a – positive real parameter
BLX α CROSS OVER ALGORITHM FLOWCHART
Select two parents X(t) and Y(t) from a population of randomly
generated individuals.
Create two offspring X(t+1) and Y(t+1) as follows:
For(i=1; i<=n; i++)
di=|Xi(t)-yi(t)|
. Choose a uniform random real number u from interval for
chromosome X<min(Xi(t),Yi(t))-a*di, max(Xi(t),Yi(t))+a*di>
. Xi(t+1)=u
Choose a uniform random real number u from interval for
chromosome Y<min(Xi(t),Yi(t))-a*di, max(Xi(t),Yi(t))+a*di>
Yi(t+1)=u
True
False
6.2 Output Screens
Fig 6.3: Admin Login
End
Fig 6.4: Default Admin Page
Fig 6.5: Change Password
Fig 6.6: Manage songs
Fig 6.7: Add new song
Fig 6.8: User login
Fig 6.9: Default home page
Fig 6.10: Songs page for user
Fig 6.11: Favorites
Fig 6.12: Profile
Fig 6.13: Recommend
Fig 6.14: Email Validation at registration page
Fig 6.15: Validation and verification at registration page
Fig 6.16a:
Fig 6.16b: Login page validation verification
Fig 6.17a:
Fig 6.17b: Manage songs verification-validation
Chapter 6
Testing
Software testing is an investigation conducted to provide stakeholders with information about
the quality of the product or service under test. Software testing can also provide an objective,
independent view of the software to allow the business to appreciate and understand the risks
of software implementation. Test techniques include, but are not limited to the process of
executing a program or application with the intent of finding software (errors or other
defects).
Software testing can be stated as the process of validating and verifying that a computer
program/application/product:
Meets the requirements that guided its design and development,
Works as expected,
Satisfies the needs of stakeholders.
6.1 Test Cases
Software testing is an investigation conducted to provide stakeholders with information about
the quality of the product or service under test. Software testing can also provide an objective,
independent view of the software to allow the business to appreciate and understand the risks
of software implementation. Test techniques include, but are not limited to the process of
executing a program or application with the intent of finding software (errors or other
defects).
Software testing can be stated as the process of validating and verifying that a computer
program/application/product:
meets the requirements that guided its design and development,
works as expected,
Satisfies the needs of stakeholders.
Table 6.1:Test cases Test Case Id: 01Test Case Objective: To test Login Module
Table 1: Login Test case
Test Case No.
Test Case Description Test Input Expected Output Actual
Output Result
1 To check valid User name & password
User name: admin Password : 123
Home Page Should be displayed
Home Page is displayed
Success
2 To check empty user name field & click on login button
User namePassword:22323
Message should be displayed "Username cannot be blank"
Message is displayed "Username cannot be blank"
Success
3 Checking empty Password field click on login button
User name: admin Password:
Message should be displayed “Password cannot be left blank!"
Message is displayed "Password cannot be left blank!"
Success
4 To check if invalid user name
User name : 105 password :gag
Message should be displayed “Invalid username”
Message is displayed “Invalid username”
Success
5 To check if invalid password
User name:102 Password : test
Message should be displayed “ invalid password ”
Message is display “ invalid password ”
Success
Test Case Id: 02Test Case Objective: To test Displaying of songs Module
Test Case No.
Test Case Description
Test Input Expected Output Actual Output Result
1 Displaying initial page of the web application
Users starts the application
Home Page should be displayed with 10 items using uniform distribution
Home Page is displayed with 10 items on each page
Success
2 User Rating User gives ratings to 10 items
Display the selected items with average rating
A music item with average rating is displayed.
Success
3 User submits rating for new items to be recommended
User rates the items
Using Genetic algorithm 10 items should be displayed
Using Genetic algorithm 10 items are displayed on the next successive page.
Success
4 User checks on category
User selects the checkbox and selects the song of the respective category
It should direct to recommendation page
It directs to recommendation page and displays the songs with selected category
Success
Table 2: Displaying of Songs
Test Case Id: 03Test Case Objective: To test Displaying of songs Module
Test Case No.
Test Case Description
Test Input Expected Output Actual Output Result
1 To check empty fields and check on save button
Name:Address:Country:State:Zip Code:400067Phone number:Contact number:
It should display error message
Error message is displayed “Field is required”
Success
2 To check the length of zip code
40006 Message should be displayed “Invalid zip code”
Error message is displayed“Invalid zip code”
Success
3 To check the length of mobile number and contact number
89888822 Message should be displayed “Invalid mobile number”
Error message is displayed“Invalid mobile number”
Success
4 To check whether change of password works properly
Current password:New password:Confirm password:
Message should be displayed “It cannot be left blank”
Message is displayed “It cannot be left blank”
Success
5 Checking save option
Click on save button
Message should displayed “Information saved successfully”
Message is displayed “Information saved successfully”
Success
6 Checking cancel option
Click on cancel button
It should reset the textboxes
It resets the textboxes
Success
7 Checking reset option
Click on reset button
It should reset the textboxes
It resets the textboxes
Success
Table 3: Profile Page Test Case
Test Case Id: 04Test Case Objective: To test Admin Login PAGE
Table 4: Admin Login Test Case
Test Case No.
Test Case Description Test Input Expected Output Actual
Output Result
1 To check valid User name & password
User name:admin Password : admin
Manage Page Should be displayed
Manage Page is displayed
Success
2 To check empty user name field & click on login button
User namePassword:22323
Message should be displayed "Username cannot be blank"
Message is displayed "Username cannot be blank"
Success
3 Checking empty Password field click on login button
User name:admin Password:
Message should be displayed “Password cannot be left blank!"
Message is displayed "Password cannot be left blank!"
Success
4 To check if invalid user name
User name : 105 password :gdg
Message should be displayed “Invalid username”
Message is displayed “Invalid username”
Success
5 To check if invalid password
User name:102 Password : test
Message should be displayed “ invalid password ”
Message is display “ invalid password ”
Success
Chapter 8
Conclusion and Future Work
8.1 CONCLUSION
The “Recommender System Using Genetic Algorithm for music data” satisfies all proposed requirements. The system is highly scalable and user friendly. The system has been tested under all criteria. The system will prove to be an efficient replacement to existing Music Recommender Systems. The User Interface is user friendly. It is an efficient companion for people who do not have time to manually search for songs they like to listen to. This algorithm simply needs ratings for a few songs from the user, and then it will automatically recommend similar songs to the user.
The recommender system that was able to accurately recognize the trend of a user’s preference and adaptively provide an appropriate recommendation in a time efficient manner. To this end, the proposed system combined the strengths of content-based filtering and interactive genetic algorithm.
The proposed system initially extracts the unique features of each item using the content-based filtering. As inputs to genetic algorithm, the individuals are composed of the extracted features of the data set. The system then requests the user to evaluate the fitness of each item. Next, genetic algorithm operates on the evaluated items to discover the most appropriate items for recommendation while the data grouping technique is applied to search for the candidate items more rapidly.
8.2 FUTURE WORK
The recommender system provides with user profile and asks the user to provide rating and then display the recommendations of music files as output. Further it can be extended which would concentrate on user behavior and capture the behavior in terms of user preferences. It would store the date, time and user session during that duration which songs user is listening to and recommend those music files only.
One growing area of research in the area of recommender systems is mobile recommender systems. With the increasing ubiquity of internet-accessing smart phones, it is now possible to offer personalized, context-sensitive recommendations. This is a particularly difficult area of research as mobile data is more complex than recommender systems often have to deal with (it is heterogeneous, noisy, requires spatial and temporal auto-correlation, and has validation and generality problems ). Additionally, mobile recommender systems suffer from a transplantation problem - recommendations may not apply in all regions (for instance, it would be unwise to recommend a recipe in an area where all of the ingredients may not be available).
Appendix I
User Login PageImports System.Data.SqlClientPartial Class Admin_Login Inherits System.Web.UI.Page Dim conn As SqlConnection Dim comm As SqlCommand Public ds As Data.DataSet Public da As SqlDataAdapter Public cs As String = System.Configuration.ConfigurationSettings.AppSettings.Item("connection_string") Public username As String Public user_id As Integer Public first_name As String Public last_name As String
Protected Sub btnLogin_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnLogin.Click Dim u As String = txtUsername.Text Dim p As String = txtPassword.Text conn = New SqlConnection(cs) conn.Open() da = New SqlDataAdapter da.SelectCommand = New SqlCommand da.SelectCommand.Connection = conn da.SelectCommand.CommandText = "user_login" da.SelectCommand.CommandType = Data.CommandType.StoredProcedure da.SelectCommand.Parameters.AddWithValue("@username", u) da.SelectCommand.Parameters.AddWithValue("@password", p)
ds = New Data.DataSet() da.Fill(ds, "user_login") If ds.Tables("user_login").Rows.Count = 0 Then lblshow.Text = "Invalid Login Information" txtUsername.Text = "" txtPassword.Text = "" ElseIf ds.Tables("user_login").Rows.Count > 0 Then username = ds.Tables("user_login").Rows(0).Item("username") user_id = ds.Tables("user_login").Rows(0).Item("user_id") first_name = ds.Tables("user_login").Rows(0).Item("first_name") last_name = ds.Tables("user_login").Rows(0).Item("last_name")
'custid = ds.Tables("admin_login").Rows(0).Item("admin_id") Session("uid") = user_id Session("name") = first_name + " " + last_name 'Session("username") = username Response.Redirect("Default.aspx") Exit Sub End If
End Sub
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load If Request.QueryString("msg") = "logout" Then lblshow.Text = "You are Logout Successfully" Session("uid") = 0 Session("name") = "" ElseIf Request.QueryString("msg") = "register" Then lblshow.Text = "You are Registred Successfully..Please Login.." End If End SubEnd ClassAdmin Login PageImports System.Data.SqlClientPartial Class Admin_Login Inherits System.Web.UI.Page Public conn As SqlConnection Public comm As SqlCommand Public ds As Data.DataSet Public da As SqlDataAdapter Public cs As String = System.Configuration.ConfigurationSettings.AppSettings.Item("connection_string") Public username As String Public user_id As Integer Protected Sub btnLogin_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnLogin.Click Dim u As String = txtUsername.Text Dim p As String = txtPassword.Text conn = New SqlConnection(cs)
conn.Open() da = New SqlDataAdapter da.SelectCommand = New SqlCommand da.SelectCommand.Connection = conn da.SelectCommand.CommandText = "admin_login" da.SelectCommand.CommandType = Data.CommandType.StoredProcedure da.SelectCommand.Parameters.AddWithValue("@username", u) da.SelectCommand.Parameters.AddWithValue("@password", p) ds = New Data.DataSet() da.Fill(ds, "admin_login") If ds.Tables("admin_login").Rows.Count = 0 Then lblshow.Text = "Invalid Login Information" txtUsername.Text = "" txtPassword.Text = "" txtUsername.Focus() ElseIf ds.Tables("admin_login").Rows.Count > 0 Then username = ds.Tables("admin_login").Rows(0).Item("username") user_id = ds.Tables("admin_login").Rows(0).Item("user_id") 'custid = ds.Tables("admin_login").Rows(0).Item("admin_id") Session("aid") = user_id Session("uname") = username 'Session("username") = username Response.Redirect("Default.aspx") Exit Sub End If
End Sub
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load user_id = CType(Session("aid"), Integer) If Request.QueryString("msg") = "logout" Then lblshow.Text = "You are Logout Successfully" Session("aid") = 0 Session("uname") = "" ElseIf Request.QueryString("msg") = "register" Then lblshow.Text = "You are Registred Successfully..Please Login.." ElseIf user_id <> 0 Then Response.Redirect("Default.aspx") End If End SubEnd Class
Admin-Add new songImports System.Data.SqlClientImports System.IO.PathPartial Class add_new_song Inherits System.Web.UI.Page Dim conn As SqlConnection Dim comm As SqlCommand
Public ds As Data.DataSet Public da As SqlDataAdapter Public cs As String = System.Configuration.ConfigurationSettings.AppSettings.Item("connection_string") Public filename As String Public filepath As String Public song_id As Integer Public title As String Public Artist As String Public Category As String Public tempo As Double Public pitch As Double Public octav As Double Public root As Double Public mode As Double Public user_id As Integer
Protected Sub btnreg_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnreg.Click If fuimg.HasFile Then filename = fuimg.FileName End If If Request.QueryString("action") = "edit" Then song_id = Request.QueryString("song_id") conn = New SqlConnection(cs) conn.Open() da = New SqlDataAdapter da.SelectCommand = New SqlCommand da.SelectCommand.Connection = conn da.SelectCommand.CommandText = "song_update" da.SelectCommand.CommandType = Data.CommandType.StoredProcedure da.SelectCommand.Parameters.AddWithValue("@song_id", song_id) da.SelectCommand.Parameters.AddWithValue("@Title", Trim(txtname.Text)) da.SelectCommand.Parameters.AddWithValue("@Artist", Trim(txtartist.Text)) da.SelectCommand.Parameters.AddWithValue("@category", ddlcategory.SelectedValue) da.SelectCommand.Parameters.AddWithValue("@Tempo", Trim(txttempo.Text)) da.SelectCommand.Parameters.AddWithValue("@pitch", Trim(txtpitch.Text)) da.SelectCommand.Parameters.AddWithValue("@Octav", Trim(txtoctav.Text)) da.SelectCommand.Parameters.AddWithValue("@Root", Trim(txtroot.Text)) da.SelectCommand.Parameters.AddWithValue("@Mode", Trim(txtmode.Text)) da.SelectCommand.ExecuteNonQuery() Response.Redirect("manage_songs.aspx?msg=update") Else fuimg.SaveAs(Server.MapPath("songs/" + filename)) conn = New SqlConnection(cs) conn.Open() da = New SqlDataAdapter da.SelectCommand = New SqlCommand da.SelectCommand.Connection = conn
da.SelectCommand.CommandText = "song_insert" da.SelectCommand.CommandType = Data.CommandType.StoredProcedure da.SelectCommand.Parameters.AddWithValue("@Title", Trim(txtname.Text)) da.SelectCommand.Parameters.AddWithValue("@Artist", Trim(txtartist.Text)) da.SelectCommand.Parameters.AddWithValue("@category", ddlcategory.SelectedValue) da.SelectCommand.Parameters.AddWithValue("@song_path", "/genetic/Admin/songs/" + filename) da.SelectCommand.Parameters.AddWithValue("@Tempo", Trim(txttempo.Text)) da.SelectCommand.Parameters.AddWithValue("@pitch", Trim(txtpitch.Text)) da.SelectCommand.Parameters.AddWithValue("@Octav", Trim(txtoctav.Text)) da.SelectCommand.Parameters.AddWithValue("@Root", Trim(txtroot.Text)) da.SelectCommand.Parameters.AddWithValue("@Mode", Trim(txtmode.Text)) da.SelectCommand.ExecuteNonQuery() Response.Redirect("manage_songs.aspx?msg=save") End If End Sub
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load btlDelete.Visible = False If Request.QueryString("action") = "edit" And Me.IsPostBack = False Then fuimg.Enabled = False btlDelete.Visible = True song_id = Request.QueryString("song_id") conn = New SqlConnection(cs) conn.Open() da = New SqlDataAdapter da.SelectCommand = New SqlCommand da.SelectCommand.Connection = conn da.SelectCommand.CommandText = "song_select" da.SelectCommand.CommandType = Data.CommandType.StoredProcedure da.SelectCommand.Parameters.AddWithValue("@song_id", song_id) ds = New Data.DataSet da.Fill(ds, "song_select") title = ds.Tables("song_select").Rows(0).Item("Title") Artist = ds.Tables("song_select").Rows(0).Item("Artist") Category = ds.Tables("song_select").Rows(0).Item("Category") tempo = ds.Tables("song_select").Rows(0).Item("tempo") pitch = ds.Tables("song_select").Rows(0).Item("pitch") octav = ds.Tables("song_select").Rows(0).Item("octav") root = ds.Tables("song_select").Rows(0).Item("root") mode = ds.Tables("song_select").Rows(0).Item("mode") txtname.Text = title txtartist.Text = Artist ddlcategory.SelectedValue = Category txttempo.Text = tempo txtpitch.Text = pitch txtoctav.Text = octav txtroot.Text = root
txtmode.Text = mode End If End Sub
Protected Sub btlDelete_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btlDelete.Click conn = New SqlConnection(cs) conn.Open() da = New SqlDataAdapter da.SelectCommand = New SqlCommand da.SelectCommand.Connection = conn da.SelectCommand.CommandText = "delete from Songs where Title=@Title" da.SelectCommand.CommandType = Data.CommandType.Text da.SelectCommand.Parameters.AddWithValue("@Title", txtname.Text) da.SelectCommand.ExecuteNonQuery() Response.Redirect("manage_songs.aspx?msg=Delete") End SubEnd Class
Admin-Change PasswordImports System.Data.SqlClientPartial Class change_password Inherits System.Web.UI.Page Dim conn As SqlConnection Dim comm As SqlCommand Public da As SqlDataAdapter Public ds As Data.DataSet Public dr As SqlDataReader Public cs As String = System.Configuration.ConfigurationSettings.AppSettings.Item("connection_string") Public msg As String Public user_id As Integer Public password As String
Protected Sub btnreg_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnreg.Click user_id = CType(Session("aid"), Integer) If user_id = Nothing Then Response.Redirect("Login.aspx") End If conn = New SqlConnection(cs) conn.Open() da = New SqlDataAdapter da.SelectCommand = New SqlCommand da.SelectCommand.Connection = conn da.SelectCommand.CommandText = "select * from admin where user_id = " & user_id & "" da.SelectCommand.CommandType = Data.CommandType.Text ds = New Data.DataSet da.Fill(ds, "MUser")
password = ds.Tables("Muser").Rows(0).Item("password") If txtopass.Text <> password Then lblshow.Text = "Invalid current Password" Else conn = New SqlConnection(cs) conn.Open() da = New SqlDataAdapter da.SelectCommand = New SqlCommand da.SelectCommand.Connection = conn da.SelectCommand.CommandText = "update admin set password = '" & txtnpass.Text & "' where user_id = " & user_id & "" da.SelectCommand.CommandType = Data.CommandType.Text ds = New Data.DataSet da.SelectCommand.ExecuteNonQuery() lblshow.Text = "Password has been reset Succsessfully"
End If End SubEnd Class
Admin-DefaultPartial Class _Default Inherits System.Web.UI.Page Public user_id As Integer Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load user_id = CType(Session("aid"), Integer) If user_id = 0 Then Response.Redirect("Login.aspx") End If End SubEnd Class
Admin-Manage SongsImports System.Data.SqlClientImports System.IOImports System.IO.PathPartial Class manage_img_base Inherits System.Web.UI.Page Dim conn As SqlConnection Dim comm As SqlCommand Public ds As Data.DataSet Public da As SqlDataAdapter Public cs As String = System.Configuration.ConfigurationSettings.AppSettings.Item("connection_string") Public filetodelete As String Public img_id As Integer Public user_id As Integer
Protected Sub SqlDataSource1_Deleted(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.SqlDataSourceStatusEventArgs) Handles SqlDataSource1.Deleted If e.AffectedRows <> 0 Then lblshow.Text = " Record deleted Successfully" End If End Sub
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load user_id = CType(Session("aid"), Integer) If user_id = 0 Then Response.Redirect("Login.aspx") End If If Request.QueryString("msg") = "save" Then lblshow.Text = "Record Saved Successfully" ElseIf Request.QueryString("msg") = "update" Then lblshow.Text = "Record Updated Successfully" ElseIf Request.QueryString("msg") = "delete" Then lblshow.Text = "Record Delete Successfully" End If
End Sub
Protected Sub GridView1_RowDeleting(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewDeleteEventArgs) Handles GridView1.RowDeleting img_id = GridView1.DataKeys(e.RowIndex).Value conn = New SqlConnection(cs) conn.Open() da = New SqlDataAdapter da.SelectCommand = New SqlCommand da.SelectCommand.Connection = conn da.SelectCommand.CommandText = "select img_path from image_base where img_id = " & img_id & "" da.SelectCommand.CommandType = Data.CommandType.Text ds = New Data.DataSet da.Fill(ds, "image_base") filetodelete = ds.Tables("image_base").Rows(0).Item("img_path") File.Delete(Server.MapPath(filetodelete)) End SubEnd Class
User-About usPartial Class about_us Inherits System.Web.UI.Page
End Class
User-Change PasswordImports System.Data.SqlClient
Partial Class change_password Inherits System.Web.UI.Page Dim conn As SqlConnection Dim comm As SqlCommand Public da As SqlDataAdapter Public ds As Data.DataSet Public dr As SqlDataReader Public cs As String = System.Configuration.ConfigurationSettings.AppSettings.Item("connection_string") Public msg As String Public user_id As Integer Public password As String
Protected Sub btnreg_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnreg.Click user_id = CType(Session("uid"), Integer) If user_id = Nothing Then Response.Redirect("Login.aspx") End If conn = New SqlConnection(cs) conn.Open() da = New SqlDataAdapter da.SelectCommand = New SqlCommand da.SelectCommand.Connection = conn da.SelectCommand.CommandText = "select * from MUser where user_id = " & user_id & "" da.SelectCommand.CommandType = Data.CommandType.Text ds = New Data.DataSet da.Fill(ds, "MUser") password = ds.Tables("Muser").Rows(0).Item("password") If txtopass.Text <> password Then lblshow.Text = "Invalid current Password" Else conn = New SqlConnection(cs) conn.Open() da = New SqlDataAdapter da.SelectCommand = New SqlCommand da.SelectCommand.Connection = conn da.SelectCommand.CommandText = "update Muser set password = '" & txtnpass.Text & "' where user_id = " & user_id & "" da.SelectCommand.CommandType = Data.CommandType.Text ds = New Data.DataSet da.SelectCommand.ExecuteNonQuery() lblshow.Text = "Password has been reset Succsessfully"
End If End SubEnd Class
User-Contact us
Partial Class contact_us Inherits System.Web.UI.Page
End Class
User- DefaultPartial Class Admin_Default Inherits System.Web.UI.Page
End ClassUser- Default 2Partial Class Default2 Inherits System.Web.UI.Page
End Class
User- Favourites Songs Public filetodelete As String Public img_id As Integer Public user_id As Integer
Protected Sub SqlDataSource1_Deleted(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.SqlDataSourceStatusEventArgs) Handles SqlDataSource1.Deleted If e.AffectedRows <> 0 Then lblshow.Text = " Record deleted Successfully" End If End Sub
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load user_id = CType(Session("uid"), Integer) 'If user_id = 0 Then ' Response.Redirect("Login.aspx") 'End If If Request.QueryString("msg") = "save" Then lblshow.Text = "Record Saved Successfully" ElseIf Request.QueryString("msg") = "update" Then lblshow.Text = "Record Updated Successfully" End If
End Sub
Protected Sub GridView1_RowDeleting(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewDeleteEventArgs) Handles GridView1.RowDeleting 'img_id = GridView1.DataKeys(e.RowIndex).Value 'conn = New SqlConnection(cs) 'conn.Open() 'da = New SqlDataAdapter
'da.SelectCommand = New SqlCommand 'da.SelectCommand.Connection = conn 'da.SelectCommand.CommandText = "select img_path from image_base where img_id = " & img_id & "" 'da.SelectCommand.CommandType = Data.CommandType.Text 'ds = New Data.DataSet 'da.Fill(ds, "image_base") 'filetodelete = ds.Tables("image_base").Rows(0).Item("img_path") 'File.Delete(Server.MapPath(filetodelete)) End SubEnd Class
User ProfileImports System.Data.SqlClientPartial Class profile Inherits System.Web.UI.Page Dim conn As SqlConnection Dim comm As SqlCommand Public da As SqlDataAdapter Public ds As Data.DataSet Public dr As SqlDataReader Public cs As String = System.Configuration.ConfigurationSettings.AppSettings.Item("connection_string") Public msg As String Public user_id As Integer Public first_name As String Public middle_name As String Public last_name As String Public address As String Public state As String Public country As String Public zipcode As String Public mob_no As String Public contact_no As String
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load If Me.IsPostBack = False Then user_id = CType(Session("uid"), Integer) conn = New SqlConnection(cs) conn.Open() da = New SqlDataAdapter da.SelectCommand = New SqlCommand da.SelectCommand.Connection = conn da.SelectCommand.CommandText = "user_select" da.SelectCommand.CommandType = Data.CommandType.StoredProcedure da.SelectCommand.Parameters.AddWithValue("@user_id", user_id)
ds = New Data.DataSet da.Fill(ds, "user_select") first_name = ds.Tables("user_select").Rows(0).Item("first_name") middle_name = ds.Tables("user_select").Rows(0).Item("middle_name") last_name = ds.Tables("user_select").Rows(0).Item("last_name") address = ds.Tables("user_select").Rows(0).Item("address") state = ds.Tables("user_select").Rows(0).Item("state") country = ds.Tables("user_select").Rows(0).Item("country") zipcode = ds.Tables("user_select").Rows(0).Item("zipcode") mob_no = ds.Tables("user_select").Rows(0).Item("mobile_no") contact_no = ds.Tables("user_select").Rows(0).Item("contact_no") txtfirstname.Text = first_name txtmiddlename.Text = middle_name txtlastname.Text = last_name txtaddress.Text = address txtstate.Text = state txtcountry.Text = country txtzip.Text = zipcode txtmob.Text = mob_no txtcontact1.Text = contact_no End If
End Sub
Protected Sub btnreg_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnreg.Click user_id = CType(Session("aid"), Integer) conn = New SqlConnection(cs) conn.Open() da = New SqlDataAdapter da.SelectCommand = New SqlCommand da.SelectCommand.Connection = conn da.SelectCommand.CommandText = "user_update" da.SelectCommand.CommandType = Data.CommandType.StoredProcedure da.SelectCommand.Parameters.AddWithValue("@user_id", user_id) da.SelectCommand.Parameters.AddWithValue("@first_name", Trim(txtfirstname.Text)) da.SelectCommand.Parameters.AddWithValue("@middle_name", Trim(txtmiddlename.Text)) da.SelectCommand.Parameters.AddWithValue("@last_name", Trim(txtlastname.Text)) da.SelectCommand.Parameters.AddWithValue("@address", txtaddress.Text) da.SelectCommand.Parameters.AddWithValue("@state", txtstate.Text) da.SelectCommand.Parameters.AddWithValue("@country", txtcountry.Text) da.SelectCommand.Parameters.AddWithValue("@zipcode", txtzip.Text) da.SelectCommand.Parameters.AddWithValue("@mobile_no", txtmob.Text) da.SelectCommand.Parameters.AddWithValue("@contact_no", Trim(txtcontact1.Text)) da.SelectCommand.ExecuteNonQuery() lblshow.Text = "Information Saved Successfully" End SubEnd Class
User- RecommendImports System.Data.SqlClient
Partial Class recommend Inherits System.Web.UI.Page
Dim conn As SqlConnection Dim comm As SqlCommand Public ds As Data.DataSet Public ds1 As Data.DataSet Public da As SqlDataAdapter Public cs As String = System.Configuration.ConfigurationSettings.AppSettings.Item("connection_string") Public username As String Public song_id As Integer Public user_id As Integer Public crating As Integer Public trating As Integer Public gr As GridViewRow Public usercount As Integer Public rating As Integer Public line_no As String Public songs As String = "" Public collection(9000) As String Public Xt_tem As Double Public Xt_pic As Double Public Xt_oct As Double Public Xt_root As Double Public Xt_mod As Double Public Yt_tem As Double Public Yt_pic As Double Public Yt_oct As Double Public Yt_root As Double Public Yt_mod As Double Public Di_tem As Double Public Di_pic As Double Public Di_oct As Double Public Di_root As Double Public Di_mod As Double Public min_tem As Double Public min_pic As Double Public min_oct As Double Public min_root As Double Public min_mod As Double Public max_tem As Double Public max_pic As Double Public max_oct As Double Public max_root As Double Public max_mod As Double
Public X_offsprings_tem As Double Public X_offsprings_pic As Double Public X_offsprings_oct As Double Public X_offsprings_root As Double Public X_offsprings_mod As Double Public Y_offsprings_tem As Double Public Y_offsprings_pic As Double Public Y_offsprings_oct As Double Public Y_offsprings_root As Double Public Y_offsprings_mod As Double Public tem_dist As Double Public pic_dist As Double Public oct_dist As Double Public root_dist As Double Public mod_dist As Double Public tempo As Double Public pitch As Double Public octav As Double Public root As Double Public mode As Double Public tem_diff As Double Public pic_diff As Double Public oct_diff As Double Public root_diff As Double Public mod_diff As Double Public total_diff As Double Public alpha As Double = 0.5 Public RandomNumGen As New System.Random
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load Dim req, req1 As String req = Request.QueryString("cat") req1 = Request.QueryString("flag")
End Sub
'Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click 'Dim i As Integer = 0 'collection(i) = "s" 'conn = New SqlConnection(cs) 'conn.Open() 'da = New SqlDataAdapter 'da.SelectCommand = New SqlCommand 'da.SelectCommand.Connection = conn 'da.SelectCommand.CommandText = "select distinct song_id from rating_temp"
'da.SelectCommand.CommandType = Data.CommandType.Text 'ds = New Data.DataSet 'da.Fill(ds, "rating_temp") 'For Each row As Data.DataRow In ds.Tables("rating_temp").Rows ' songs = songs + row.Item("song_id").ToString + "," 'Next 'Dim len As Integer = songs.Length 'songs = songs.Remove(len - 1) 'conn = New SqlConnection(cs) 'conn.Open() 'da = New SqlDataAdapter 'da.SelectCommand = New SqlCommand 'da.SelectCommand.Connection = conn 'da.SelectCommand.CommandText = "Select distinct song_id,rating,id from rating_temp where song_id in (" + songs + ") order by id desc" 'da.SelectCommand.CommandType = Data.CommandType.Text 'ds = New Data.DataSet 'da.Fill(ds, "rating_temp1")
'For Each row As Data.DataRow In ds.Tables("rating_temp1").Rows ' 'Dim t As Int16 = ds.Tables("rating_temp1").Rows.Count ' song_id = ds.Tables("rating_temp1").Rows(i).Item("song_id") ' crating = ds.Tables("rating_temp1").Rows(i).Item("rating") ' If collection.Contains(song_id.ToString) Then ' Else ' user_id = CType(Me.Session("uid"), Integer) ' conn = New SqlConnection(cs) ' conn.Open() ' da = New SqlDataAdapter ' da.SelectCommand = New SqlCommand ' da.SelectCommand.Connection = conn ' da.SelectCommand.CommandText = "insert into favorites (song_id,user_id) Values(" & song_id & "," & user_id & ")" ' da.SelectCommand.CommandType = Data.CommandType.Text ' da.SelectCommand.ExecuteNonQuery() ' conn = New SqlConnection(cs) ' conn.Open() ' da = New SqlDataAdapter ' da.SelectCommand = New SqlCommand ' da.SelectCommand.Connection = conn ' da.SelectCommand.CommandText = "Select trating,UserCount from Songs where song_id = " & song_id & "" ' da.SelectCommand.CommandType = Data.CommandType.Text ' ds1 = New Data.DataSet ' da.Fill(ds1, "Songs") ' trating = ds1.Tables("Songs").Rows(0).Item("trating") ' usercount = ds1.Tables("Songs").Rows(0).Item("UserCount") ' usercount = usercount + 1 ' rating = (crating + trating) \ usercount ' trating = (crating + trating)
' conn = New SqlConnection(cs) ' conn.Open() ' da = New SqlDataAdapter ' da.SelectCommand = New SqlCommand ' da.SelectCommand.Connection = conn ' da.SelectCommand.CommandText = "update Songs set Rating = " & rating & ", UserCount = " & usercount & ", trating = " & trating & ", crating = " & crating & " where song_id= " & song_id & "" ' da.SelectCommand.CommandType = Data.CommandType.Text ' da.SelectCommand.ExecuteNonQuery() ' collection(i) = song_id.ToString ' End If ' i = i + 1 'Next ''------------------------------------------------------------------------------------------------------------------------------------------------------------Crossover Begins Here------------------------------------------------------------------------------------------------------------------------------------------------------------------- 'conn = New SqlConnection(cs) 'conn.Open() 'da = New SqlDataAdapter 'da.SelectCommand = New SqlCommand 'da.SelectCommand.Connection = conn 'da.SelectCommand.CommandText = "Select Top 2(crating),song_id,Title,Tempo,Pitch,Octav,Root,Mode from Songs order by crating desc" 'Query for selecting 2 highest rating songs 'da.SelectCommand.CommandType = Data.CommandType.Text 'ds = New Data.DataSet 'da.Fill(ds, "songs1") 'Dim j As Integer = 0 'For Each row As Data.DataRow In ds.Tables("songs1").Rows ' If j = 0 Then ' Xt_tem = ds.Tables("songs1").Rows(0).Item("Tempo") 'X-Tempo ' Xt_pic = ds.Tables("songs1").Rows(0).Item("Pitch") 'X-Pitch ' Xt_oct = ds.Tables("songs1").Rows(0).Item("Octav") 'X-Octav ' Xt_root = ds.Tables("songs1").Rows(0).Item("Root") 'X-Root ' Xt_mod = ds.Tables("songs1").Rows(0).Item("Mode") 'X-Mode ' j = 1 ' ElseIf j = 1 Then ' Yt_tem = ds.Tables("songs1").Rows(1).Item("Tempo") 'Y-Tempo ' Yt_pic = ds.Tables("songs1").Rows(1).Item("Pitch") 'Y-Pitch ' Yt_oct = ds.Tables("songs1").Rows(1).Item("Octav") 'Y-Octav ' Yt_root = ds.Tables("songs1").Rows(1).Item("Root") 'Y-Root ' Yt_mod = ds.Tables("songs1").Rows(1).Item("Mode") 'Y-Mode ' End If 'Next ''---------------------Distance Calculation Between Xt and Yt------------------------------------------- 'Di_tem = Math.Abs(Xt_tem - Yt_tem) 'Distance Between Xt_tem and Yt_tem
'Di_pic = Math.Abs(Xt_pic - Yt_pic) 'Distance Between Xt_pic and Yt_pic 'Di_oct = Math.Abs(Xt_oct - Yt_oct) 'Distance Between Xt_oct and Yt_oct 'Di_root = Math.Abs(Xt_root - Yt_root) 'Distance Between Xt_root and Yt_root 'Di_mod = Math.Abs(Xt_mod - Yt_mod) 'Distance Between Xt_mod and Yt_mod ''------------------------------------------------------------------------------------------------------- ''----------------------Calculating Intervals------------------------------------------------------------ 'min_tem = (Math.Min(Xt_tem, Yt_tem) - (alpha * Di_tem)) 'interval Between Xt_tem and Yt_tem (Min) 'min_pic = (Math.Min(Xt_pic, Yt_pic) - (alpha * Di_pic)) 'interval Between Xt_pic and Yt_pic (Min) 'min_oct = (Math.Min(Xt_oct, Yt_oct) - (alpha * Di_oct)) 'interval Between Between Xt_oct and Yt_oct (Min) 'min_root = (Math.Min(Xt_root, Yt_root) - (alpha * Di_root)) 'interval Between Xt_root and Yt_root (Min) 'min_mod = (Math.Min(Xt_mod, Yt_mod) - (alpha * Di_mod)) 'interval Between Xt_mod and Yt_mod (Min) 'max_tem = (Math.Max(Xt_tem, Yt_tem) - (alpha * Di_tem)) 'interval Between Xt_tem and Yt_tem (Max) 'max_pic = (Math.Max(Xt_oct, Yt_oct) - (alpha * Di_oct)) 'interval Between Xt_pic and Yt_pic (Max) 'max_oct = (Math.Max(Xt_tem, Yt_tem) - (alpha * Di_tem)) 'interval Between Xt_oct and Yt_oct (Max) 'max_root = (Math.Max(Xt_root, Yt_root) - (alpha * Di_root)) 'interval Between Xt_root and Yt_root (Max) 'max_mod = (Math.Max(Xt_mod, Yt_mod) - (alpha * Di_mod)) 'interval Between Xt_mod and Yt_mod (Max) ''------------------------------------------------------------------------------------------------------- ''--------------------Generating Offsprings of each chromosome Randomly---------------------------------- 'Randomize() 'X_offsprings_tem = CDbl((max_tem * Rnd()) + min_tem) 'X offsprings of Tempo 'X_offsprings_pic = CDbl((max_pic * Rnd()) + min_pic) 'X offsprings of Pitch 'X_offsprings_oct = CDbl((max_oct * Rnd()) + min_oct) 'X offsprings of Octav 'X_offsprings_root = CDbl((max_root * Rnd()) + min_root) 'X offsprings of Root 'X_offsprings_mod = CDbl((max_mod * Rnd()) + min_mod) 'X offsprings of Mode 'Y_offsprings_tem = CDbl((max_tem * Rnd()) + min_tem) 'Y offsprings of Tempo 'Y_offsprings_pic = CDbl((max_pic * Rnd()) + min_pic) 'Y offsprings of Picth 'Y_offsprings_oct = CDbl((max_oct * Rnd()) + min_oct) 'Y offsprings of Octav 'Y_offsprings_root = CDbl((max_root * Rnd()) + min_root) 'Y offsprings of Root 'Y_offsprings_mod = CDbl((max_mod * Rnd()) + min_mod) 'Y offsprings of Mode ''------------------------------------------------------------------------------------------------------------------------------------------------------------Crossover Ends Here--------------------------------------------------------------------------------------------------------------------------------------------------------------
''---------------------------------Euclidean Distance Formula----------------------- 'tem_dist = Math.Sqrt((X_offsprings_tem - Y_offsprings_tem) ^ 2) 'pic_dist = Math.Sqrt((X_offsprings_pic - Y_offsprings_pic) ^ 2) 'oct_dist = Math.Sqrt((X_offsprings_oct - Y_offsprings_oct) ^ 2)
'root_dist = Math.Sqrt((X_offsprings_root - Y_offsprings_root) ^ 2) 'mod_dist = Math.Sqrt((X_offsprings_mod - Y_offsprings_mod) ^ 2)
'conn = New SqlConnection(cs) 'conn.Open() 'da = New SqlDataAdapter 'da.SelectCommand = New SqlCommand 'da.SelectCommand.Connection = conn 'If CheckBox1.Checked Then ' ' da.SelectCommand.CommandText = "Select song_id,category,Tempo,Pitch,Octav,Root,Mode from Songs where category='" & ddlcategory.SelectedValue & "'" 'Else ' da.SelectCommand.CommandText = "Select song_id,category,Tempo,Pitch,Octav,Root,Mode from Songs" 'End If 'da.SelectCommand.CommandType = Data.CommandType.Text 'ds = New Data.DataSet 'da.Fill(ds, "songs_master") 'For Each row As Data.DataRow In ds.Tables("songs_master").Rows ' song_id = row.Item("song_id") ' tempo = row.Item("Tempo") ' pitch = row.Item("Pitch") ' octav = row.Item("Octav") ' root = row.Item("Root") ' mode = row.Item("Mode") ' tem_diff = Math.Abs(tem_dist - tempo) ' pic_diff = Math.Abs(pic_dist - pitch) ' oct_diff = Math.Abs(oct_dist - octav) ' root_diff = Math.Abs(root_dist - root) ' mod_diff = Math.Abs(mod_dist - mode)
' total_diff = tem_diff + pic_diff + oct_diff + root_diff + mod_diff
' conn = New SqlConnection(cs) ' conn.Open() ' da = New SqlDataAdapter ' da.SelectCommand = New SqlCommand ' da.SelectCommand.Connection = conn ' da.SelectCommand.CommandText = "update Songs set diff = " & total_diff & " where song_id = " & song_id & "" ' da.SelectCommand.CommandType = Data.CommandType.Text ' da.SelectCommand.ExecuteNonQuery() 'Next
'SqlDataSource1.SelectCommand = "" 'SqlDataSource1.SelectCommand = "SELECT [song_id], [Artist], [Title], [Category], [Tempo], [Pitch], [Octav], [Root], [Mode], [UserCount], [Rating], [song_path],[diff] FROM [Songs] order by [diff]" 'SqlDataSource1.DataBind()
'GridView1.DataBind() ' End Sub End Class
RegisterImports System.Data.SqlClientPartial Class register Inherits System.Web.UI.Page Dim conn As SqlConnection Dim comm As SqlCommand Public da As SqlDataAdapter Public ds As Data.DataSet Public dr As SqlDataReader Public cs As String = System.Configuration.ConfigurationSettings.AppSettings.Item("connection_string") Public msg As String
Protected Sub btnreg_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnreg.Click conn = New SqlConnection(cs) conn.Open() da = New SqlDataAdapter da.SelectCommand = New SqlCommand da.SelectCommand.Connection = conn da.SelectCommand.CommandText = "Select * from MUser where username = '" & txtemail.Text & "'" da.SelectCommand.CommandType = Data.CommandType.Text ds = New Data.DataSet da.Fill(ds, "MUser") If ds.Tables("MUser").Rows.Count > 0 Then lblshow.Text = "There is Already registration done with this Email ID..Kindly Try with another one." Else conn = New SqlConnection(cs) conn.Open() da = New SqlDataAdapter da.SelectCommand = New SqlCommand da.SelectCommand.Connection = conn da.SelectCommand.CommandText = "user_insert" da.SelectCommand.CommandType = Data.CommandType.StoredProcedure da.SelectCommand.Parameters.AddWithValue("@username", Trim(txtemail.Text)) da.SelectCommand.Parameters.AddWithValue("@password", txtpass.Text) da.SelectCommand.Parameters.AddWithValue("@first_name", Trim(txtfirstname.Text)) da.SelectCommand.Parameters.AddWithValue("@middle_name", Trim(txtmiddlename.Text)) da.SelectCommand.Parameters.AddWithValue("@last_name", Trim(txtlastname.Text))
da.SelectCommand.Parameters.AddWithValue("@address", txtaddress.Text) da.SelectCommand.Parameters.AddWithValue("@state", txtstate.Text) da.SelectCommand.Parameters.AddWithValue("@country", txtcountry.Text) da.SelectCommand.Parameters.AddWithValue("@zipcode", txtzip.Text) da.SelectCommand.Parameters.AddWithValue("@mobile_no", txtmob.Text) da.SelectCommand.Parameters.AddWithValue("@contact_no", Trim(txtcontact1.Text)) da.SelectCommand.ExecuteNonQuery() 'ds = New Data.DataSet 'da.Fill(ds, "student_insert") Response.Redirect("Login.aspx?msg=register") End If
End Sub
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
End SubEnd Class SongsImports System.Data.SqlClientPartial Class Songs Inherits System.Web.UI.Page Dim conn As SqlConnection Dim comm As SqlCommand Public ds As Data.DataSet Public ds1 As Data.DataSet Public da As SqlDataAdapter Public cs As String = System.Configuration.ConfigurationSettings.AppSettings.Item("connection_string") Public username As String Public song_id As Integer Public user_id As Integer Public crating As Integer Public trating As Integer Public gr As GridViewRow Public usercount As Integer Public rating As Integer Public line_no As String Public songs As String = "" Public collection(9000) As String Public Xt_tem As Double
Public Xt_pic As Double Public Xt_oct As Double Public Xt_root As Double Public Xt_mod As Double Public Yt_tem As Double Public Yt_pic As Double Public Yt_oct As Double Public Yt_root As Double Public Yt_mod As Double Public Di_tem As Double Public Di_pic As Double Public Di_oct As Double Public Di_root As Double Public Di_mod As Double Public min_tem As Double Public min_pic As Double Public min_oct As Double Public min_root As Double Public min_mod As Double Public max_tem As Double Public max_pic As Double Public max_oct As Double Public max_root As Double Public max_mod As Double Public X_offsprings_tem As Double Public X_offsprings_pic As Double Public X_offsprings_oct As Double Public X_offsprings_root As Double Public X_offsprings_mod As Double Public Y_offsprings_tem As Double Public Y_offsprings_pic As Double Public Y_offsprings_oct As Double Public Y_offsprings_root As Double Public Y_offsprings_mod As Double Public tem_dist As Double Public pic_dist As Double Public oct_dist As Double Public root_dist As Double Public mod_dist As Double Public tempo As Double Public pitch As Double Public octav As Double Public root As Double Public mode As Double Public tem_diff As Double Public pic_diff As Double Public oct_diff As Double Public root_diff As Double Public mod_diff As Double Public total_diff As Double
Public alpha As Double = 0.5 Public RandomNumGen As New System.Random
Protected Sub Rating1_Changed(ByVal sender As Object, ByVal e As AjaxControlToolkit.RatingEventArgs) Handles Rating1.Changed
Dim myrating As AjaxControlToolkit.Rating = DirectCast(sender, AjaxControlToolkit.Rating) Dim row As GridViewRow = DirectCast(myrating.NamingContainer, GridViewRow)
If row IsNot Nothing Then Dim x As Integer = row.DataItemIndex Dim p As Integer = GridView1.PageIndex * 10 x = x - p song_id = GridView1.DataKeys(x).Value myrating = DirectCast(sender, AjaxControlToolkit.Rating) crating = Integer.Parse(e.Value) End If conn = New SqlConnection(cs) conn.Open() da = New SqlDataAdapter da.SelectCommand = New SqlCommand da.SelectCommand.Connection = conn da.SelectCommand.CommandText = "insert into rating_temp (song_id,rating) Values(" & song_id & "," & crating & ")" da.SelectCommand.CommandType = Data.CommandType.Text da.SelectCommand.ExecuteNonQuery()
End Sub
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load If CheckBox1.Checked Then ddlcategory.Enabled = True Else ddlcategory.Enabled = False End If If Me.IsPostBack = False Then conn = New SqlConnection(cs) conn.Open() da = New SqlDataAdapter da.SelectCommand = New SqlCommand da.SelectCommand.Connection = conn da.SelectCommand.CommandText = "Truncate Table rating_temp" da.SelectCommand.CommandType = Data.CommandType.Text da.SelectCommand.ExecuteNonQuery() End If GridView1.DataBind() End Sub
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click Dim i As Integer = 0 collection(i) = "s" conn = New SqlConnection(cs) conn.Open() da = New SqlDataAdapter da.SelectCommand = New SqlCommand da.SelectCommand.Connection = conn da.SelectCommand.CommandText = "select distinct song_id from rating_temp" da.SelectCommand.CommandType = Data.CommandType.Text ds = New Data.DataSet da.Fill(ds, "rating_temp") For Each row As Data.DataRow In ds.Tables("rating_temp").Rows songs = songs + row.Item("song_id").ToString + "," Next Dim len As Integer = songs.Length songs = songs.Remove(len - 1) conn = New SqlConnection(cs) conn.Open() da = New SqlDataAdapter da.SelectCommand = New SqlCommand da.SelectCommand.Connection = conn da.SelectCommand.CommandText = "Select distinct song_id,rating,id from rating_temp where song_id in (" + songs + ") order by id desc" da.SelectCommand.CommandType = Data.CommandType.Text ds = New Data.DataSet da.Fill(ds, "rating_temp1") For Each row As Data.DataRow In ds.Tables("rating_temp1").Rows 'Dim t As Int16 = ds.Tables("rating_temp1").Rows.Count song_id = ds.Tables("rating_temp1").Rows(i).Item("song_id") crating = ds.Tables("rating_temp1").Rows(i).Item("rating") If collection.Contains(song_id.ToString) Then Else user_id = CType(Me.Session("uid"), Integer) conn = New SqlConnection(cs) conn.Open() If crating >= 3 Then da = New SqlDataAdapter da.SelectCommand = New SqlCommand da.SelectCommand.Connection = conn da.SelectCommand.CommandText = "insert into favorites (song_id,user_id) Values(" & song_id & "," & user_id & ")" da.SelectCommand.CommandType = Data.CommandType.Text da.SelectCommand.ExecuteNonQuery() End If conn = New SqlConnection(cs) conn.Open()
da = New SqlDataAdapter da.SelectCommand = New SqlCommand da.SelectCommand.Connection = conn da.SelectCommand.CommandText = "Select trating,UserCount from Songs where song_id = " & song_id & "" da.SelectCommand.CommandType = Data.CommandType.Text ds1 = New Data.DataSet da.Fill(ds1, "Songs") trating = ds1.Tables("Songs").Rows(0).Item("trating") usercount = ds1.Tables("Songs").Rows(0).Item("UserCount") usercount = usercount + 1 rating = (crating + trating) \ usercount trating = (crating + trating) conn = New SqlConnection(cs) conn.Open() da = New SqlDataAdapter da.SelectCommand = New SqlCommand da.SelectCommand.Connection = conn da.SelectCommand.CommandText = "update Songs set Rating = " & rating & ", UserCount = " & usercount & ", trating = " & trating & ", crating = " & crating & " where song_id= " & song_id & "" da.SelectCommand.CommandType = Data.CommandType.Text da.SelectCommand.ExecuteNonQuery() collection(i) = song_id.ToString End If i = i + 1 Next'------------------------------------------------------------------------------------------------------------------------------------------------------------Crossover Begins Here------------------------------------------------------------------------------------------------------------------------------------------------------------------- conn = New SqlConnection(cs) conn.Open() da = New SqlDataAdapter da.SelectCommand = New SqlCommand da.SelectCommand.Connection = conn 'OLD_Query 31_5_12 'da.SelectCommand.CommandText = "Select Top 2(crating),song_id,Title,Tempo,Pitch,Octav,Root,Mode from Songs order by crating desc" 'Query for selecting 2 highest rating songs
'New_Query da.SelectCommand.CommandText = "Select crating,song_id,Title,Tempo,Pitch,Octav,Root,Mode from Songs where song_id in (select top 2(song_id) from rating_temp ORDER BY rating desc ) " 'Query for selecting 2 highest rating songs da.SelectCommand.CommandType = Data.CommandType.Text ds = New Data.DataSet da.Fill(ds, "songs1") Dim j As Integer = 0
For Each row As Data.DataRow In ds.Tables("songs1").Rows If j = 0 Then Xt_tem = ds.Tables("songs1").Rows(0).Item("Tempo") 'X-Tempo Xt_pic = ds.Tables("songs1").Rows(0).Item("Pitch") 'X-Pitch Xt_oct = ds.Tables("songs1").Rows(0).Item("Octav") 'X-Octav Xt_root = ds.Tables("songs1").Rows(0).Item("Root") 'X-Root Xt_mod = ds.Tables("songs1").Rows(0).Item("Mode") 'X-Mode j = 1 ElseIf j = 1 Then Yt_tem = ds.Tables("songs1").Rows(1).Item("Tempo") 'Y-Tempo Yt_pic = ds.Tables("songs1").Rows(1).Item("Pitch") 'Y-Pitch Yt_oct = ds.Tables("songs1").Rows(1).Item("Octav") 'Y-Octav Yt_root = ds.Tables("songs1").Rows(1).Item("Root") 'Y-Root Yt_mod = ds.Tables("songs1").Rows(1).Item("Mode") 'Y-Mode End If Next '---------------------Distance Calculation Between Xt and Yt------------------------------------------- Di_tem = Math.Abs(Xt_tem - Yt_tem) 'Distance Between Xt_tem and Yt_tem Di_pic = Math.Abs(Xt_pic - Yt_pic) 'Distance Between Xt_pic and Yt_pic Di_oct = Math.Abs(Xt_oct - Yt_oct) 'Distance Between Xt_oct and Yt_oct Di_root = Math.Abs(Xt_root - Yt_root) 'Distance Between Xt_root and Yt_root Di_mod = Math.Abs(Xt_mod - Yt_mod) 'Distance Between Xt_mod and Yt_mod '------------------------------------------------------------------------------------------------------- '----------------------Calculating Intervals------------------------------------------------------------ min_tem = (Math.Min(Xt_tem, Yt_tem) - (alpha * Di_tem)) 'interval Between Xt_tem and Yt_tem (Min) min_pic = (Math.Min(Xt_pic, Yt_pic) - (alpha * Di_pic)) 'interval Between Xt_pic and Yt_pic (Min) min_oct = (Math.Min(Xt_oct, Yt_oct) - (alpha * Di_oct)) 'interval Between Between Xt_oct and Yt_oct (Min) min_root = (Math.Min(Xt_root, Yt_root) - (alpha * Di_root)) 'interval Between Xt_root and Yt_root (Min) min_mod = (Math.Min(Xt_mod, Yt_mod) - (alpha * Di_mod)) 'interval Between Xt_mod and Yt_mod (Min) max_tem = (Math.Max(Xt_tem, Yt_tem) - (alpha * Di_tem)) 'interval Between Xt_tem and Yt_tem (Max) max_pic = (Math.Max(Xt_oct, Yt_oct) - (alpha * Di_oct)) 'interval Between Xt_pic and Yt_pic (Max) max_oct = (Math.Max(Xt_tem, Yt_tem) - (alpha * Di_tem)) 'interval Between Xt_oct and Yt_oct (Max) max_root = (Math.Max(Xt_root, Yt_root) - (alpha * Di_root)) 'interval Between Xt_root and Yt_root (Max) max_mod = (Math.Max(Xt_mod, Yt_mod) - (alpha * Di_mod)) 'interval Between Xt_mod and Yt_mod (Max) '------------------------------------------------------------------------------------------------------- '--------------------Generating Offsprings of each chromosome Randomly---------------------------------- Randomize()
X_offsprings_tem = CDbl((max_tem * Rnd()) + min_tem) 'X offsprings of Tempo X_offsprings_pic = CDbl((max_pic * Rnd()) + min_pic) 'X offsprings of Pitch X_offsprings_oct = CDbl((max_oct * Rnd()) + min_oct) 'X offsprings of Octav X_offsprings_root = CDbl((max_root * Rnd()) + min_root) 'X offsprings of Root X_offsprings_mod = CDbl((max_mod * Rnd()) + min_mod) 'X offsprings of Mode Y_offsprings_tem = CDbl((max_tem * Rnd()) + min_tem) 'Y offsprings of Tempo Y_offsprings_pic = CDbl((max_pic * Rnd()) + min_pic) 'Y offsprings of Picth Y_offsprings_oct = CDbl((max_oct * Rnd()) + min_oct) 'Y offsprings of Octav Y_offsprings_root = CDbl((max_root * Rnd()) + min_root) 'Y offsprings of Root Y_offsprings_mod = CDbl((max_mod * Rnd()) + min_mod) 'Y offsprings of Mode
'------------------------------------------------------------------------------------------------------------------------------------------------------------Crossover Ends Here--------------------------------------------------------------------------------------------------------------------------------------------------------------
'---------------------------------Euclidean Distance Formula----------------------- tem_dist = Math.Sqrt((X_offsprings_tem - Y_offsprings_tem) ^ 2) pic_dist = Math.Sqrt((X_offsprings_pic - Y_offsprings_pic) ^ 2) oct_dist = Math.Sqrt((X_offsprings_oct - Y_offsprings_oct) ^ 2) root_dist = Math.Sqrt((X_offsprings_root - Y_offsprings_root) ^ 2) mod_dist = Math.Sqrt((X_offsprings_mod - Y_offsprings_mod) ^ 2)
conn = New SqlConnection(cs) conn.Open() da = New SqlDataAdapter da.SelectCommand = New SqlCommand da.SelectCommand.Connection = conn If CheckBox1.Checked Then da.SelectCommand.CommandText = "Select song_id,category,Tempo,Pitch,Octav,Root,Mode from Songs where category='" & ddlcategory.SelectedValue & "'" Else da.SelectCommand.CommandText = "Select song_id,category,Tempo,Pitch,Octav,Root,Mode from Songs" End If da.SelectCommand.CommandType = Data.CommandType.Text ds = New Data.DataSet da.Fill(ds, "songs_master") For Each row As Data.DataRow In ds.Tables("songs_master").Rows song_id = row.Item("song_id") tempo = row.Item("Tempo") pitch = row.Item("Pitch") octav = row.Item("Octav") root = row.Item("Root") mode = row.Item("Mode")
tem_diff = Math.Abs(tem_dist - tempo) pic_diff = Math.Abs(pic_dist - pitch) oct_diff = Math.Abs(oct_dist - octav) root_diff = Math.Abs(root_dist - root) mod_diff = Math.Abs(mod_dist - mode)
total_diff = tem_diff + pic_diff + oct_diff + root_diff + mod_diff
conn = New SqlConnection(cs) conn.Open() da = New SqlDataAdapter da.SelectCommand = New SqlCommand da.SelectCommand.Connection = conn da.SelectCommand.CommandText = "update Songs set diff = " & total_diff & " where song_id = " & song_id & "" da.SelectCommand.CommandType = Data.CommandType.Text da.SelectCommand.ExecuteNonQuery() Next
SqlDataSource1.SelectCommand = "" SqlDataSource1.SelectCommand = "SELECT [song_id], [Artist], [Title], [Category], [Tempo], [Pitch], [Octav], [Root], [Mode], [UserCount], [Rating], [song_path],[diff] FROM [Songs] order by [diff] " SqlDataSource1.DataBind() GridView1.DataBind() If CheckBox1.Checked Then Response.Redirect("recommend.aspx?cat=" & ddlcategory.SelectedValue & "&flag=" & CheckBox1.Checked) Else Response.Redirect("recommend.aspx?cat=" & ddlcategory.SelectedValue & "&flag=" & CheckBox1.Checked) End If End Sub
Protected Sub GridView1_RowCreated(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridView1.RowCreated If (e.Row.RowType = DataControlRowType.DataRow) Then
e.Row.Attributes.Add("onmouseover", "this.className='OnOver'") e.Row.Attributes.Add("onmouseout", "this.className='OnOut'")
End If End SubEnd ClassWeb.config<?xml version="1.0"?><!-- Note: As an alternative to hand editing this file you can use the web admin tool to configure settings for your application. Use the Website->Asp.Net Configuration option in Visual Studio.
A full list of settings and comments can be found in machine.config.comments usually located in \Windows\Microsoft.Net\Framework\v2.x\Config --><configuration>
<configSections><sectionGroup name="system.web.extensions"
type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<sectionGroup name="scripting" type="System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<section name="scriptResourceHandler" type="System.Web.Configuration.ScriptingScriptResourceHandlerSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
<sectionGroup name="webServices" type="System.Web.Configuration.ScriptingWebServicesSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<section name="jsonSerialization" type="System.Web.Configuration.ScriptingJsonSerializationSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="Everywhere"/>
<section name="profileService" type="System.Web.Configuration.ScriptingProfileServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
<section name="authenticationService" type="System.Web.Configuration.ScriptingAuthenticationServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
<section name="roleService" type="System.Web.Configuration.ScriptingRoleServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
</sectionGroup></sectionGroup>
</sectionGroup></configSections><appSettings>
<add key="connection_string" value="Initial Catalog=genetic1_db;Data Source=Justin-PC;Integrated Security=SSPI;pooling=false;Trusted_Connection=true"/>
</appSettings><connectionStrings>
<add name="genetic_dbConnectionString" connectionString="Data Source=Justin-PC;Initial Catalog=genetic1_db;Integrated Security=True" providerName="System.Data.SqlClient"/>
</connectionStrings><system.web>
<httpRuntime executionTimeout="240" maxRequestLength="20480"/><!--
Set compilation debug="true" to insert debugging symbols into the compiled page. Because this affects performance, set this value to true only during development.
Visual Basic options: Set strict="true" to disallow all data type conversions where data loss can occur. Set explicit="true" to force declaration of all variables. -->
<compilation debug="true" strict="false" explicit="true"><assemblies>
<add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Web.Extensions.Design, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add assembly="System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
<add assembly="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/></assemblies>
</compilation><pages>
<namespaces><clear/><add namespace="System"/><add namespace="System.Collections"/><add namespace="System.Collections.Generic"/><add namespace="System.Collections.Specialized"/><add namespace="System.Configuration"/><add namespace="System.Text"/><add namespace="System.Text.RegularExpressions"/><add namespace="System.Linq"/><add namespace="System.Xml.Linq"/><add namespace="System.Web"/><add namespace="System.Web.Caching"/><add namespace="System.Web.SessionState"/><add namespace="System.Web.Security"/>
<add namespace="System.Web.Profile"/><add namespace="System.Web.UI"/><add namespace="System.Web.UI.WebControls"/><add namespace="System.Web.UI.WebControls.WebParts"/><add namespace="System.Web.UI.HtmlControls"/>
</namespaces><controls>
<add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add tagPrefix="asp" namespace="System.Web.UI.WebControls" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add tagPrefix="ajaxtoolkit" namespace="AjaxControlToolkit" assembly="AjaxControlToolKit"/>
</controls></pages><!--
The <authentication> section enables configuration of the security authentication mode used by ASP.NET to identify an incoming user. -->
<authentication mode="Windows"/><!--
The <customErrors> section enables configuration of what to do if/when an unhandled error occurs during the execution of a request. Specifically, it enables developers to configure html error pages to be displayed in place of a error stack trace.
<customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm"> <error statusCode="403" redirect="NoAccess.htm" /> <error statusCode="404" redirect="FileNotFound.htm" /> </customErrors> -->
<httpHandlers><remove verb="*" path="*.asmx"/><add verb="*" path="*.asmx" validate="false"
type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false"/>
</httpHandlers><httpModules>
<add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
</httpModules></system.web><system.codedom>
<compilers><compiler language="c#;cs;csharp" extension=".cs" warningLevel="4"
type="Microsoft.CSharp.CSharpCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<providerOption name="CompilerVersion" value="v3.5"/><providerOption name="WarnAsError" value="false"/>
</compiler><compiler language="vb;vbs;visualbasic;vbscript" extension=".vb"
warningLevel="4" type="Microsoft.VisualBasic.VBCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<providerOption name="CompilerVersion" value="v3.5"/><providerOption name="OptionInfer" value="true"/><providerOption name="WarnAsError" value="false"/>
</compiler></compilers>
</system.codedom><!--
The system.webServer section is required for running ASP.NET AJAX under Internet Information Services 7.0. It is not necessary for previous version of IIS. -->
<system.webServer><validation validateIntegratedModeConfiguration="false"/><modules>
<remove name="ScriptModule"/><add name="ScriptModule" preCondition="managedHandler"
type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
</modules><handlers>
<remove name="WebServiceHandlerFactory-Integrated"/><remove name="ScriptHandlerFactory"/><remove name="ScriptHandlerFactoryAppServices"/><remove name="ScriptResource"/><add name="ScriptHandlerFactory" verb="*" path="*.asmx"
preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add name="ScriptResource" preCondition="integratedMode" verb="GET,HEAD" path="ScriptResource.axd"
type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
</handlers></system.webServer><runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1" appliesTo="v2.0.50727"><dependentAssembly>
<assemblyIdentity name="System.Web.Extensions" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0"/>
</dependentAssembly><dependentAssembly>
<assemblyIdentity name="System.Web.Extensions.Design" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0"/>
</dependentAssembly></assemblyBinding></runtime>
</configuration>
References
Books
Journal Papers
[2] Christos K. Datsikas, George S. Tombras,“A Framework for dynamic car and taxipoolswith the use of Positioning Systems”, 2009.
[3] Chi-Chung Tao, Dynamic Taxi-Sharing Service Using Intelligent Transportation System Technologies, Dept. of Transp. Manage., Tamkang Univ., Taipei; Wireless Communications, Networking and Mobile Computing, 2007/ WiCom 2007.
[4]HC Chiu, WR Lee, YP Chao, "The development of 3G in Japan and Taiwan" - International Journal of Mobile Communications, 2006
[5] Petros Lalos, G. S. Tombras, “Introducing JOUNBO - A new advanced online Journal and Newspaper Browser”, Journal of Multimedia, Academy Publisher, 4/2008.
Websites
[13] Clam (2011). C++ library for audio and music.URL: http://clam-project.org. [14] Cohen WW, Fan W (2000). Web-collaborative filtering: recommending music by crawling the web. Comput. Networks, 33(1): 685-698. URL: http://www9.org/w9cdrom/266/266.html
Top Related