Académique Documents
Professionnel Documents
Culture Documents
A Mini Project Report Submitted to the Faculty of Computer Science and Engineering JAYAPRAKASH NARAYAN COLLEGE OF ENGINEERING (Affiliated to J.N.T.U., Accredited by N.B.A.) In partial fulfillment of the requirements For the award of degree of BACHELOR OF TECHNOLOGY IN COMPUTER SCIENCE AND ENGINEERING By E.ANUSHA G.MADHURI D.KIRAN KUMAR A.CHANDRAKANTH (08361A0504) (08361A0533) (08361A0532) (08361A0519)
Under the Esteemed Guidance of Mr. M. VENKATA KRISHNA REDDY Assoc. Professor Department of Computer Science and Engineering JAYAPRAKASH NARAYAN COLLEGE OF ENGINEERING DHARMAPUR, MAHABOOBNAGAR 509001 (A.P.) 2011-2012
1
DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING JAYAPRAKASH NARAYAN COLLEGE OF ENGINEERING DHARMAPUR, MAHABOOBNAGAR 509001 (A.P.) (Affiliated to J.N.T.U., Accredited by N.B.A.)
CERTIFICATE
This is to Certify that the Mini Project report on MUSIC WORLD is a bonafied work done by E.ANUSHA (08361A0504), G.MADHURI (08361A0533), D.KIRAN KUMAR(08361A0532), A.CHANDRA
KANTH (08361A0519) in partial fulfilment of the requirement of the award for the degree of Bachelors of technology in Computer Science and Engineering J.N.T.U., Hyderabad during the year 2011-2012.
Internal Guide
H.O.D.
External Examiner :
2
ACKNOWLEDGEMENT
Success is to be measured not so much by the position that one has reached in life, but as by the obstacles which he had to overcome while trying to succeed.
In many ways it is more difficult to acknowledge ones but I express my deep sense of gratitude to each and every one whose support and cooperation helped me to complete this project successfully and without which the completion of this project would ever have been easier. I hereby take the pleasure of thanking my project guide. I have truly benefited a lot from the constructive criticism and suggestions given to me by MR. M. VENKATA KRISHNA REDDY. Here are some special thanks to MRS. D. JAMUNA.V.KUMAR, Professor & Head of the Department, whose co-operation made this work really special. We are grateful to the Department of Computer Science and Engineering for providing us with the excellent lab and library facilities. I also wish to thanks my parents who always stand by me in my all decisions and without their help it was not possible for me to reach at this place.
ABSTRACT
Music world is a portal system that aims for the flexibility and growing needs of music lovers. It facilitates an unregistered user to access the basic links of the database and listen to collections, along with facilitating registered users with wide range of functionalities. This system deals with users, who access the database on one end and an administrator, who maintains the database on other end. The existing system is accessible only to the registered users, where few systems charge the registration, and some even charge for accessing the collections. Present portals provide low standards of security for payment transactions which is a major drawback which may lead to misuse of users details. The proposed system provides access to all the users by granting different privileges to registered and unregistered users separately. All the users can listen to collections uncharged whereas only the registered user is provided with wide functionalities of voting, rating, and interaction with the administrator. It facilitates the registered users to maintain their personalized playlist in their account and can buy the collections through shopping cart with high defined standards of security to overcome the feasibilities of the existing system.
CONTENTS
Page No
III IV 1 1 3 4 4 5 5 5 6 6 10 11 25 31 31 35 36 37 38 39 41 41 43 44 50 52 52 56
2. TECHNOLOGIES USED
2.1 HTML 2.2 Java Script 2.3 MySQL 2.4 Java Server Pages (JSP)
3. SYSTEM ANALYSIS
3.1 Introduction 3.2 Problem Definition 3.3 Existing System 3.4 Proposed System 3.5 Requirement Analysis/Specification 3.6 Feasibility Studies
4. SYSTEM DESIGN
4.1 Module Description 4.2 Architecture Design
4.2.1 UML Diagrams 4.2.2 Data Flow Diagrams(DFDs)
5. IMPLEMENTATION
6. TESTING
6.1 Testing Objectives 6.2 White Box Testing 6.3 Black Box Testing 6.4 Unit Testing 6.5 Integration Testing 6.6 Validation Testing 6.7 System Testing 6.8 Test Cases
58 58 59 59 59 60 60 60 61 62 91 92
INTRODUCTION
1. INTRODUCTION
Facilities provided to the Administrator: Ability to provide request Song or Movies. Ability to delete user. Ability to reply to message sent by a particular user. Ability to see Sales Report According to Daily, Weekly and Monthly Sales. Ability to view Feedbacks given by Registered User. Ability to Add New Released Movies or Albums. Ability to do Different Operation on Database of Music Store.
User can view web pages and just look and hear the songs provided. After that if he is interested then he can register with Music Store and can get username and password of his wish. This process happens at time of registration of user. The registration page contains all necessary details for user to register like personal information, Credit Card information, username and password. After registration user will have his own username and password with which he logins in Music Store. Registered user can keep a request to administrator regarding albums or Movies which he wishes to download or hear songs from that particular movie. Users have search option to search movies by giving name of the movie. User can purchase movies, albums and can add them in shopping cart. The total amount can be paid through Credit Card. The amount will be deducted when customer gets his movies or albums from Music Store. Administrator has the responsible of sending the user purchased movies or album. Administrator has all rights to delete users if they found guilty. Administrator has all the power of controlling the Music Store Portal.
Administrator can update/delete/remove the movies or albums according to circumstances. Administrator has the only opportunity to view sales report based on daily, weekly and monthly.
downloading it. In present Music Portal doesnt have search option for searching song which user wants. Music Store provides users a search option where user can search songs by typing song name in text box provided. Normal user wants to vote for an album. Music Store also provides this facility for users. For registered users we are providing rating facility where user can give rating after hearing the song. After purchasing albums and Movies user can still go for shopping. All purchased Items are stored in shopping cart where it keeps on increasing or decreasing based on choice. All payments are made through credit card where credit card details are taken at the time of registration itself.
12
TECHNOLOGIES USED
13
2. TECHNOLOGIES USED
2.1 HTML
Html is a language which is used to create web pages with html marking up a page to indicate its format, telling the web browser where
you want a new line to begin or how you want text or images aligned and more are possible. We used the following tags in our project.
TABLE:
Tables are so popular with web page authors is that they let you arrange the elements of a web page in such a way that the browser wont rearrange them web page authors frequently use tables to structure web pages. <TR>: <TR> is used to create a row in a table encloses <TH> and <TD> elements. <TR> contain many attributes. Some of them are, ALIGN: specifies the horizontal alignment of the text in the table row. BGCOLOR: Specifies the background color for the row. BORDERCOLOR: Sets the external border color for the row. VALIGN: Sets the vertical alignment of the data in this row.
14
<TH>: <TH> is used to create table heading. ALIGN: Sets the horizontal alignment of the content in the table cell. Sets LEFT, RIGHT, CENTER. BACKGROUND: Species the back ground image for the table cell. BGCOLOR: Specifies the background color of the table cell VALIGN: Sets the vertical alignment of the data. Sets to TOP, MIDDLE, BOTTOM or BASELINE. WIDTH: Specifies the width of the cell. Set to a pixel width or a percentage of the display area.
<TD>: <TD> is used to create table data that appears in the cells of a table. ALIGN: Species the horizontal alignment of content in the table cell. Sets to LEFT, CENTER, RIGHT. BGCOLOR: Specifies the background image for the table cell. BGCOLOR: sets the background color of the table cells. WIDTH: Species the width of the cell.
FRAMES:
Frames are used for either run off the page or display only small slices of what are supposed to be shown and to configure the frame we can
15
use <FRAMESET>.
working with <FRAMESET>. <FRAMESET> element actually takes the place of the <BODY> element in a document. Specifying actual pixel dimensions for frames . <FRAME> Elements are used to create actual frames. From the frameset point of view dividing the browser into tow vertical frames means creating two columns using the <FRAMESET> elements COLS attribute. The syntax for vertical fragmentation is, <FRAMESET COLS =50%, 50%> </FRAMESET> Similarly if we replace COLS with ROWS then we get horizontal fragmentation. The syntax for horizontal fragmentation is, <FRAMESET ROWS=50%, 50%> </FRAMESET>
FORM:
The purpose of FORM is to create an HTML form; used to enclose HTML controls, like buttons and text fields. ATTRIBUTES: ACTION: Gives the URL that will handle the form data. NAME: Gives the name to the form so you can reference it in code set to an alphanumeric string.
16
METHOD: method or protocol is used to sending data to the target action URL. The GET method is the default, it is used to send all form name/value pair information in an URL. Using the POST method, the content of the form are encoded as with the GET method, but are sent in environment variables.
CONTROLS IN HTML:
<INPUT TYPE =BUTTON>: Creates an html button in a form. ATTRIBUTES: NAME: gives the element a name. Set to alphanumeric characters. SIZE: sets the size. VALUE: sets the caption of the element. <INPUT TYPE = PASSWORD>: Creates a password text field which makes typed input. ATTRIBUTES: NAME: gives the element a name, set to alphanumeric characters. VALUE: sets the default content of the element.
<INPUT TYPE=RADIO>: Creates a radio button in the form. ATTRIBUTE: NAME: Gives the element a name. Set to alphanumeric character.
17
<INPUT TYPE=SUBMIT>: Creates a submit button that the user can click to send data in the form back to the web server. ATTRIBUTES: NAME: Gives the element a name. Set to alphanumeric characters. VALUE: Gives this button another label besides the default, Submit Query. Set to alphanumeric characters. <INPUT TYPE=TEXT>: Creates a text field that the user can enter or edit text in. ATTRIBUTES: NAME: Gives the element a name. Set to alphanumeric characters. VALUE: Holds the initial text in the text field. Set to alphanumeric characters.
18
JAVASCRIPT METHODS: Writeln: Document.writeln() is a method, which is used to write some text to the current web page. onClick: Occurs when an element is clicked. onLoad: Occurs when the page loads. onMouseDown: Occurs when a mouse button goes down. onMouseMove: Occurs when the mouse moves. onUnload: Occurs when a page is unloaded.
2.3 My SQL
The database has become an integral part of almost every human's life. Without it, many things we do would become very tedious, perhaps impossible tasks. Banks, universities, and libraries are three examples of organizations that depend heavily on some sort of database system. On the Internet, search engines, online shopping, and even the website naming convention (http://www...) would be impossible without the use of a database. A database that is implemented and interfaced on a computer is often termed a database server.
19
One of the fastest SQL (Structured Query Language) database servers currently on the market is the MySQL server. MySQL, available for download, offers the database programmer with an array of options and capabilities rarely seen in other database servers. What's more, MySQL is free of charge for those wishing to use it for private and commercial use. Those wishing to develop applications specifically using MySQL should consult MySQL's licensing section, as there is a charge for licensing the product. These capabilities range across a number of topics, including the following:
Ability to handle an unlimited number of simultaneous users. Capacity to handle 50,000,000+ records. Very fast command execution, perhaps the fastest to be found on the market.
A database is really nothing more than a hierarchy of increasingly complex data structures. In MySQL, the acknowledged structure for holding blocks (or records) of information is called the table. These records, in turn, are made up of the smallest object that can be manipulated by the user, known as the data type. Together, one or more of these data types form a record. A table holds the collection of records that make up part of the database. We can consider the hierarchy of a database to be that of the following: Database < Table < Record < Datatype Datatypes come in several forms and sizes, allowing the programmer to create tables suited for the scope of the project. The decisions made in
20
choosing proper datatypes greatly influence the performance of a database, so it is wise to have a detailed understanding of these concepts. MySQL Datatypes: MySQL is capable of many of the datatypes that even the novice programmer has probably already been exposed to. Some of the more commonly used include: CHAR (M): CHAR's are used to represent fixed length strings. A CHAR string can range from 1-255 characters. In later table creation, an example CHAR datatype would be declared as follows: Ex: car_model CHAR(10); VARCHAR (M): VARCHAR is a more flexible form of the CHAR data type. It also represents data of type String, yet stores this data in variable length format. Again, VARCHAR can hold 1-255 characters. VARCHAR is usually a wiser choice than CHAR, due to it's variable length format characteristic. Although, keep in mind that CHAR is much faster than VARCHAR, sometimes up to 50%. (A CHAR stores the whole length of the declared variable, regardless of the size of the data contained within, whereas a VARCHAR only stores the length of the data, thus reducing size of the database file.) Ex: car_model VARCHAR(10);
21
INT (M) [Unsigned]: The INT datatype stores integers ranging from -2147483648 to 2147483647. An optional "unsigned" can be denoted with the declaration, modifying the range to be 0 to 4294967295 Ex: light_years INT; Valid integer: '-24567'.
Ex: light_years INT unsigned; Valid integer: '3000000000'. Invalid integer: '-24567'. FLOAT [(M.D)]: A FLOAT represents small decimal numbers, used when a somewhat more precise representation of a number is required. Ex: rainfall FLOAT (4,2); This could be used to represent rainfall average in centimeters per year, which could be a decimal value. More specifically, FLOAT (4,2) states the fact that rainfall can hold up to four characters and two decimal places. Thus, 42.35 is valid, accurately represented. 324.45 is invalid, rounded to 324.5.2.2 is valid, accurately represented. 34.542 is invalid, rounded to 34.54.
22
Note: Due to the fact that FLOAT is rounded, those wishing to represent money values would find it wise to use DECIMAL, a datatype found within MySQL that does not round values. Consult the documentation for a complete explanation. DATE: Stores date related information. The default format is 'YYYY-MMDD', and ranges from '0000-00-00' to '9999-12-31'. MySQL provides a powerful set of date formatting and manipulation commands, too numerous to be covered within this article. However, one can find these functions covered in detail within the MySQL documentation. Ex: the_date DATE; TEXT / BLOB: The text and blob datatypes are used when a string of 255 - 65535 characters is required to be stored. This is useful when one would need to store an article such as the one you are reading. However, there is no end space truncation as with VARCHAR AND CHAR. The only difference between BLOB and TEXT is that TEXT is compared case insensitively, while BLOB is compared case sensitively. SET: A datatype of type string that allows one to choose from a designated set of values, be it one value or several values. One can designate up to 64 values.
23
Ex: transport SET ("truck", "wagon") NOT NULL; From the above declaration, the following values can be held by transport: "truck" "wagon" "truck,wagon" ENUM: A datatype of type string that has the same characteristics as the SET datatype, but only one set of allowed values may be chosen. Usually only takes up one byte of space, thus saving time and space within a table. Ex: transport ENUM ("truck", "wagon") NOT NULL; From the above declaration, the following values can be held by transport: "truck" "wagon" Records: Together, a group of declared datatypes form what is known as a record. A record can be as small as one data variable, or as many as deemed needed. One or more records form the structure of a table.
24
The Bigger Picture Tables: Before we can execute commands on the database, we must first create a table in which data can be stored. This is accomplished in the following manner, mysql> CREATE TABLE test ( > name VARCHAR (15), > email VARCHAR (25), > phone_number INT, > ID INT NOT NULL AUTO_INCREMENT, > PRIMARY KEY (ID)); Ensuing output: Query OK, 0 rows affected (0.10 sec) mysql> The first table in your database has now been created. Note: no two tables can have the same name. Note(2): Each dataspace is more often referred to as a column. Column Characteristics:
A name may not be made up of strictly numbers. A name may start with a number. A name may be up to 64 characters.
Other table options: The following options can be placed after any datatype, adding other characteristics and capabilities to them.
25
Primary Key: Used to differentiate one record from another. No two records can have the same primary key. This is obviously useful when it is imperative that no two records are mistaken to be the other.
Auto_Increment:
incremented one value (previous + 1) when an insertion is made into the record. The datatype is automatically incremented when 'NULL' is inserted into the column.
NOT NULL: Signifies that the column can never be assigned a NULL value.
Ex: soc_sec_number INT PRIMARY KEY; No two soc_sec_number records can hold the same value. ID_NUMBER INT AUTO_INCREMENT; Automatically increments in value, starting at '1', with every subsequent insertion. Table-Relevant Commands: We can execute a number of useful commands pertaining to the tables, such as the following: Show Tables: mysql> show tables; Result: This will list all tables currently existing within the database.
26
Show Columns: mysql> show columns from test; Result: This will return the columns and column information pertaining to the designated table. Take a minute to execute each one of the above commands after you have created the test table. They will prove very helpful as your database increases in size and complexity. You should now have a basic understanding of the creation of tables, one of the most important concepts of the MySQL server. You now know that tables are constructed using datatypes, which when grouped together form a record. In the next section, we will begin learning how to manipulate the database. A database can be manipulated in four possible ways: addition, deletion, modification, and search. These topics will all be briefly covered in the following two sections. However, before we begin, I would like to highlight the fact that SQL, like many computer languages, is somewhat particular about command syntax. The slightest error in placement of a parentheses, comma, or semicolon will almost surely end in error. As a result, take care to be attentive of command syntax.
27
DRIVER MANAGER AND DRIVER: The java.sql package defines an interface called Java.sql.Driver that makes to be implemented by all the JDBC drivers and a class called java.sql.DriverManager that acts as the interface to the database clients for performing tasks like connecting to external resource managers, and setting log streams. When a JDBC client requests the DriverManager to make a connection to an external resource manager, it delegates the task to an approate driver class implemented by the JDBC driver provided either by the resource manager vendor or a third party. JAVA.SQL.DRIVERMANAGER: The primary task of the class driver manager is to manage the various JDBC drivers register. It also provides methods for: Getting connections to the databases. Managing JDBC logs. Setting login timeout.
28
MANAGING DRIVERS: JDBC clients specify the JDBC URL when they request a
connection. The driver manager can find a driver that matches the request URL from the list of register drivers and delegate the connection request to that driver if it finds a match JDBC URLs normally take the following format: <protocol>:<sub-protocol>:<resource> The protocol is always jdbc and the sub-protocol and resource depend on the type of resource manager. The URL for postgreSQL is in the format: Jdbc: postgres ://< host> :< port>/<database> Here host is the host address on which post master is running and database is the name of the database to which the client wishes to connect. MANAGING CONNECTION: DriverManager class is responsible for managing connections to the databases: public static Connection getConnection (String url,Properties info) throws SQLException This method gets a connection to the database by the specified JDBC URL using the specified username and password. This method throws an instance of SQLException if a database access error occurs. CONNECTIONS: The interface java.sql.Connection defines the methods required for a persistent connection to the database. The JDBC driver vendor implements this interface. A database vendor-neutral client never uses the implementation class and will always use only the interface. This interface defines methods for the following tasks:
29
Statements, prepared statements, and callable statements are the different types of statements for issuing sql statements to the database by the JDBC clients. For getting and setting auto-commit mode. Getting meta information about the database. Committing and rolling back transactions. CREATING STATEMENTS: The interface java.sql.Connection defines a set of methods for creating database statements. Database statements are used for sending SQL statements to the database: Public Statement createStatement () throws SQLException This method is used for creating instances of the interface java.sql.Statement. This interface can be used for sending SQL statements to the database. The interface java.sql.Statement is normally used for sending SQL statements that dont take any arguments. This method throws an instance of SQLException if database access errors occur: Public Statement createStatement (int resType, int resConcurrency) throws SQLException JDBC RESULTSETS: A JDBC resultset represents a two dimentional array of data produced as a result of executing SQL SELECT statements against databases using JDBC statements. JDBC resultsets are represented by the interface java.sql.ResultSet. The JDBC vendor provider provides the implementation class for this interface.
30
SCROLLING RESULTSETS: public boolean next() throws SQLException public boolean previous() throws SQLException public boolean first() throws SQLException public boolean last() throws SQLException
31
Method name and Purpose public boolean getBoolean (int i) Gets the data in the specified column as a boolean. public boolean getBoolean (String col) public int getInt(int I) Gets the data in the specied columnas an int. public int getInt (String col) public String getString (int I) Gets the data in the specied column a string. Public String getString (String col) STATEMENT: The interface java.sql.Stament is normally used for sending SQL statements that do not have IN or OUT parameters. The JDBC driver vendor provides the implementation class for this interface. The common methods required by the different JDBC statements are defined in this interface. The methods defined by java.sql. Statement can be broadly categorized as follows: Executing SQL statements Querying results and resultsets Handling SQL batches Other miscellaneous methods
32
The interface java.sql.statements defines methods for executing different SQL statements like SELECT, UPDATE, INSERT, DELETE, and CREATE. Public Resultset execute Query (string sql) throws SQLException The following figure shows how the DriverManager, Driver, Connection, Statement, ResultSet classes are connected.
DriverManager
Driver
Connection Layer
Prepared Statement
Statement
Callable Statement
Result Set
Result Set
Result Set
33
The need for JSP: Servlets are indeed useful, and JSP by no means makes them obsolete. However, It is hard to write and maintain the HTML. You cannot use standard HTML tools. The HTML is inaccessible to non-Java developers. Benefits of JSP: JSP provides the following benefits over servlets alone: It is easier to write and maintain the HTML: In this no extra backslashes, no double quotes, and no lurking Java syntax. You can use standard Web-site development tools: We use Macromedia Dreamweaver for most of the JSP pages. Even HTML tools that know nothing about JSP can use because they simply ignore the JSP tags. You can divide up your development team: The Java programmers can work on the dynamic code. The Web developers can concatenate on the representation layer. On large projects, this division is very important. Depending on the size of your team and the complexity of your project, you can enforce a weaker or stronger separation between the static HTML and the dynamic content. Creating template text: A large percentage of our JSP document consists of static text known as template text. In almost all respects, this HTML looks just likes normal HTML follows all the same syntax rules, and simply passed through to that client by the servlet created to handle the page. Not only does the HTML look normal, it can be created by whatever tools you already are using for building Web pages.
34
There are two minor exceptions to the template text passed through rule. First, if you want to have <% 0r %> in the out port, you need to put <\% or %\> in the template text. Second, if you want a common to appear in the JSP page but not in the resultant document, <%-- JSP Comment -- %> HTML comments of the form: <!HTML Comment --> are passed through to the client normally. Types of JSP scripting elements: JSP scripting elements allow you to insert Java code into the servlet that will be generated from the JSP page. There are three forms: 1. Expressions of the form <%=Java Expression %>, which are evaluated and inserted into the servlets output. 2. Scriptlets of the form <%Java code %>, which are inserted into the servlets_jspService method (called by service). 3. Declarations of the form<%! Field/Method Declaration %>, which are inserted into the body of the servlet class, outside any existing methods. Using JSP expressions: A JSP element is used to insert values directly into the output. It has the following form: <%= Java Expression %> The expression is evaluated, converted to a string, and inserted in the page. This evaluation is performed at runtime (when the page is requested) and thus has full access to the information about the request. For example, the following shows the date/time that the page was requested. Current time: <%=new java.util.Date () %>
35
Predefined variables: To simplify expressions we can use a number of predefined variables (or implicit objects). The specialty of these variables is that, the system simple tells what names it will use for the local variables in _jspService.The most important ones of these are: request, the HttpServletRequest. response, the HttpServletResponse. session, the HttpSession associated with the request out, the writer used to send output to clients. application, the ServletContext. This is a data structure shared by all servlets and JSP pages in the web application and is good for storing shared data. Here is an example:Your hostname: <%= request.getRemoteHost Comparing Servlets to JSP pages: JSP works best when the structure of the HTML page is fixed but the values at various places need to be computed dynamically. If the structure of the page is dynamic, JSP is less beneficial. Some times servlets are better in such a case. If the page consists of binary data or has little static content, servlets are clearly superior. Sometimes the answer is neither servlets nor JSP alone, but rather a combination of both. Writing Scriplets: If you want to do something more complex than output the value of a simple expression .JSP scriptlets let you insert arbitrary code into the servlets , jspService method. Scriptlets have the following form: Java code %> <%
36
Scriptlets have access to the same automatically defined variables as do expressions (request, response, session, out , etc ) .So for example you want to explicitly send output of the resultant page , you could use the out variable , as in the following example: <% String queryData = request.getQueryString (); out.println (Attached GET data: + queryData); %> Scriplet Example: As an example of code that is too complex for a JSP expression alone, a JSP page that uses the bgColor request parameter to set the background color of the page .Simply using <BODY BGCOLOR=<%= request.getParameter (bgcolor) %> > would violate the cardinal rule of reading form data. Using declarations: A JSP declaration lets you define methods or fields that get inserted into the main body of the servlet class .A declaration has the following form: <%! Field or Method Definition %> Since declarations do not generate output, they are normally used in conjunction with JSP expressions or scriptlets. In principle, JSP declarations can contain field (instance variable) definitions, method definitions, inner class definitions, or even static initializer blocks: anything that is legal to put inside a class definition but outside any existing methods. In practice declarations almost always contain field or method definitions.
37
We should not use JSP declarations to override the standard servlet life cycle methods. The servlet into which the JSP page gets translated already makes use of these methods. There is no need for declarations to gain access to service, doget, or dopost, since calls to service are automatically dispatched to _jspService , which is where code resulting from expressions and scriptlets is put. However for initialization and cleanup, we can use jspInit and jspDestroy- the standard init and destroy methods are guaranteed to call these methods in the servlets that come from JSP.
38
SYSTEM ANALYSIS
39
3. SYSTEM ANALYSIS
3.1 INTRODUCTION
Software engineering is an outgrowth of hardware and System engineering. To solve actual problems in industry setting a software engineer or a team of engineers must incorporate a development strategy that encompasses the process methods and tool layers. This strategy often refereed as a process model or software engineering paradigm. A process model, a paradigm for software is chosen based on the nature of the project and application. Generally there will be five phases. Analysis Design Coding Testing Maintenance The various software engineering models are, 1. Linear sequential model. 2. Prototype model. 3. The RAD model. 4. Evolutionary software model. 5. Formal methods model. 6. Fourth generation techniques.
40
Linear Sequential Model: This model sometimes called as waterfall model, the life cycle paradigm demands a systematic, sequential, approach to software development that begins at the system level and progresses through analysis, design, coding, testing and maintenance. Model of Prototyping: Prototyping an application system is basically a four-step process as described below. There are two significant roles the user and system designer roles. Step l: Identify the users basic information requirements. In this stage the user particulates his or her basic needs in terms of output from the system. The designers responsibility to establish realistic user expectations and to estimate the cost of developing an operational prototype. The date elements are defined and their availability determined. Step2: Developing the initial developing system. The objective of this step is to build a functional interactive application system that meets the users basic stated information requirements. The system designer has the responsibility for building the system using very high development tools. The early prototype is delivered to the user to assess the capability and further development. Step3: Use of the prototype system to define the user requirements. This step allows users to gain hands-on experience with the system in order to understand his/her information needs and what the system does and
41
does not do to meet those needs. The user rather than the designer decide when changes are necessary and thus controls the overall development time. Fourth Generation Techniques: The term "fourth generation techniques" encompasses broad array of tools that have one thing in common. Each enables the software engineer to specify some characteristics of software at high level. The tool then automatically generates source based on developer specification. It focus on the ability to software using specialized language forms or a graphic notion that describes the problem to be solved in terms of that the customer can understand. The current 4GT tools: nonprocedural languages for database query report generation, data manipulation, screen interaction and definition code generation, and high-level graphics capability. The use of 4Gt has broadened considerable over the past decade and is now a variable approach for many different application areas. 4GT offer solutions to various problems by using computer aided software engineering tool and code generators. Data collected from the companies who are using 4GT indicates the time required to produce software is greatly reduced for small and intermediate applications. DETAILS: Study phase: The study phase is the phase during which identified, alternative solutions are studied and other recommendations are made about committing the personal, money other resources required to design this system. The
42
activities in this phase include the investigation of the problem, the determination of the desired system performance, the identification and evaluation of activities is it selects the most cost-effective system. A study phase report is prepared and this system is recommended to the user or users of the system as most feasible solution to the problem. The first step in this phase is the problem identification. The second step is performance definition. This means determining what the usable outputs of the system may be. The third step in selecting a system is to identify possible system that might solve the problem and to select one of these. We call the possible solutions as alternatives and we call the process of selecting the most cost-effective alternative as a feasible solution. Design phase: The Detailed Design of the system selected in the study phase takes place during the design phase. System design starts by reviewing the study phase activities and making final decisions about which functions are to be performed by hardware, software or humans. In this phase the output, input and the data base storage designs are completed for each of the computer programs. The design phase recommendations are presented to the user in a report. To perform these activities the expected time duration is again fifteen to twenty days. The logical design shows how the system meets the requirements. This may take a minimum of ten days. Here the data stores, data sources etc should be identified, and the physical design showing the development of actual program software may take another ten days. Development phase:
43
In the development phase, the system is constructed to fulfill the requirements outlined in the design phase. Development phase activities include preparing manuals and training employees, writing and testing computer programs are a part. At the conclusion of the development phase, the system is ready to be put into use. This phase concludes with a presentation of the complete system for acceptance by the user, at management review meeting. The whole of the development may take one month. To actually write the chosen language, which takes at least ten days, preparing manuals etc. take five to eight days, finally the testing of the computer programs may take ten more days. Operation phase: The operation phase is period during which the system is used. Activities include changing over the new system, monitoring the system's performance, and establishing procedures for making modifications or changes in the system. This phase continues for the rest of system's usefulness life. The implementation and evaluation may take three months at least.
44
After purchasing music albums through online one should have get albums through Music Store Administrator. Administrator should maintain all sales report of Music Albums sold based on daily, weekly and monthly wise. In some Music site where need to register before see any information regarding movies. Here it is avoided. Normal users can view information regarding Movies without registration. User can here through online without downloading the song from Portal. Music Store provides user to listen song from portal itself instead of downloading it. In present Music Portal doesnt have search option for searching song which user wants. Music Store provides users a search option where user can search songs by typing song name in text box provided. Normal user wants to vote for an album. Music Store also provides this facility for users. For registered users we are providing rating facility where user can give rating after hearing the song. After purchasing albums and Movies user can still go for shopping. All purchased Items are stored in shopping cart where it keeps on increasing or decreasing based on choice. All payments are made through credit card where credit card details are taken at the time of registration itself.
No Search option for user where he want to search for desired Albums. Purchasing of albums through credit card. Delay of updating of the music albums released.
Need for Music Portal: To help people quickly and easily find what they're looking for on the Web, and explore the areas that interest them most. The Web is an extraordinary place, but ... for most of us, it also poses a challenge. A good Music Site should be a perfect entertainer for the members those who are passionate about Music and Songs. This Music portal attributes the functionalities that are easy for the users to handle and build up their own music community.
Latest updates of music albums and songs on music portal. Easy to use and user friendly operations. Requests to Administrator for desired music albums. Download / Listen to songs online. Administrator should have all control of Music Portal. Administrator should update/delete/remove music album based the users interests. Music Portal should have all related information such as price, etc., of Movies.
47
Here, the focus is on specifying what has been found giving analysis such as representation, specification languages and tools, and checking the specifications are addressed during this activity. The Requirement phase terminates with the production of the validate SRS document. Producing the SRS document is the basic goal of this phase. Role of SRS: The purpose of the Software Requirement Specification is to reduce the communication gap between the clients and the developers. Software Requirement Specification is the medium though which the client and user needs are accurately specified. It forms the basis of software development. A good SRS should satisfy all the parties involved in the system.
48
3.6.1 TECHNICAL FEASIBILITY: To determine whether the proposed system is technically feasible, we should take into consideration the technical issues involved behind the system. Music Store uses the web technologies, which is rampantly employed these days worldwide. The world without the web is incomprehensible today. That goes to proposed system is technically feasible. 3.6.2 OPERATIONAL FEASIBILITY: To determine the operational feasibility of the system we should take into consideration the awareness level of the users. This system is operational feasible since the users are familiar with the technologies and hence there is no need to gear up the personnel to use system. Also the system is very friendly and to use. 3.6.3 ECONOMIC FEASIBILITY To decide whether a project is economically feasible, we have to consider various factors as: Cost benefit analysis Long-term returns Maintenance costs
The proposed Music Store is computer based. It requires average computing capabilities and access to internet, which are very basic requirements and can be afforded by any organization hence it doesnt incur additional economic overheads, which renders the system economically feasible.
49
DESIGN
50
4. SYSTEM DESIGN
Design is concerned with identifying system components, specifying relationships among components. The detailed design of the system selected in the study phase takes place during the design phase. Design is essentially a blue print or it acts as a bridge between the requirement specification and the final solution for satisfying the requirements. Our system design starts by reviewing the study phase activities and making final decisions about which functions are to be performed by hardware, software or humans. In this phase the output, input and the data base storage designs are completed for each of the computer programs. Here we presented the design phase recommendations to the user in a report. Based on the work-flow described above we can draw the following conclusions for the Software System that has to be developed. The System needs to be a web-based system, so that it allows to connect different databases. It allows to access different databases using same console. We submit SQL statements and view results. It allows to perform various operations on database object (selected Database). It facilitates to export and import a file.
Security Module: This security module plays a vital role. We can provide security to users, through id and password. So that it prevents the user from viewing the unauthorized information. Users without proper Username and Password will not have permissions to enter the site. Security module deals with all User Authentication and Authorization process. User can register with the Music Portal and can become a Registered User. Album Managing Module: An administrator has rights to update, delete/modify the albums. Administrator will arrange all albums into the different categories like old albums, latest releases, remixes, top composers list, coming soon albums and also lyrics. He can maintain quotations .To increase the sales administrator can also give discounts to the albums. Albums updating is done by Administrator himself based on User requests. Administrator has whole rights of Update/Delete/Remove of either Albums or Movies currently present in Music Store Music Portals. Administrator controls all Album Managements. Audio Streaming Module: In this module the audio/video files are regularly uploaded/ updated by the administrator of the site. The user can play the audio/video songs directly from the site. This module ensures that the file is uploaded to the server and is available to sale or play on the site. All this modules are interlinked with each other. User without any registration can view the site and access it. For registered users Music Store is providing different facilities like keeping request to administrator for
52
more movies and albums. Interested users can login with Music Store and fill up all details which are required for registration. The registration page contains all details which need to be filling up by user.
53
* album no of songs album name rating of album view album() select album() purchase() download album() llistenng sample song() * *
54
listening samplesong
register
login
selectingalbum user
buying albums
gives feedback
logout
55
Administrator:
login
administrator
logout
56
::User login
::Application
::Database
retriv ing user details user validation login /inv alid user
view album selecting album hearing sample song request for sample song
download samplesong purchase album request for user address confirmation of purchase sending of user address
57
Administrator:
::Administrator login
::Application
::Database
collecting bill
logout
58
::Applicati on
Administrator:
1: login 6: update new songs 7: checks address of user 9: checks user rating 10: sending albums to the user 11: collecting bill 4: user validation 8: response for user address
::Administra tor
::Applicati on
::Databas e
59
60
61
USER INFO: USER_NAME FIRST_NAME MIDDLE_NAME LAST_NAME DATE_OF_BIRTH E_MAIL ADDRESS_LINE1 ADDRESS_LINE2 CITY STATE REQUEST_ID CREDIT_CARD varchar(50) varchar(50) varchar(50) varchar(50) datetime varchar(50) varchar(50) varchar(50) varchar(50) varchar(50) smallint(6) varchar(50)
CREDIT_CARD_TYPE varchar(50)
62
ITEM MASTER: TITLE RATE ITEM_DESC SINGER QTY_ON_HAND TYPE RELEASE_DATE ITEM_CODE varchar(50) int(11) varchar(50) varchar(50) int(11) varchar(50) Datetime varchar(50)
NO_OF_TRACKS int(11)
63
REPLY_USER_NAME varchar(50)
SALES INFO: SALE_DATE ITEM_CODE SALE_QTY RATE Datetime varchar(50) int(11) int(11)
USER_NAME varchar(50)
64
TRACK MASTER: Field ITEM_CODE TRACK_NAME RATING TRACKLOCATION LYRICS TRACKCODE Type varchar(50) varchar(50) int(11) varchar(50) varchar(50) int(11)
NO_OF_USERS_RATED int(11)
NUMBER_VOTES int(11)
65
IMPLEMENTATION
66
5. IMPLEMENTATION
The implementation phase is the period during which the system is used. The major activities in this phase are: Complete conversion Operate system Evaluate system performance Maintain system and manage changes Usually, this phase is the longest of all the life cycle phases and is characterized by four distinct changes. Initially, the new system must be introduced into the business activity stream. This state is called changeover. The changeover transaction may take weeks or even months. After it is completed, the system enters the operation and routine maintenance stage. Early in this stage, the evaluation should be made based on performance measurements that determine whether the specific benefits claimed for the system have been achieved. Finally, the new system, all operational systems, must be able to accommodate change. Change is perhaps the most important stage in the life of computer-based system. The principle activities and documents that characterize the stages of the implementation phase are: System changeover Routine operation System performance evaluation System change
67
Run the source code in Net beans IDE using Tomcat server. Select the required option from the music world home page. New users can register through online registration form. Registered users need to login from login page to access the database. Every user can maintain his personalised collection in the database which makes them access the required songs easily through wish list. Required collection can be found by searching with appropriate key word. Selected collections through database provide flexibility of listening, voting, rating, commenting and downloading them. Registered users can place a request to administrators for providing the required unfound collections. A user can view the top rated list directly from homepage through top rated hyperlink. A user can buy required collections through shopping cart page and can clarify queries by messaging administrator. Through logout page a user can logoff from his account. An administrator can manage the database by uploading, managing, deleting the tracks and users (if not logged in for more than 90 days). An administrator can view the sales report and analyse the report when required and can reply customers queries. An administrator has a flexibility to add and remove collections from shopping cart by managing shopping cart.
68
TESTING
69
6. TESTING
Software testing is a critical element of software quality assurance and represents the ultimate review of specification, design and code generation.
The software developed has been tested successfully using the following testing strategies and any errors that are encountered are corrected and again the part of the program or the procedure or function is put to testing until all the errors are removed. A successful test is one that uncovers an as yet undiscovered error.
70
Note that the result of the system testing will prove that the system is working correctly. It will give confidence to system designer, users of the system & prevent frustration during implementation process etc.
71
72
SCREEN LAYOUTS
74
7. SCREENS
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
CONCLUSIONS
104
8. CONCLUSION
The MUSIC WORLD project has been successfully completed. The goal of the system is achieved and the problems are solved. This project is developed in this manner that is user friendly and required help is provided at different levels. The primary objective is to provide the interactive service to all the Users. Different types of services are provided to both the admin and users. User can avail this service any time. We can make further enhancements in this project, in the present system uploading and deleting of the songs from the music portal can be done only by the administrator. For future enhancement we have to give these permissions to registered users also. In order to provide security to the portal only uploading permissions are given to the user, but he cant delete the songs. So users can also upload the songs into the portal. Users can delete the songs that are uploaded by them only. They cant delete the songs uploaded by the administrator and other users. And every user can listen, view and download the songs uploaded by any one.
105
BIBLIOGRAPHY
106
9. BIBLIOGRAPHY
1. Advanced Java Programming 2. Mastering JAVA 2 3. Java Server Programming 4. Software Engineering 5. Anlysis & Design of InformationSystems
107