JOB Portal Project Report
JOB Portal Project Report
JOB Portal Project Report
07837820467
Or u can email me at:
[email protected] [email protected]
Study C, C++, Java, HTML, C/C++ graphics, visit my Blog:
http://bestprogrammingtutorials.blogspot.in/
A PROJECT REPORT ON
ABSTRACT
The project would help us in effective and systematic record keeping that is storing and retrieving of useful data. Project will be able to able to give the report so that admin can make decisions on bases of that reports. It provides the Recruitment of people with all the necessary tools to schedule the interview and applicants to register and apply for jobs and interviewers to view the interview details. It provides the users with all the necessary privileges to access and modify the data intended for them. It doesnt entirely replace the existing system but it mostly automizes the Recruitment process and all the data used.
The web-application aims at provides the candidates ability to register to this application and search for jobs, manage their accounts. As this is a well designed and easy-to-use communication system will certainly give the job portal an edge over the other job portals with outdated and manual communication
system, with manpower doing the bulk of data transfer in the form of files and paper documents.With automatic features like getting candidates information, company information, getting job vacancies this web application turns out to be a very suitable one. MODULES
1. Admin Module: This module is the central module of this application. This module provide user interface for the admin users to get all the information about the system and also for configuring the system with any required information. 2. Registered User Module : This user module will be providing registered users to manage their profiles . Users can search for jobs, edit,update their data. 3. Company Module: This module will provide an online environment to the company to post their jobs, see jobs applications by users,modify settings and download resume of applicants.
TECHNOLOGIES USED
ACKNOWLEDGEMENT
Nothing concrete can be achieved without an optimum combination of inspection and perspiration. The idea of presenting this material without adequate thanks to those who give it to us or pointed in the right direction seems simply indefensible. Generating this piece has been time consuming and an arduous task and has involved various contributions. It is my pleasure to acknowledge the help I have received from different individuals, Project Guide and all the Staff of the Company during the project. My first sincere appreciation and gratitude goes to respected Mr. Pankaj Gupta, Project guide, Netmax Technologies for his guidance, constructive comments, valuable suggestions and inspirations. During the entire training session, i have received endless help from him. Also, it gives me immense pleasure to express my sincere and whole hearted thank to Mr. Harish Kundra (H.O.D. Computer Science & IT) for giving us the required guidance.
Ashish Bhandari
This project is aimed at developing a web-based and central Online job portal for the HR Group for a company. Some features of this system will be creating vacancies, storing Applicants data, Interview process initiation, Scheduling Interviews, Storing Interview results for the applicant and finally Hiring of the applicant. Reports may be required to be generated for the use of HR group. This system automates the manual recruitment process. We believe that once the organization chooses to use this system, it will eventually recognize the value and necessity of this system and understand the problems involved in the manual process. This document provides details about the entire software requirements specification for the online job portal. The project Online Job portal is aimed at developing a web-based and central Recruitment Process System for the HR Group of a company.
TABLE OF CONTENTS
INTRODUCTION1-2
1.1 1.2 1.3 About Project.............1 Modules.....................................................................................................................1 Definitions.............2
2.
3.
........................................................................................ 22
3.3
4.
4.6
Input-Output Design..........52
5.
6.
TESTING.......................................................................................................... 79-82
6.1 System Testing.81
7.
8.
BIBLIOGRAPHY ..................................................................................................94
CHAPTER 1 INTRODUCTION
On the other hand companies that are willing to publish the jobs for their company to candidates can register to the job portal and get their own account created and can post jobs to portals database .
Registered companies can add or remove jobs and these jobs can be seen by various candidates and they can contact the company person for the job. Main aim of this web application is to make a good web application that can make this job search option easy and accessible to everyone who are interested.
1.2 MODULES
The main stakeholders of this system are:
3. Companies
This system enables the Recruiting company to login to the system and create a vacancy and post it on the web. The Recruiting company can associate jobseekers with a vacancy and Schedule the interview. He is able to search on jobseeker number and Vacancy number. This system enables the jobseekers to login, to view all the vacancies and to view the applicant and vacancy details. He is also able to search on interview date, number and vacancy number. The Job Seekers can register and create a profile. He/She can search and apply for jobs online. He could view his interview details and application status.
1. Recruiting company : The company who creates vacancies. 2. Job Seekers 3. Admin : The person who sell applies for job. : The authorized person who controls all the network
Systems analysis is the study of sets of interacting entities, including computer systems analysis. This field is closely related to operations research. It is also "an explicit formal inquiry carried out to help someone (referred to as the decision maker) identify a better course of action and make a better decision than he might otherwise have made." Analysis is defined as the procedure by which we break down an intellectual or substantial whole into parts so that we can achieve our end goals.
The development of a computer-based information system includes a systems analysis phase which produces or enhances the data model which itself is a precursor to creating or enhancing a database. There are a number of different approaches to system analysis. When a computer-based information system is developed, systems analysis would constitute the following steps: 1. The development of a feasibility study, involving determining whether a project is economically, socially, technologically and organizationally feasible.
2. Conducting fact-finding measures, designed to ascertain the requirements of the system's end-users. These typically span interviews, questionnaires, or visual observations of work on the existing system.
3. Gauging how the end-users would operate the system (in terms of general experience in using computer hardware or software), what the system would be used for etc.
Another view outlines a phased approach to the process. This approach breaks systems analysis into 5 phases:
Scope definition Problem analysis Requirements analysis Logical design Decision analysis
Use case are a widely-used systems analysis modeling tool for identifying and expressing the functional requirements of a system. Each use case is a business scenario or event for which the system must provide a defined response. Use cases evolved out of object-oriented analysis.
Information gathering is usually the first phase of the software development project. The purpose of this phase is to identify and document the exact requirements for the system. The users request identifies the need for a new information system and on investigation re-defined the new problem to be based on MIS, which supports management. The objective is to determine whether the request is valid and feasible before a recommendation is made to build a new or existing manual system continues. The major steps are Defining the user requirements. Studying the present system to verify the problem. Defining the performance expected by the candidate to use requirements.
3. Web Server Tomcat 7.0.14 4. Application Server GlassFish v3.1 5. Operating System Windows 7 / Vista / XP sp3 / Linux Fedora 14
2. Database Layer
SQL
3. Business Layer
3.1 Core Java Technologies Exception Handling Multithreading Collections Framework JDBC (Java Database Connectivity) 3.2 Web Components Servlets JSP (Java Server Pages) 3.3 Enterprise Components J2EE (Java 2 Enterprise Edition)
HTML
HTML is a language for describing web pages. HTML stands for Hyper Text Markup Language HTML is not a programming language, it is a markup language A markup language is a set of markup tags HTML uses markup tags to describe web pages
HTML markup tags are usually called HTML tags HTML tags are keywords surrounded by angle brackets like <html> HTML tags normally come in pairs like <b> and </b> The first tag in a pair is the start tag, the second tag is the end tag Start and end tags are also called opening tags and closing tags.
HTML Documents HTML documents describe web pages HTML documents contain HTML tags and plain text HTML documents are also called web pages
CSS
A few words about CSS
CSS stands for Cascading Style Sheets Styles define how to display HTML elements Styles are normally stored in Style Sheets Styles were added to HTML 4.0 to solve a problem External Style Sheets can save you a lot of work External Style Sheets are stored in CSS files Multiple style definitions will cascade into one
CSS provides means to customize inbuilt HTML tags HTML tags were originally designed to define the content of a document. They were supposed to say "This is a header", "This is a paragraph", "This is a table", by using tags like <h1>, <p>, <table>, and so on. The layout of the document was supposed to be taken care of by the browser, without using any formatting tags. As the two major browsers - Netscape and Internet Explorer - continued to add new HTML tags and attributes (like the <font> tag and the color attribute) to the original HTML specification, it became more and more difficult to create Web sites where the content of HTML documents was clearly separated from the document's presentation layout. To solve this problem, the World Wide Web Consortium (W3C) - the non profit, standard setting consortium, responsible for standardizing HTML - created STYLES in addition to HTML 4.0. All major browsers support Cascading Style Sheets. Styles sheets define HOW HTML elements are to be displayed, just like the font tag and the color attribute in HTML 3.2. Styles are normally saved in external .css files. External style sheets enable you to change the appearance and layout of all the pages in your Web, just by editing one single CSS document.
JavaScript
JavaScript is used in millions of Web pages to improve the design, validate forms, detect browsers, create cookies, and much more. JavaScript is the most popular scripting language on the internet, and works in all major browsers, such as Internet Explorer, Firefox, and Opera. A few words about JavaScript
JavaScript was designed to add interactivity to HTML pages JavaScript is a scripting language A scripting language is a lightweight programming language JavaScript is usually embedded directly into HTML pages
JavaScript is an interpreted language (means that scripts execute without preliminary compilation)
JavaScript gives HTML designers a programming tool - HTML authors are normally not programmers, but JavaScript is a scripting language with a very simple syntax! Almost anyone can put small "snippets" of code into their HTML pages
JavaScript can put dynamic text into an HTML page - A JavaScript statement like this: document.write("<h1>" + name + "</h1>") can write a variable text into an HTML page
JavaScript can react to events - A JavaScript can be set to execute when something happens, like when a page has finished loading or when a user clicks on an HTML element
JavaScript can read and write HTML elements - A JavaScript can read and change the content of an HTML element
JavaScript can be used to validate data - A JavaScript can be used to validate form data before it is submitted to a server. This saves the server from extra processing
JavaScript can be used to detect the visitor's browser - A JavaScript can be used to detect the visitor's browser, and - depending on the browser - load another page specifically designed for that browser
JavaScript can be used to create cookies - A JavaScript can be used to store and retrieve information on the visitor's computer
Where to Put the JavaScript Scripts in the head section: Scripts to be executed when they are called, or when an event is triggered, go in the head section. When you place a script in the head section, you will ensure that the script is loaded before anyone uses it. Scripts in the body section: Scripts to be executed when the page loads go in the body section. When you place a script in the body section it generates the content of the page.
Using an External JavaScript: When you might want to run the same JavaScript on several pages, without having to write the same script on every page, then you can write a JavaScript in an external file. Save the external JavaScript file with a .js file extension. The external script cannot contain the <script> tag. To use the external script, point to the J1.js file in the "src" attribute of the <script> tag: <script type="text/javascript" src="J1.js"></script>
Java Technology
Java technology is both a programming language and a platform.
Simple Object oriented Distributed Multithreaded Architecture neutral Portable High performance Robust
In the Java programming language, all source code is first written in plain text files ending with the .java extension. Those source files are then compiled into .class files by the javac compiler. A .class file does not contain code that is native to your processor; it instead contains bytecodes the machine language of the Java Virtual Machine1 (Java VM). The java launcher tool then runs your application with an instance of the Java Virtual Machine.
Because the Java VM is available on many different operating systems, the same .class files are capable of running on Microsoft Windows, the Solaris
TM
Operating System
(Solaris OS), Linux, or Mac OS. Some virtual machines, such as the Java HotSpot virtual machine, perform additional steps at runtime to give your application a performance boost.
The Java Virtual Machine The Java Application Programming Interface (API)
Java Virtual Machine is the base for the Java platform and is ported onto various hardwarebased platforms. The API is a large collection of ready-made software components that provide many useful capabilities. It is grouped into libraries of related classes and interfaces; these libraries are known as packages.
The API and Java Virtual Machine insulate the program from the underlying hardware.
Every full implementation of the Java platform gives you the following features:
Development Tools: The development tools provide means for compiling, running, debugging, and documenting your applications. The main tools are the javac compiler, the java launcher, and the javadoc documentation tool.
Application Programming Interface (API): The API provides the core functionality of the Java programming language. It offers a wide array of useful classes ready for use in your own applications. It spans everything from basic objects, to networking and security, to XML generation and database access, etc.
Deployment Technologies: The JDK software provides standard mechanisms such as the Java Web Start software and Java Plug-In software for deploying your applications to end users.
User Interface Toolkits: The Swing and Java 2D toolkits make it possible to create sophisticated Graphical User Interfaces (GUIs).
Integration Libraries: Integration libraries such as the Java IDL, JDBC, JNDI, Java RMI, and Java Remote Method Invocation over Internet Inter-ORB Protocol Technology (Java RMI-IIOP Technology) enable database access and manipulation of remote objects.
An exception is an event, which occurs during the execution of a program, that disrupts the normal flow of the program's instructions. When an error occurs within a method, the method creates an object and hands it off to the runtime system. The object, called an exception object, contains information about the error, including its type and the state of the program when the error occurred. Creating an exception object and handing it to the runtime system is called throwing an exception. After a method throws an exception, the runtime system attempts to find something to handle it. The set of possible "somethings" to handle the exception is the ordered list of methods that had been called to get to the method where the error occurred. The list of methods is known as the call stack.
The call stack The runtime system searches the call stack for a method that contains a block of code that can handle the exception. This block of code is called an exception handler. The search begins with the method in which the error occurred and proceeds through the call stack in the reverse order in which the methods were called. When an appropriate handler is found, the runtime system passes the exception to the handler. An exception handler is considered appropriate if the type of the exception object thrown matches the type that can be handled by the handler.
The exception handler chosen is said to catch the exception. If the runtime system exhaustively searches all the methods on the call stack without finding an appropriate exception handler, as shown in the next figure, the runtime system (and, consequently, the program) terminates.
Searching the call stack for the exception handler A program can catch exceptions by using a combination of the try, catch, and finally blocks.
The try block identifies a block of code in which an exception can occur. The catch block identifies a block of code, known as an exception handler, that can handle a particular type of exception.
The finally block identifies a block of code that is guaranteed to execute, and is the right place to close files, recover resources, and otherwise clean up after the code enclosed in the try block.
Java Multithreading
Threads are called lightweight processes. Threads exist within a process every process has at least one. Threads share the process's resources, including memory and open files. This makes for efficient, but potentially problematic, communication.
Multithreaded execution is an essential feature of the Java platform. Every application has at least one thread or several, if you count "system" threads that do things like memory management and signal handling. But from the application programmer's point of view, you start with just one thread, called the main thread. This thread has the ability to create additional threads. Each thread is associated with an instance of the class Thread. There are two basic strategies for using Thread objects to create a concurrent application.
To directly control thread creation and management, simply instantiate Thread each time the application needs to initiate an asynchronous task.
To abstract thread management from the rest of your application, pass the application's tasks to an executor.
Java - JDBC
JDBC stands for "Java DataBase Connectivity". It is an API (Application Programming Interface) which consists of a set of Java classes, interfaces and exceptions and a specification to which both JDBC driver vendors and JDBC developers adhere when developing applications. JDBC is a very popular data access standard. RDBMS (Relational Database Management Systems) or third-party vendors develop drivers which adhere to the JDBC specification. Other developers use these drivers to develop applications which access those databases. The JDBC API is a Java API that can access any kind of tabular data, especially data stored in a Relational Database. JDBC helps you to write java applications that manage these programming activities: 1. Connect to a data source, like a database 2. Send queries and update statements to the database
JDBC Architecture
The JDBC API supports both two-tier and three-tier processing models for database access. Figure 1: Two-tier Architecture for Data Access.
In the two-tier model, a Java application talks directly to the data source. This requires a JDBC driver that can communicate with the particular data source being accessed. A user's commands are delivered to the database or other data source, and the results of those statements are sent back to the user. The data source may be located on another machine to which the user is connected via a network. This is referred to as a client/server configuration, with the user's machine as the client, and the machine housing the data source as the server. In the three-tier model, commands are sent to a "middle tier" of services, which then sends the commands to the data source. The data source processes the commands and sends the results back to the middle tier, which then sends them to the user. MIS directors find the three-tier model very attractive.
Web Components
Java web components are either servlets or pages created using JSP technology (JSP pages). Servlets are Java programming language classes that dynamically process requests and construct responses. JSP pages are text-based documents that execute as servlets but allow a more natural approach to creating static content. The web tier might include a JavaBeans component to manage the user input and send that input to enterprise beans running in the business tier for processing, as shown:
Business Components
Business code, which is logic that solves or meets the needs of a particular business domain is handled by enterprise beans running in the business tier. Following figure shows how an enterprise bean receives data from client programs, processes it (if necessary), and sends it to the enterprise information system tier for storage. An enterprise bean also retrieves data from storage, processes it (if necessary), and sends it back to the client program:
enterprise bean as a building block that can be used alone or with other enterprise beans to execute business logic on the Java EE server. There are two kinds of enterprise beans: session beans and message-driven beans. A session bean represents a transient conversation with a client. When the client finishes executing, the session bean and its data are gone. A message-driven bean combines features of a session bean and a message listener, allowing a business component to receive messages asynchronously. Commonly, these are Java Message Service (JMS) messages.
Feasibility study is the process of determination of whether or not a project is worth doing. Feasibility studies are undertaken within tight time constraints and normally culminate in a written and oral feasibility report. The contents and recommendations of this feasibility study helped us as a sound basis for deciding how to precede the project. It helped in taking decisions such as which software to use, hardware combinations, etc. The following is the process diagram for feasibility analysis. In the diagram, the feasibility analysis starts with the user set of requirements. With this, the existing system is also observed. The next step is to check for the deficiencies in the existing system. By evaluating the above points a fresh idea is conceived to define and quantify the required goals. Besides that, a set of alternatives and their feasibility is also considered in case of any failure in the proposed system. Thus, feasibility study is an important part in software development.
WORKING CURRENT SY STEM USERS CONSESUS
DEFICIENCES IN CURRENT SY STEM ANALYZE TO FIND DEFICIENCES DEFINE AND QUANTIFY GOALS
CONSTRAINTS ON RESOURCES
In the SDLC (Systems Development Life Cycle) of our project we maintained a number of feasibility checkpoints between the two phases of the SDLC. These checkpoints indicate that the management decision to be made after a phase is complete. The feasibility checkpoints in our project were as follows: (i) (ii) Survey phase checkpoint Study phase checkpoint
(iii) Selection phase checkpoint (iv) Acquisition phase checkpoint (v) Design phase checkpoint
The technologies used are matured enough so that they can be applied to our problems. The practicality of the solution we have developed is proved with the use of the technologies we have chosen. The technologies such as JAVA (JSP, Servlet), JavaScript and the compatible H/Ws are so familiar with the todays knowledge based industry that anyone can easily be compatible to the proposed environment.
(c)Do we possess the necessary Technical Expertise and is the Schedule reasonable?
This consideration of technical feasibility is often forgotten during feasibility analysis. We may have the technology, but that doesnt mean we have the skills required to properly apply that technology. As far as our project is concerned we have the necessary expertise so that the proposed solution can be made feasible.
We classified the costs of Online job portal according to the phase in which they occur. As we know that the system development costs are usually one-time costs that will not recur after the project has been completed. For calculating the Development costs we evaluated certain cost categories viz. (i) (ii) (iii) (iv) (v) Personnel costs Computer usage Training Supply and equipments costs Cost of any new computer equipments and software. In order to test whether the Proposed System is cost-effective or not we evaluated it through three techniques viz. Payback analysis Return on Investment: Net Present value Cost-based study: It is important to identify cost and benefit factors, which can be categorized as follows: 1. Development costs; and 2. Operating costs. This is an analysis of the costs to be incurred in the system and the benefits derivable out of the system. Time-based study: This is an analysis of the time required to achieve a return on investments. The future value of a project is also a factor.
4.1 Introduction
After the analysis phase we have with us the details of the existing system and the requirements of the user for the new system. This phase diverts focus from the problem domain to the solution domain. It acts as a bridge between the requirement phase and its solution. The design phase focuses on the detailed implementation of the system recommended in the feasibility study. Systems design is the process or art of defining the architecture, components, modules, interfaces, and data for a system to satisfy specified requirements. There is some overlap with the disciplines of systems analysis, systems architecture and systems engineering. Object-oriented analysis and design (OOAD) methods are becoming the most widely used methods for computer system design. The UML has become the standard language used 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.
Logical design
The logical design of a system pertains to an abstract representation of the data flows, inputs and outputs of the system. This is often conducted via modelling, which involves a simplistic (and sometimes graphical) representation of an actual system. In the context of systems design, modelling can undertake the following forms, including: Data flow diagrams Entity Life Histories Entity Relationship Diagrams
Physical design
The physical design relates to the actual input and output processes of the system. This is laid down in terms of how data is input into a system, how it is verified/authenticated, how it is processed, and how it is displayed as output.
Physical design, in this context, does not refer to the tangible physical design of an information system. To use an analogy, a personal computer's physical design involves input via a keyboard, processing within the CPU, and output via a monitor, printer, etc. It would not concern the actual layout of the tangible hardware, which for a PC would be a monitor, CPU, motherboard, hard drive, modems, video/graphics cards, USB slots, etc.
4.2 Module Description To develop a powerful online programming environment for java programming. To manage all details of all users of the WebIDE. To manage programs(i.e. Java files) on server made by users using IDE. To provide support to users, so that users could share their problems with other users. To allow users to share their Java Programs with other users.
Level 0(Context-Level)
Level 1(User)
Level 1(Company)
Level 1(Admin)
Level 2(User)
Level 2(Company)
Level 2(Admin)
ER Diagram
Field Name
EMAIL PASSWORD
Data Type
VARCHAR2 VARCHAR2
Size
25 10
Constraints
Primary Key
Description
USER E-MAIL USER PASSWORD
Field Name
E-MAIL
Data Type
VARCHAR2 25
Size
Constraints
Primary Key
Description
E-MAIL OF THE USER FIRST NAME OF THE USER LAST NAME OF USER USER PASSWORD USER LOCATION USER KEY SKILLS GENDER OF USER INDUSTRY TO WHICH USER BELONG
FIRST NAME
VARCHAR2
50
LAST NAME
VARCHAR2
25
15 50 50 2 20
FIELD NAME
DATATYPE
SIZE
CONSTRAINTS
DESCRIPTION
VARCHAR2
25
PRIMARY KEY
USER EMAIL
DOB
NUMBER
10
QUALIFICATION
VARCHAR2
10
QUALIFICATION OF USER
YEAR
NUMBER
COLLEGE
VARCHAR2
30
UNIVERSITY
VARCHAR2
20
RESUMETITLE
VARCHAR2
18
FIELD NAME
DATATYPE
SIZE
CONSTRAINTS DESCRIPTION
JOB ID
VARCHAR2
JOB ID NUMBER
PROFILE
VARCHAR2
20
PROFILE OF JOB
COMPANY EMAIL
VARCHAR2
30
COMPANY EMAIL
USER EMAIL
VARCHAR2
30
Field Name
ID PROFILE COMPANY
Data Type
VARCHAR2 VARCHAR2 VARCHAR2 15 20 20
Size
Constraints
Primary Key
Description
JOB ID. JOB PROFILE NAME OF COMPANY
PLACE EXPERIENCE
VARCHAR2 NUMBER
30 3
10 8 10
50 20 15
FIELD NAME
JOB ID PROFILE COMPANY EMAIL USER EMAIL
DATATYPE
VARCHAR2 VARCHAR2 VARCHAR2 VARCHAR2
SIZE
6 20 30 30
CONSTRAINTS DESCRIPTION
JOB ID NUMBER PROFILE OF JOB COMPANY EMAIL APPLICABLE USER EMAIL
FIELD NAME
SUBJECT
DATATYPE
VARCHAR2
SIZE
30
CONSTRAINTS DESCRIPTION
SUBJECT FOR FEEDBACK
VARCHAR2 VARCHAR2
20 10
E-MAIL DETAILS
VARCHAR2 VARCHAR2
30 30
FIELD NAME
EVENT ID VENUE.
DATATYPE
VARCHAR2 VARCHAR2 VARCHAR2
SIZE
20 10 20
CONSTRAINTS DESCRIPTION
NAME OF EVENT PRIMARY KEY EVENT ID LOCATION OF EVENT
PLACE QUALIFICATIONS
VARCHAR2 VARCHAR2
20 20
DATE
NUMBER
10
DATE OF EVENT
Field Name
EMAIL PASSWORD
Data Type
VARCHAR2 VARCHAR2 25 10
Size
Constraints
Primary Key
Description
USER E-MAIL USER PASSWORD
FIELD NAME
EMAIL SQ1
DATATYPE
VARCHAR2 VARCHAR2
SIZE
20 50
CONSTRAINTS DESCRIPTION
PRIMARY KEY EMAIL SEQURITY QUESTION 1
ANS1
VARCHAR2
20
SQ2
VARCHAR2
50
SEQURITY QUESTION 2
ANS2
VARCHAR2
20
Field Name
EMAIL
Data Type
VARCHAR2 35
Size
Constraints
Primary Key
Description
EMAIL OF COMPANY
PASSWORD NAME
VARCHAR2 VARCHAR2
20 20
STATE
VARCHAR2
20
15 20 10 10
NUMBER VARCHAR2
10 20
Field Name
EMAIL
Data Type
VARCHAR2 25
Size
Constraints
Primary Key
Description
EMAIL OF COMPANY
INFO
VARCHAR2
50
Field Name
EMAIL
Data Type
VARCHAR2 25
Size
Constraints
Primary Key
Description
EMAIL OF COMPANY
JOBID
VARCHAR2
10
JOB-ID
Field Name
NAME PASSWORD
Data Type
VARCHAR2 VARCHAR2 25 20
Size
Constraints
Primary Key
Description
ADMIN NAME ADMIN PASSWORD
Code design for the system follows the following pattern. The java programs for the accessing the database server consists of functions that retrieve data and return that data in the required format. These java functions are put into classes. These classes are identified by the module which they service. The classes are all part of a package. This package is used in the JSP scripting to declare objects of a particular class. Once the objects have been declared, the functions of that object can be easily accessed by a normal objectName.functionName kind of call to it. The function performs the necessary tasks and then returns the data to the JSP script. The web server then processes these data and prepares an HTML file to be displayed to the user. This process is depicted in the figure.
Function C ( )
DATABASE SERVER
Java functions do the database handling
Function n ( )
Coding (Main)
Login Servlet:
package project; import java.io.IOException; import java.io.PrintWriter; import java.sql.Connection; import java.sql.ResultSet; import java.sql.Statement; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; public class Login extends HttpServlet { protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter(); String email=request.getParameter("email"); String password=request.getParameter("pass"); String getmail=null,getpass=null; int i=0; try {
Connection con=Dbconnect.getConnect(); Statement st=con.createStatement(); String q="select * from login"; ResultSet rs=st.executeQuery(q); while(rs.next()) { getmail=rs.getString("email"); getpass=rs.getString("password"); if(email.equals(getmail) && password.equals(getpass)) { i=1; break; } } if(i==1) { HttpSession ses=request.getSession(); ses.setAttribute("email", email); RequestDispatcher rdp=request.getRequestDispatcher("Home.jsp"); rdp.forward(request, response); } else { RequestDispatcher rdp=request.getRequestDispatcher("loginerror.jsp"); rdp.forward(request, response); }
out.println("<html>"); out.println("<head>");
out.println("<title>Servlet Login</title>"); out.println("</head>"); out.println("<body>"); out.println("<h1>Servlet Login at " + request.getContextPath() + "</h1>"); out.println("</body>"); out.println("</html>"); } catch(Exception e) { out.println("exception in register servlet "+e); }
finally { out.close(); } }
package project; import java.io.IOException; import java.io.PrintWriter; import java.sql.Connection; import java.sql.DriverManager; import java.sql.Statement; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class jobpost extends HttpServlet {
protected void processRequest(HttpServletRequest response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter(); String driver="com.mysql.jdbc.Driver"; String url="jdbc:mysql://localhost:3306/"; String database="jobs"; String username="root"; String pass="root"; String profile=request.getParameter("profile"); String id=request.getParameter("jobid"); String email=request.getParameter("email"); String company=request.getParameter("company"); String place=request.getParameter("place");
request,
HttpServletResponse
String experience=request.getParameter("experience"); String salary=request.getParameter("salary"); String day=request.getParameter("day"); String month=request.getParameter("month"); String year=request.getParameter("year"); String industry=request.getParameter("industry"); String details=request.getParameter("description"); String date= day + "-" + month + "-" + year; String insertquery="INSERT INTO jobs.jobpost (profile, id, company, place, experience, salary, `date`, description, industry, email) VALUES ('"+profile+"', '"+id+"', '"+company+"','"+place+"','"+experience+"','"+salary+"','"+date+"','"+details+"','"+industry +"','"+email+"')"; try { Connection c=Dbconnect.getConnect();
Statement st=c.createStatement(); st.executeUpdate(insertquery); RequestDispatcher rdp=request.getRequestDispatcher("sucjobpost.jsp"); rdp.forward(request,response); out.println("<html>"); out.println("<head>"); out.println("<title>Servlet register</title>"); out.println("</head>"); out.println("<body>"); out.println("<h1>Servlet register at " + request.getContextPath() + "</h1>"); out.println("</body>"); out.println("</html>"); } catch(Exception e) { out.println("Exception : " + e); }
finally { out.close(); } } }
import java.sql.Connection; import java.sql.DriverManager; import java.sql.Statement; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; public class editaccount extends HttpServlet { protected void processRequest(HttpServletRequest response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter(); String driver="com.mysql.jdbc.Driver"; String url="jdbc:mysql://localhost:3306/"; String database="jobs"; String username="root"; String pass="root"; String mail=request.getParameter("mail"); String email=request.getParameter("email"); String firstname=request.getParameter("firstname"); String lastname=request.getParameter("lastname"); String location=request.getParameter("location"); String mobileno=request.getParameter("mobileno"); String address=request.getParameter("address"); String gender=request.getParameter("gender"); request, HttpServletResponse
String modquery="update registeration set email='"+email+"', firstname='"+firstname+"',lastname='"+lastname+"',location='"+location+"',mobileno='"+ mobileno+"',address='"+address+"',industry='"+industry+"',function='"+function+"', skills='"+skills+"' where email= '"+mail+"' "; String mod="update login set email='"+email+"' where email='"+mail+"'";
try { /* * TODO output your page here. You may use following sample code. */ Connection c=Dbconnect.getConnect(); Statement st=c.createStatement(); Statement st1=c.createStatement(); st.executeUpdate(modquery); st1.executeUpdate(mod); HttpSession ses=request.getSession(); ses.setAttribute("email", email); RequestDispatcher rdp=request.getRequestDispatcher("Home.jsp");
rdp.forward(request, response);
out.println("email: " + mail + "<br/>"); out.println("<h1>Servlet register at " + request.getContextPath() + "</h1>"); out.println("</body>"); out.println("</html>"); } catch(Exception e) { out.println("Exception : " + e); }
finally { out.close(); } } }
CHAPTER 10 TESTING
Black box testing method was used for system testing. The black box testing usually demonstrates that software functions are operational; that the input is properly accepted and the output is correctly produced; and that integrity of external information (databases) is maintained.
design and errors in the system. Testing aims at detecting error-prone areas. This helps in the prevention of
errors in a system. Testing also add value to the product by confirming to the user
requirements.
Causes of Errors
The most common causes of errors in a software system are:
Communication gap between the developer and the business decision maker: A communication gap between the developer and the business decision maker is normally due to subtle differences between them. The differences can be classified into five broad areas: Language. Thought process, Background and Experience, Interest, Priorities,
Time provided to a developer to complete the project: A common source of errors in projects comes from time constraints in delivering a product. To keep to the schedule, features can be cut. To keep the features, the schedule can be slipped. Failing to adjust the feature set or schedule when problems are discovered can lead to rushed work and flawed systems.
Over Commitment by the developer: High enthusiasm can lead to over commitment by the developer. In these situations, developers are usually unable to adhere to deadlines or quality due to lack of resources or required skills on the team.
Insufficient testing and quality control: Insufficient testing is also a major source of breakdown of e-commerce systems during operations, as testing must be done during all phases of development.
Inadequate requirements gathering: A short time to market results in developers starting work on the Web site development without truly understanding the business and technical requirements. Also, developers may create client-side scripts using language that may not work on some client browsers.
Keeping pace with the fast changing Technology: New technologies are constantly introduced. There may not be adequate time to develop expertise in the new technologies. This is a problem for two reasons. First, the technology may not be properly implemented. Second, the technology may not integrate well with the existing environment.
Testing Principles
To discover as yet undiscovered errors. All tests should be traceable to customers requirement. Tests should be planned long before the testing actually begins. Testing should begin in the small & progress towards testing in the large. Exhaustive Testing is not possible. To be most effective training should be conducted by an Independent Third Party
Testing Objectives
Testing is a process of executing a program with the intent of finding errors. A good test case is one that has a high probability of finding an as yet undiscovered error. A successful test is one that uncovers an as yet undiscovered error.
Kinds of Testing:
Black Box Testing- Not based on any knowledge of internal designs or code. Tests are based on requirements and functionality.
White Box Testing- Based on the knowledge of the internal logic of an applications code. Tests are based on coverage of code statements, branches, paths and statements.
Unit Testing- The most micro scale of testing; to test particular functions and code modules. Typically done by the programmer and not by the testers, as it requires detailed knowledge of the internal program design and code. Not always easily done unless the application has a well-designed architecture with tight code; may require developing test driver modules or test harnesses.
Integration Testing- Testing of combined parts of an application to determine if they function together correctly. The parts can be code modules, individual applications, client and server applications on a network, etc. This type of testing is especially relevant to client/ server and distributed systems.
Functional Testing- Black-box type testing geared to functional requirements of an application; testers should do this type of testing. This doesnt mean that the programmers shouldnt check that their code works before releasing it.
Regression Testing- Re-testing after fixes or modifications of the software or its environment. It is difficult to determine how much re testing is needed, especially near the end of the development cycle. Automated testing tools can be especially useful for this type of testing.
Acceptance Testing- Final testing based on the specifications of the end user or customer or based on use by end-users/ customers over some limited period of time.
Unit Testing
The various functions within each program and the program blocks are tested for proper working.
Module Testing
Integration Testing
Integration testing is done to test the functionality and interfacing between the modules.
Acceptance testing is done after implementation to check if the system runs successfully in the customer environment/site.
Acceptance Testing
11.1 Implementation:Implementation uses the design document to produce code. Demonstration that the program satisfies its specifications validates the code. Typically, sample runs of the program demonstrating the behavior for expected data values and boundary values are required. Small programs are written using the model: Write/Compile/ Test . As programs get more complicated, testing and debugging alone may not be enough to produce reliable code. Instead, we have to write programs in a manner that will help insure that errors are caught or avoided.
Top-Down Implementation: Top down implementation begins with the user-invoked module and works toward the modules that do not call any other modules. The implementation may precede depth-first or breadth-first.
Bottom-Up Implementation: Implementation begins with modules that do not call any other modules and works toward the main program. Test harness (see below) is used to test individual modules. The main module constitutes the final test harness.
Stub Programming:
Stub programming is the implementation analogue of top-down and stepwise refinement. It supports incremental program development by allowing forerror and improvement. A stub program is a stripped-down, skeleton version of a final program. It doesn't implement
details of the algorithm or fulfill all the job requirements. However, it does contain rough versions of all subprograms and their parameter lists. Furthermore, it can be compiled and run. Extensive use of procedures and parameter are the difference between stub programs and prototypes. Quick and dirty prototypes should be improved--they should be rewritten. A stub program helps demonstrates that a program's structure is plausible. Its procedures and functions are unsophisticated versions of their final forms, but they allow limited use of the entire program. In particular, it may work for a limited data set. Often the high-level procedures are ready to call lower-level code, even if the more detailed subprograms haven't even been written. Such sections of code are commented out. The comment brackets can be moved, call-by-call, as the underlying procedures are actually written.
Incremental Program Development: As program become more complex, changes have a tendency to introduce unexpected effects. Incremental programming tries to isolate the effects of changes. We add new features in preference to adding new functions, and add new function rather than writing new programs. The program implementation model becomes:
11.2 Maintenance: -
Once the software is delivered and deployed, then maintenance phase starts. Software requires maintenance because there are some residual errors remaining in the system that must be removed as they discovered. Maintenance involves understanding the existing software (code and related documents), understanding the effect of change, making the changes, testing the new changes, and retesting the old parts that were not changed. The complexity of the maintenance task makes maintenance the most costly activity in the life of software product. It is believed that almost all software that is developed has residual errors, or bugs, in them. These errors need to be removed when discovered that leads to the software change. This is called Corrective Maintenance. Corrective maintenance means repairing, processing or performance failures or making alterations because of previously ill-defined problems. Software undergoes change frequently even without bugs because the software must be upgraded and enhanced to include more features and provide more services. This also requires modification of the software. The changed software changes the environment, which in turn requires further change. This phenomenon is called the law of software evaluation. Maintenance due to this phenomenon is called adaptive maintenance. Adaptive maintenance means changing the program function. Perfect maintenance means enhancing the performance or modifying the programs according to the users additional or changing needs. The keys to reduce the need for maintenance are:
1. 2. 3.
More accurately defining the users requirement during system development. Preparation of system documentation in a better way. Using more effective ways for designing processing logic and communicating it to project team members.
4. 5.
Making better use of existing tools and techniques. Managing the system engineering process effectively.
The objective of the cost estimation is to enable the client or developer to perform a cost-benefit analysis and for project monitoring and control. When the product is delivered, the cost can be accurately determined, as all the data about the project and the resource spent can be fully known by then. The obtainable accuracy of the estimates as it varies with the different phases is shown in below figure: -
Feasibility
Requirement Analysis
System Design
Detailed Design
4.5 4 3.5 3 2.5 2 1.5 1 0.5 0 Feasibility Req. Ana. Sys. Des. Det. Des. Code & T. Accep. S/w
Cost Of Correcting Errors: According to the established S/W Engineering standard of estimating the cost of correcting errors the phase wise distribution of occurrences of errors is as given below: Requirement Analysis Design Coding 20% 30% 50%
The cost of correcting errors of different phases is not the same and depends on when the error is detected and corrected. One can perform cost estimation at any point in the software life cycle. As the cost of the project depends on the nature and characteristics of the project, at any point, the accuracy of the estimate will depend on the amount of reliable information we have about the final product. The figure depicted below shows the accuracy of the cost estimation.
On Size estimation of Schedule and Cost of the Project: this approach implies that size is the primary factor for cost; other factors have lesser effect. Here we will discuss one such model called the Constructive Cost Model (COCOMO) developed by Boehm. This model also estimates the total effort in terms of person-months of the technical project staff. The basic steps of this model are as follows: project. Adjust the effort estimate by multiplying the initial estimate with all the Obtain the initial estimate of the development effort from the estimate of
thousands of delivered lines of source code (KDLOC). Determine a set of multiplying factors from different attributes of the
multiplying factors. The initial estimate also called nominal estimate is determined by an equation of the form used in the static single-variable models, using KDLOC as the measure of size. To determine the initial effort Ei in person-months the equation used is of the type Ei = a*(KDLOC)b In COCOMO model the values of constants a and b are different with different type of projects. As our project is Organic type the values of a and b are 3.2 and 1.05 respectively. The total thousand delivered code (KDLOC) of our system has been estimated as around 2. In order to determine the multiplying factors commonly known as cost driver attributes we have taken rating of these attributes according to our requirements. From these, the effort adjustment factor (EAF) of our project has been estimated as 1.16. Now the final efforts estimate, E, of our project is obtained by multiplying the initial estimate by the EAF. i.e., E = EAF*Ei
The project duration is estimated for an Organic project by the formula D = 2.5 * E0.38 .
13. BIBLIOGRAPHY
The following books were used extensively for the project development and implementation.
1. Chuck Musciano and Bill Kennedy (1998) HTML: The Definitive Guide OReilly & Associates Ltd 2. George Koch and Kevin Loney. (1997) Oracle 8, The Complete Reference Oracle Press Edition. 3. Herbert Schildt (2001) The Complete Java Reference Tata McGraw-Hill Publishing Company Limited. 4. Marty Hall (2000) Core Servlets and JavaServer Pages Sun MicroSystem Press. 5. Matthew Siple. (1998) The Complete Guide to Java Database Programming Tata McGraw-Hill Publishing Company Limited. 6. Roger S. Pressman (1997) Software Engineering, A Practitioners Approach Tata McGraw-Hill Publishing Company Limited. 7. Professional JSP, Wrox Publications.
The following Links were searched and exploited extensively for the project development and implementation.
1. http://java.sun.com/products/jsp 2. http://www.roseindia.com