Post on 23-Oct-2015
transcript
SYNERGY – e-RECRUITMENT SYSTEM
By
Ankur Kapila
Reg No: 41502621004
Of
SRM Engineering College
A PROJECT REPORT
Submitted to the
FACULTY OF INFORMATION TECHNOLOGY AND COMMUNICATION ENGINEERING
In partial fulfillment of the requirements for the award of the degree
of
MASTER OF COMPUTER APPLICATION
June 2005
ABSTRACT
WIPRO has always recognized the need for a highly secured e-recruitment system,
which can decrease the amount of time taken for recruiting as well as reduce the hectic work of
the recruiters.
It is enabled through the intranet and Internet and can be accessed from anywhere in
the world, anytime and hence its focus is on “anytime, anyplace Recruitment”. It is used as the
interface between all classes of users through the e-recruitment process namely the recruiters,
panelists, students etc.
With the growth in the Software industry, the demand for fresh talent has been ever
increasing. Mass recruitment of freshers is now happening more that ever before. In the case of
recruiting a lot of freshers for the organizational needs, the present System is very tedious and has
a long process which consumes a lot of cycle time and energy of the Recruitment Team.
Therefore my objective would be to enhance the capabilities of ‘Synergy’ by addition
of a new module ‘Wipro University’ which would specifically be designed to meet the needs of
recruitment of freshers. The new module would be developed with the inputs from the
recruitment team, synergy team, and taking the existing system a base.
The System would be developed as per the J2EE architecture, using the model-view-
controller (MVC) design pattern. The different modules in the system will be developed using this
architecture. The applications will consist of Data Access Objects, Servlets, JSPs (Java Server
Pages), JavaScript, Java Beans and EJB (Enterprise Java Beans).Front-end screens will be
developed using Java Server Pages and the backend data will be stored using Oracle 8i.
ACKNOWLEDGEMENTS
I thank Prof. R. Venkatramani, Principal, SRM Engineering College, who gave me
this wonderful opportunity to exhibit my excellence, even though he was not directly involved in
the project but his presence was felt throughout.
I thank Prof. S. Sagayaraj, Head of Department of Computer Application, SRM
Engineering College, provided a moral support for doing my project with valuable suggestions
and guidance. Apart from the project phase, my period of being a student under him was an
education.
I thank my internal guide Asst. Prof. M. Shantha, Department of Computer
Application, SRM Engineering College, for her effort, valuable guidance, suggestions, and
constant encouragement throughout my project work.
I am indebted to my external guide Mrs. Sapna Nagaraj, Senior Project Manager,
Wipro Technologies, Bangalore, sharing her knowledge, experience, and taking personal
interest which creating excellent environment that perfectly exposed me to the world of Software
Development.
I am grateful to Mr. Girish C Nair, Project Manager and Mr. Sandesh Prabhu,
Test leader, Wipro Technologies, Bangalore, who were always there to clear all the doubts for
their valuable suggestions, cooperation and patience while doing my project work.
I wish to express my indebtedness to my beloved family members, especially my
father, mother, brother and all my friends for their unfailing moral support, without which I could
never be studying this MCA course.
TABLE OF CONTENTS
Title Page No
ABSTRACT iv
LIST OF TABLES xi
LIST OF FIGURES xii
LIST OF ABBREVIATIONS xiii
1. INTRODUCTION 1
1.1 About the Organization 1
1.2 Organizational Structure 2
1.3 Recruitment in Wipro 4
1.4 E-Recruitment System – ‘Synergy’ 4
2. PROBLEM DEFINITION AND FEASIBLITY ANALYSIS 6
2.1 Problem Definition 6
2.2 Existing System 6
2.2.1 Limitations of Existing System 7
2.3 Proposed System 8
2.3.1 Objectives of the Proposed System 8
2.3.1.1 My Perspective 8
2.3.1.2 Wipro’s Perspective 8
2.4 Requirement Analysis 9
2.4.1 Overview 9
2.4.2 Source of Requirements 9
2.4.3 Stake Holders 9
2.4.4 Process and functionalities identified 9
2.4.4.1 Job Creation 10
2.4.4.2 Test Creation 10
Title Page No
2.4.4.3 Resume Posting 11
2.4.4.4 Assign Test Id’s 11
2.4.4.5 Test Confirmation 12
2.4.4.6 Resume Processing 12
2.4.4.7 SAP Transfer 12
2.4.5 Functional Requirements 13
2.4.6 Non-functional Requirements 13
2.4.6.1 Usability 13
2.4.6.2 Compatibility 14
2.4.6.3 Performance 14
2.4.6.4 Scalability 14
2.4.6.5 Security 14
2.5 Scope of Work 14
2.5.1 Wipro University Module 14
2.6 Feasibility Analysis 15
2.6.1 Operational Feasibility 15
2.6.2 Technical Feasibility 15
2.6.3 Economical Feasibility 15
3. SOFTWARE REQUIREMENTS SPECIFICATION 16
3.1 Introduction 16
3.1.1 Purpose 16
3.1.2 Scope 16
3.2 General Description 16
3.2.1 User Perspective 16
3.2.2 Developer Perspective 17
3.3 Specific Requirements 18
3.3.1 Behavioral Requirements 18
3.3.2 Software Requirements 18
3.3.2.1 User 18
3.3.2.2 Developer 18
3.3.2.3 Server 18
3.3.3 Hardware Requirements 19
3.3.3.1 User 19
3.3.3.2 Developer 19
3.3.3.3 Server 19
3.4 System Attributes 19
3.4.1 Security 19
3.4.2 Maintainability 20
3.4.3 Portability 20
3.4.4 Reliability 20
3.4.5 Re-Usability 20
3.4.6 Efficiency 20
4. SYSTEM ENVIRONMENT 21
4.1 iPlanet Application Server 21
4.1.1 iPlanet Application Server Product Family 21
4.1.2 iPlanet Process Manager 21
4.1.3 iPlanet Application Builder 22
4.1.4 Key Features of Application Model 22
4.2 J2EE Concepts 22
4.3 Servlets 24
4.3.1 Types of Servlets 24
4.4 Java Server Pages 25
4.5 Enterprise Java Beans 26
4.5.1 Role in iPlanet Application Server Applications 26
4.5.2 EJB Interface Logic 26
4.5.3 Session Bean and Entity Bean 26
4.6 Data Access Components 27
4.6.1 Business Data Object 28
4.6.2 Data Access Objects 28
4.6.3 Data Source 28
5. SYSTEM DESIGN – PRELIMINARY 29
5.1 Introduction 29
5.2 Basic Design Approach 29
5.3 Design Concepts 30
5.3.1 Modularity 30
5.3.2 Functional Independence 30
5.3.3 Cohesion and Coupling 31
5.4 User Interface Design 31
5.5 Database Design 32
5.5.1 Normalization 32
5.6 Input / Output Design 33
5.6.1 Input Design 33
5.6.2 Output Design 34
6. SYSTEM DESIGN – DETAILED 35
6.1 Introduction 35
6.2 Database Design 35
6.2.1 Table Descriptions 36
6.2.2 Database Diagram 38
6.3 Data Flow Diagrams 39
7. CODING, TESTING AND IMPLEMENTATION 43
7.1 Coding 43
7.2 Testing 44
7.2.1 Unit Testing 45
7.2.2 Integration Testing 45
7.2.3 Validation Testing 46
Title Page No
7.2.4 Acceptance Testing 46
7.3 Implementation 46
7.4 Integration Issues 47
8. CONCLUSION AND FORESEEABLE ENHANCEMENTS 48
8.1 Conclusion 48
8.2 Foreseeable Enhancements 49
APPENDIX 1 - SCREEN SHOTS (Selected) 50
REFERENCES 59
LIST OF TABLES
Table No. Description Page No
2.1 Stake Holders of the Wipro University 9
2.2 Wipro University Job Creation 10
2.3 Wipro University Test Creation 10
2.4 Wipro University Resume Posting 11
2.5 Wipro University Assign Test 11
2.6 Wipro University Test Confirmation 12
2.7 Wipro University Process Resumes 12
2.8 Wipro University SAP Transfer 13
4.1 iPlanet Application Server Components 22
LIST OF FIGURES
Figure Description Page No
Fig 3.1 Block diagram of E-Recruitment System 17
Fig 4.1 Multi-Tiered Architecture 23
Fig 4.2 Data flow in a Multi-tier Model 24
Fig 4.3 Servlets Response-Request call 25
Fig 4.4 Model View Controller Design Pattern 26
Fig 4.5 Class Diagram for DAO pattern relationships 28
Fig 6.1 Database Diagram 38
Fig 6.2 DFD - User Login 39
Fig 6.3 DFD - Job Creation 39
Fig 6.4 DFD - Test Creation 40
Fig 6.5 DFD - Resume Posting 40
Fig 6.6 DFD - Assign Test 41
Fig 6.7 DFD - Test Confirmation 41
Fig 6.8 DFD - Resume Processing 42
Fig 6.9 DFD - SAP Transfer by Recruiter 42
Fig A 1.1 Job Create Screen 50
Fig A 1.2 Test Create Screen 51
Fig A 1.3 Assign Test Query Screen 52
Fig A 1.4 Assign Test Screen 53
Fig A 1.5 Query Screen – Process Candidates 54
Fig A 1.6 Process Candidates Screen (in part) 55
Fig A 1.7 Process Candidates Screen (contd.) 55
Fig A 1.8 SAP Transfer Screen 56
Fig A 1.9 Resume Posting Screen 57
Fig A 2.0 Candidate Desktop 58
LIST OF ABBREVIATIONS
Abbreviation Description
API Application Program Interface
B2B Business to Business
BPO Business Process Outsourcing
DAO Data Access Object
DFD Data Flow Diagram
DRM Divisional Resource Manager
EJB Enterprise Java Beans
ERP Enterprise Resource Planning
HR Human Resource
iAB iPlanet Application Builder
iAS iPlanet Application Server
IE Internet Explorer
J2EE Java 2 Enterprise Edition
JDBC Java Database Connectivity
JDK Java Development Kit
JSP Java Server Pages
MVC Model-View-Controller
NYSE New York Stock Exchange
OODBMS Object Oriented Database Management System
PAS People Allocation System
PCMM People Capability Maturity Model
RDBMS Relational Database Management System
SAP System Application Products in Data Processing
SEI Software Engineering Institute
SMS Short Messaging Service
URL Uniform Resource Locator
WAP Wireless Application Protocol
CHAPTER 1
INTRODUCTION
1.1 ABOUT THE ORGANIZATION
Wipro Ltd. being a world leader in providing IT services is focused to provide robust
software professionals. The unique selection processes brings out the best in the industry based
on its quality and expertise. Wipro translates every person into reliable and resourceful future
world leaders that catapult them way ahead of competition. Wipro has implemented value added
services to the world in different forms.
Wipro Ltd. is the first PCMM Level 5 and SEI CMM Level 5 certified IT Services
Company globally. Wipro provides comprehensive IT solutions and services, including systems
integration, Information Systems outsourcing, package implementation, software application
development and maintenance, and research and development services to corporations globally.
Wipro’s business units are Wipro Technologies, Wipro InfoTech, Wipro Consumer and Lighting,
Wipro Spectramind (now Wipro BPO).
Wipro Technologies is the global technology services division of Wipro Ltd.
(NYSE:WIT). Wipro Technologies offer a full portfolio of services across industries, delivering
measurable business benefits to the customers with six-sigma consistency. Wipro is the world's
first software services company to attain SEI Level 5 certification for software quality. Wipro has
business offices in North America, West Europe and Japan and development centers in India,
USA and UK.
Wipro Technologies today has come a long way from the time when it started off
by selling software products in the Indian market. Today its customer base is global, its employee
force is spread across the world, its equity and standing in the software services market is not a
small matter.
Wipro Technologies offers services in distinct areas which are as follows:-
• The IT Services aims at empowering the enterprise. From getting e-businesses up and
going to managing technology infrastructure, the company is focused on helping
businesses do their business better.
• The Product Design Services help companies bring defect-free products into market, in
time and within budget.
• The Service Provider Solutions address the specialized needs of the market by
providing a complete business and technology offering.
WIPRO “Applying Thought” - We promise our customers with utmost respect to
Human Values, we promise to serve our customer with Integrity through Innovation, Value
for money, solutions by Applying Thought day after day.
1.2 ORGANISATIONAL STRUCTURE
The organization structure of Wipro Technologies can be conceptually viewed as six
categories:-
• Communicating values to customers through Sales and Marketing
Sales and Marketing combined communicate Wipro’s valued added proposition to
customers, manage existing customer relationships, create new ones and coordinate the
value flow from the delivery teams to the customers.
• Executing and Delivering Values through Vertical Domains
Vertical domains represent the market segment – focused business units, which actually
execute the value proposition by delivering software services and solutions to a wide range
of customers in diverse markets. The vertical domains constitute horsepower of the
organization such as retails, corporate Wipro, Finance and Banking, Insurance, Govt.
Solutions, Wireless Services and Carrier Network Services.
• Working with verticals to facilitate E-Enabling solutions
Horizontals like “E-enabling Solutions” are organized around “Practices” which focus on
developing expertise in specific identified areas like Mobile Commerce. These “Practices”
work closely with the vertical business units in delivering value to the customers.
• Enterprise-Wide supporting Services
Central Support functions constitute horizontal functions, which provide services to the
rest of the organization. Their nature could be vastly different while the quality is the
nodal group for directing all quality initiatives and ensuring adherence to quality standards,
the Operations Support group provides physical infrastructure facilities like telephones,
transport, etc.
• Enterprise-Wide initiatives and innovation
A dynamic organization like Wipro Technologies needs to keep reinventing itself and
infuse the necessary competitive capabilities. At any given point of time, the organization
has few initiatives running which are enterprise-wide in impact and represent a strong
building block for the organization of the future such as Knowledge Management and
Innovation Initiatives.
• Physical Location Points of value creation-Development centers
Development Centers represent the physical locations where the actual delivery of
software services happens. Each city-center will have its own dedicated infrastructure. The
number of development centers for WT is expected to expand to more cities with the
objective of tapping and grooming talent locally all over India.
1.3 RECRUITMENT IN WIPRO
The planning for every division / location is on the basis of an overall manpower
plan construed at the beginning of every financial year by the respective business heads. This
manpower plan is specific to each business unit within the division and is apportioned
accordingly, based on the manpower need for each month of the financial year for both
experienced recruits and new employees.
The People Allocation System (PAS) and the Pool / Plan recruitment (Plan) should
be the focal point for day to day planning of recruitment activities for each division / location,
which is construed, based on skill forecast/profile forecast and is the micro version of the overall
manpower plan.
Every Divisional Resource Manager (DRM) has to communicate and validate the
regional plan for each of the regions namely Delhi and Mumbai at the beginning of every month
within the parameters of the overall regional recruitment plan in the format enclosed.
Every Divisional Resource Manager (DRM) should plan all recruitment against the
source plan and grade plan arrived at for each of the defined sources.
1.4 E-RECRUITMENT SYSTEM – ‘SYNERGY’
The e-recruitment system ‘Synergy’ handles the whole of the recruitment process for
Wipro Technologies, Wipro Infotech, and Wipro BPO. By making the process E-enabled there is
no flow of documents from one location to another and this also saves the overall cycle time for
the whole process. This project also removes any type of location dependency in the overall
recruitment process.
WIPRO maintains a fully integrated end-to-end web enabled system, which integrates
with third party systems namely PAS (requirement information), SAP (offer data), TEDWEB
(employee referral); Source Desktops (jobs view), Finance (auto vendor payment) and Job Sites
(post resumes).
It is enabled through the intranet and Internet and can be accessed from anywhere in
the world, anytime and hence its focus is on “Anytime, Anyplace Recruitment”. It is used as
the interface between all classes of users through the e-recruitment process namely the recruiters,
panelists, college student etc.
The Recruitment Systems project has different modules, each module serving
different functional and technical aspects of the recruitment process to achieve end-to-end
automation of recruitment process of the organization.
CHAPTER 2
PROBLEM DEFINITION AND FEASIBILITY ANALYSIS
2.1 PROBLEM DEFINITION
The e-Recruitment System is specifically developed to cater to the recruitment
requirements of Wipro Ltd. The application handles the whole flow of employee hiring in Wipro
Technologies, Wipro Infotech and Wipro BPO. The system was developed with an aim to reduce
the manual processes involved in recruitment to bare minimum, by and large making the process
e-enabled reducing the flow of documents from one location to another and reducing overall
cycle time.
As with any live project the requirements are never static, they keep on changing during its lifetime. Any successful project not only caters the current requirements, but should be flexible enough to accommodate the changing requirements otherwise it would become obsolete. It should be scalable both vertically and horizontally, by vertically scalability we mean that it should be able to incorporate totally new requirements and functionality which were not there during its development, by horizontal scalability we mean that it should be able incorporate changes in the existing processes being handled by it.
‘Synergy’ is an excellent system which handles almost all aspects of recruitment process and is constantly evolving to meet the changing requirements. This can be amply demonstrated by the existence of this project.
2.2 EXISTING SYSTEM
The e-recruitment system ‘Synergy’ handles the whole of the recruitment process for
Wipro Technologies, Wipro Infotech, and Wipro BPO. Its a fully integrated end-to-end web
enabled system, which integrates with third party systems namely PAS (requirement information),
SAP (offer data), TEDWEB (employee referral), Source Desktops (jobs view), Finance (auto
vendor payment) and Job Sites (post resumes).
It is enabled through the intranet and Internet and can be accessed from anywhere in
the world, anytime and hence its focus is on “Anytime, Anyplace Recruitment”. It is used as
the interface between all classes of users through the E-recruitment process namely the recruiters,
panelists, College Students, etc.
The Recruitment Systems project has different modules, each module serving
different functional and technical aspects of the recruitment process to achieve end-to-end
automation of recruitment process of the organization.
2.2.1 Limitations of Existing System
With the growth in the Software industry, the demand for fresh talent has been ever
increasing. Mass recruitment of freshers is now happening more that ever before. In the case of
recruiting a lot of Fresher for the Organizational needs, the present System is very tedious and has
a long process which consumes a lot of Cycle Time and energy for the Recruitment Team. This is
primarily because the recruitment system and process followed was for the recruitment of
individual candidates, involving various procedures and processes which are either not required or
not appropriate for mass hiring’s. For example, a candidate can have up to five technical and two
HR interviews in synergy, while for a fresher only one technical and one HR interview is
sufficient.
Challenges for fresher recruitment:
• Large amount of people to be recruited.
• Different process to be followed.
• Creation of tests.
• Date and time based resume posting.
• Auto population of details.
• Criteria based searching, of resumes.
• Automated confirmation.
2.3 PROPOSED SYSTEM
Recruitment is a major activity in Wipro Technologies, Wipro InfoTech and Wipro
Spectramind. All the Recruitment activities happen through Synergy – an internal web-enabled
Recruitment System developed by Information Systems Team of Wipro Technologies.
In the case of recruiting a lot of Fresher for the Organizational needs, the present System is very
tedious and has a very long process which will consume a lot of time and energy of the
Recruitment Team. Hence, the need is for the Wipro University recruitment feature.
2.3.1 Objective of the Proposed System
2.3.1.1 My Perspective
Here, my main Objective is to enhance the existing Recruitment System of Wipro
Ltd. by adding of a module namely - Wipro University. With the addition of new features I aim at
the following:
• Enable Wipro to recruit the best available talent in the Industry
• Reduce the Cycle time of Hiring
• Cater to the need of Mass Hiring of Freshers
2.3.1.2 Wipro’s Perspective
From Wipro’s perspective, this dissertation work will provide value added features
which can be used by all the companies of Wipro Limited for Recruitment Purposes. So
enhancing the e-Recruitment system would improve the quality of the worldwide Recruitment
Activities happening in Wipro Limited.
2.4 REQUIREMENT ANALYSIS
2.4.1 Overview
Currently recruitment process for freshers system is only partly automated. Recruiters
manually plan for Tests, ask Candidates to attend the Test. The resumes of selected candidates are
updated in synergy manually from there on the automated process takes on which takes care of
scheduling of interviews and selection process till the selected candidates get offered and finally
join the company.
2.4.2 Source of Requirement
The requirement would be gathered with constant input from the
Manager – Strategic Resourcing and his Team Members.
2.4.3 Stake Holders
No. Stakeholder Role of the Stakeholder
1 Recruitment Team
- Resource Managers,
- Recruiters,
- Support Personnel
Responsible for the overall recruitment
process.
2 Candidates Candidates are responsible for Posting
Resumes and Taking Tests
Table 2.1 Stake Holders of the Wipro University
2.4.4 Processes and Functionalities Identified
Based on the inputs from the Recruitment Team, the following process has been
identified for Wipro University as summarized below.
2.4.4.1 Job Creation
The creation of Wipro University jobs would be done by the recruiter as per requirements.
No. Action Taken System Response 1 Recruiter logs in and uses a Job
Create feature
Job should be created only for the
Permissible Division, Sub-Division,
Location and Experience Band.
2 Recruiter fills in the Job Details or
had chosen Auto fill option and
clicks on Submit
Job would get created and Job Code would
be displayed. Job Code should be available
in the Career Site till the date of closure.
Table 2.2 Wipro University Job Creation
2.4.4.2 Test Creation
Test’s need to be created for Wipro University jobs, before the job becomes available
and the resumes can be posted against it. Any number of test’s can be created for a job.
No. Action Taken System Response
1 System Admin logs in and uses the
Create Test Id feature where-in
he/she fills in all the Test Details
and clicks on Submit.
Test Id should get generated.
Table 2.3 Wipro University Test Creation
2.4.4.3 Resume Posting
Candidates should be able to view the jobs for which tests have been created and post
resumes against those jobs.
No. Action Taken System Response
1 Search and View Jobs All the jobs based on the search criteria should be displayed
2 Apply against job by posting of resumes.
Reference number identifying the candidate and resume to be generated. Also unique user id, and password generated to be sent to the mail id of candidate
Table 2.4 Wipro University Resume Posting
2.4.6.1 Assigning Test-Id’s
The recruiter should be able to view and assign test id to resumes posted against his
permissible jobs. An option to search the resumes based on specific criteria’s as per his
requirements should also be provided. Mails would be sent to the candidate informing them the
test schedule and venue details.
Step Action Taken System Response
1 Recruiter logs in and uses assign
Test Id feature
Recruiter should get all the permissible Jobs
and the Resumes assigned to those Jobs
2 Resumes to be tagged to the Test
Ids
Mails would be sent to the Candidates
Table 2.5 Wipro University Assign Test
2.4.4.5 Test Confirmation
The candidate needs to confirm his appearance for the test, by logging in with his
user id and password mailed to him earlier. There should also be an option to capture the
candidate comments.
Step Action Taken System Response
1 Candidate logs in and confirms /
rejects the test.
Capture the candidate comments and
update the candidate response.
Table 2.6 Wipro University Test Confirmation
2.4.4.6 Resume Processing
Once the candidate has taken the test, the details of the test will be updated by the
recruiter. The candidate will be processed based on the selection criteria; a screen is to be
provided where the assessment details and status of candidate can be updated.
Step Action Taken System Response
1 Processing of test assigned
candidates
Assessment details and status to be sent to
the Candidates for selection
Table 2.7 Wipro University Process Resumes
2.4.4.7 SAP Transfer
Once the candidates have been offered, the recruiter can transfer the candidate details
to SAP using the SAP transfer feature.
Step Action Taken System Response
1 Recruiter logs in and uses the SAP
Transfer feature
All the offered Candidates would be
displayed
2 Recruiter fills in SAP Transfer
details and clicks on Submit.
Data would be sent to SAP and an
Applicant Id would get generated.
Table 2.8 Wipro University SAP Transfer
2.4.5 Functional Requirements
• The Mails in the System would be based on the mail formats provided by User
• The following templates are designed by me for implementation:
o Jobs - Creation and Modification Template
o Test Id - Creation and Modification template
o Assign Test Id – Query and Report Screen template
o Process Candidates – Query Screen template
o Process Candidates – Report Screen template
o Resume Posting – Jobs Query and Resume Details Template
• Appropriate Screens for all the processes identified above.
2.4.6 Non-functional Requirements
2.4.6.1 Usability
The users of the system are Recruitment Team, Candidates and Support Personnel.
• Should be User friendly, application to be used without any training.
• The user interface should be easy to start, work upon and to exit.
• Users should be able to come out of the System by clicking Logout link.
• At any point of time the User should be able to go to the Home Page
2.4.6.2 Compatibility
The design of the application should integrate seamlessly into the existing system,
providing the enhanced functionality without undue side affects.
2.4.6.3 Performance
The performance of the application should be fast. Whenever more records are to be
displayed the System should display only a set of records on the first request and should display
the subsequent sets on the subsequent requests
2.4.6.4 Scalability
This should be easily scalable to a bigger module which will take care of other related
activities, if any coming in the future.
2.4.6.5 Security
Each User should be validated against the User Id and password. The system should
ensure that only authorized people are allowed to enter into this system for their corresponding
activities.
2.5 SCOPE OF WORK
2.5.1 Wipro University Module
This module is geared towards the recruitment of freshers into Wipro Ltd. providing
the following features:-
• Creation of Jobs as per Requirements.
• Creating/modifying Test for jobs.
• Posting of Resumes by Candidates.
• Assigning Candidates to a Test.
• Confirmation of Test by Candidate
• Assessing the Candidates based on the Performance in the Test
• Offering the suitable Candidates after Technical and HR Interviews
2.6 FEASIBILITY ANALYSIS
It is important to evaluate the feasibility of a project in the initial phases of the project
so that scarcity of resources does not slow down development at a later stage. The main aim of
the feasibility analysis is to determine whether the project at hand is worth it both monetarily as
well as in terms of the effort.
The analysis comprised of the study of the following:-
• Operational Feasibility
• Technical Feasibility
• Economical Feasibility
2.6.1 Operational Feasibility
Since the developed system is user-friendly it is easy to operate and the programmer
finds it very easy to use. The operation is very easy and feasible. Hence the system is operationally
feasible.
2.6.2 Technical Feasibility
Since the system to be developed is an enhancement to the existing system, the
required software and hardware is already available. Hence the system is technically feasible.
2.6.3 Economic Feasibility
Since the system to be developed is an enhancement to the existing system, all the
required software and hardware is already available, therefore no expense is required for the
purchase of software and hardware. Hence the project is feasible with enormous gains in various
areas.
CHAPTER 3
SOFTWARE REQUIREMENTS SPECIFICATION
3.1 INTRODUCTION
3.1.1 Purpose
The Software Requirement Specification document is for the purpose of reference to
ensure that the requirements for the development and successful completion of the project are
met. It is an agreement between the customer and the developer that the specifications have been
clearly understood, the analysis been done properly and the design heading in the right direction.
3.1.2 Scope
Unless otherwise change is requested for, this document describes the
functionality, performance, constraints, interface and reliability for the entire life cycle of the
project.
3.2 GENERAL DESCRIPTION
3.2.1 User Perspective
The synergy provides easy interface and user can easily interact with system. Users are
provided with separate desktops, specially customized to their role, the desktop provides easy to
use dropdown menus that can be used access to various features quickly and easily. Help links are
provided throughout, which can be clicked to view the help file for the current screen in case the
user has some doubt.
3.2.2 Developer Perspective
The system provides a challenge for the developer because working on enhancements
of an existing system needs lot of patience and understanding of the existing system and
procedures. Exceptional programming skills in the relevant languages and understanding of the
various technical issues related is also required.
Fig 3.1 Block diagram of E- Recruitment System.
• Man Power
Indenting • Requirement
Generation
• Job Posting • Resume
Updation • Query/Search
Module • Interview
Scheduling Module
• Security • Planning And
Indenting Module
• Maintenance Module
• Offer Generation Module
• Campus • Reports
• Offer Generation
• Employee Profiles
• Joining • Invoicing
PAS/PLAN Requirements
Recruitment System
SAP
WOLTS
• Campus
Resumes with Test Results
3.3 SPECIFIC REQUIREMENTS
3.3.1 Behavioral Requirements
• The system should be able to provide means for efficient searching.
• The system should provide appropriate error, warning, and alert messages.
• The user interface should be standard and intuitive throughout.
• The system should enable reliability and correctness of data at any point of time.
• The system should incorporate all the validations and verifications.
3.3.2 Software Requirements
3.3.2.1 User
OS : Windows 9x/NT/XP/2000, Solaris, Linux.
Browsers : Netscape 4.6 / IE 5.0 or Compatible
3.3.2.2 Developer
OS : Windows NT/2000
Language : HTML, Java script, Java, EJB, Servlets
Compiler and Linker : JDK 1.2.2
Database : Oracle 8i
Application/Web Server : iAB / iAS 6.0/ iPlanet 4.1 Web Server
Browsers : Netscape 4.6 / IE 5.0 or compatible
3.3.2.3 Server
OS : Solaris 2.8
Language : HTML, Java script, Java, EJB, Servlets
Compiler and Linker : JDK 1.2.2
Database : Oracle 8i
Application/Web Server : iAB / iAS 6.0/iPlanet 4.1 Web Server
3.3.3 Hardware Requirements
3.3.3.1 User
System : IBM Compatible PC's
Processor : Pentium and above
RAM : 32 MB onwards
HDD : 2 GB
3.3.3.2 Developer
System : IBM Compatible PC's
Processor : PIII 600 MHz. or better
RAM : 256 Mb onwards
HDD : 10 GB
3.3.3.3 Server
System : IBM Compatible PC's
Processor : PIII 600 MHz. or better
RAM : 256 Mb onwards
HDD : 10 GB
3.4 SYSTEM ATTRIBUTES
3.4.1 Security
Security has to be enforced at all levels. It’s done by passwords, user rights checked at
all levels and encryption, and having a good security policy. Only hashed passwords are stored,
with only administrator being able to reset the passwords. Before a user is allowed to perform any
operation his rights are checked to make sure he is authorized to perform the operation. Security
policy is enforced by checking for weak passwords, forcing change of password after predefined
number of days, and not allowing past 5 passwords to be used again.
3.4.2 Maintainability
Provide logging of errors for locating and fixing an error. The modules are to be
clearly documented and possess the least degree of coupling so that they can be independently
modified.
3.4.3 Portability
The effort required to transfer a program from one hardware/software system environment to another. Synergy is developed using java technologies which are platform independent and since its online system the only client side requirement is a browser compatible with IE5.0 or Netscape 4.7.
3.4.4 Reliability
Reliability is the extent to which a program can be expected to perform its intended function under extreme circumstances with required precision. Synergy is fault tolerant and uses transactions to that guarantee data consistency to great extent.
3.4.5 Re-Usability
Code pertaining to the general functionalities can be reused since they are generic.
It helps in preventing the wastage of time spent in re-writing same code and functionality
which has already been developed and in use. In current scenario it would be java beans, EJB,
java script validations etc. that can be easily re-used.
3.4.6 Efficiency
The system should be highly efficient in providing the intended functionalities
through efficient code that puts minimum load on the system. The less the load system puts
on the server the better will be the performance of the server and greater amount of clients
the server can support.
CHAPTER 4
SYSTEM ENVIRONMENT
4.1 IPLANET APPLICATION SERVER
iPlanet Application Server software provides a most robust e-commerce platform for
delivering innovative and leading edge application services to a broad range of servers, clients, and
devices.
Built on a proven heritage of world-class scalability, reliability, and performance, the
iPlanet Application Server delivers on the requirements for global e-commerce success by
ensuring rapid time-to-market, and the ability to leverage information systems and business
processes across the extended enterprise.
4.1.1 iPlanet Application Server Product Family
In addition to the core application server, the iPlanet application Server Product line
includes a comprehensive set of products and tools to help quickly and efficiently create business
critical applications. These include:
4.1.2 iPlanet Process Manager
A comprehensive web-based designing, deploying, managing, and participating in
automated business processes such as claims management, customer self service, and order
fulfillment. An intuitive development environment and advanced scalability and reliability features
allow an enterprise to easily extend information on Enterprise Resource Planning (ERP) systems,
mainframes, and custom applications to employees, partners and suppliers.
4.1.3 iPlanet Application Builder
An Internet application development tool designed to simplify the creation of multi-
tiered enterprise-class applications that run on iPlanet Application Server. By targeting the
distributed multi-tier application model of iPlanet Application Server, iPlanet Application Builder
enables developers to rapidly build sophisticated, business-critical web applications for the
Internet.
4.1.4 Key Features of the Application Model
The iPlanet Application Server application model divides an application into multi
layers: Presentation, business logic, and data access. Presentation layer is further separated to
distinguish page layout and presentation logic. Data access refers to both databases and other data
sources.
Functionality in Application Application Components
Presentation Layout Servlets
Page Layout Java Server Pages
Business Logic Enterprise Java Beans
Database Access EJB using JDBC; query files
Access to other data sources Connectors, Mailing System
Table 4.1 iPlanet Application Server Components
4.2 J2EE CONCEPTS
The J2EE platform is an open environment for developing and deploying multi tiered
services where thin–client applications invoke business logic that executes on an application
server such as the iPlanet Application Server. It comprises of a set of services, application
programming interfaces, and protocols.
Presentation Application Logic
Logic
Layout
Business
Data Access
Fig 4.1 Multi-Tiered Architecture
In the graphic above, the Servlets receives the request, validates input, calls the
session bean and calls the JSP engine. The JSP engine formats the HTML and responds to the
client. The session bean validates the request, executes the process, and enforces transactions. The
entity beans manages the data.
In the multi-tiered model, the first tier is the client and is usually a web browser or
stand-alone java based application. This invokes the business logic on one or more middle tiers
Servlets
JSP
Session
Entity
Entity Bean
running on a dedicated hardware, which in turn access data from the Enterprise Information
Service on the third tier.
In the middle tier, business logic is implemented using Enterprise JavaBeans
components (EJB components), while the presentation logic is implemented using Java Server
Pages and Servlets. The presentation layer of the model allows easy access to the middle tier
business functions via JSP pages and Servlets, where JSP technology allows developers to present
dynamically created web pages.
Fig 4.2 Data flow in a Multi-tier Model
4.3 SERVLETS
D
Browser
Desktop
Web Server
EJB Container
Pure HTML
Java Applications
J2EE Platform
Java Servlets
EJB
JSP EJB
EJB JSP
J2EE Platform
Client- Side Presentation
Server- Side Presentation
Server- Side Business Logic
Enterprise Information Systems
Servlets run on an application server or Web server rather than in a Web browser. In
iPlanet Application Server, Servlets make up the presentation logic of an application by acting as a
central dispatcher for the application by processing form input, invoking business logic
components by accessing EJB, and formatting page output using JSP pages
4.3.1 Types of Servlets
• Generic Servlets extend javax.servlet.GenericServlet. Generic Servlets are protocol
independent, meaning that they contain no inherent support for HTTP or any other
transport protocol.
• HTTP Servlets extend javax.servlet.HttpServlet. These Servlets have built-in support
for the HTTP protocol and are much more useful in an iPlanet Application Server
environment.
For generic Servlets, you simply override the service() method to provide routines
for handling requests. HTTP Servlets provide a service method that automatically routes the
request to another method in the Servlets based on which HTTP transfer method is used, so for
HTTP Servlets you would override doPost() to process POST requests, doGet() to process
GET requests, and so on.
4.4 JAVA SERVER PAGES
Java Server Pages (JSP) are HTML pages with embedded Java based code, which
enables complex server side processing and allows conditional output and communicate with
other objects in your application.
JSP pages are compiled into Servlets, either when installed or the first time they are
called. This makes JSP pages available to the application environment as standard objects and
enables them to be called from a client using a URL.
Fig 4.3 Servlets Response-Request call
JSP pages run inside a Java process on the server. This process, called a JSP engine, is
responsible for interpreting JSP-specific tags and performing the actions they specify in order to
generate dynamic content. This content, along with any template data surrounding it, is assembled
into a page for output and returned to the caller.
The response object contains a reference to the calling client, and this is where a JSP
engine presents the page that it creates. If you call a JSP engine from a Servlets using the
forward() method from the RequestDispatcher interface, forward() provides the response
object as a parameter to the JSP.
4.5 ENTERPRISE JAVABEANS
4.5.1 Role in iPlanet Application Server Applications
EJB components do the vast majority of business logic and data processing in an
iPlanet Application Server. When a user invokes an iPlanet Application Server application Servlets
from a browser, the Servlets, in turn, invokes one or more EJB components to do the bulk of the
application’s business logic and data processing. For example, the Servlets may load a JSP page to
the user’s browser to request a user name and password, and the Servlets also passes the user’s
input to a session bean to validate the input.
Fig 4.4 Model View Controller Design Pattern
4.5.2 EJB Interface Logic
Once a valid user name and password combination is accepted, the Servlets might
instantiate one or more entity bean and session beans to execute the application’s business logic,
and then terminate. The beans themselves might instantiate other entity or session beans to do
further business logic and data processing.
4.5.3 Session Beans and Entity Beans
There are two kinds of EJB components: entity beans and session beans. Each of
these bean types is used differently in a server application. An EJB component can be an object
that represents a stateless service, an object that represents a session with a particular client (and
which automatically maintains state across multiple client-invoked methods), or can be a
persistent entity object possibly shared among multiple clients.
The contract system uses only session beans. Session EJB components typically have the
following characteristics:
• They execute in relation to a single client.
• Support for transaction management according to property settings.
• Optionally, they update shared data in an underlying database.
• They are relatively short-lived.
• They will not survive a server crash.
JSP User Servlets EJB Business Logic DB
4.6 DATA ACCESS COMPONENTS
When business components-entity beans, session beans, and even presentation
components like Servlets and helper objects for Java Server Pages (JSP) pages --need to access a
data source, they can use the appropriate API to achieve connectivity and manipulate the data
source.
But by including the connectivity and data access code within these components
introduces a tight coupling between the components and the data source implementation. Such
code dependencies in components make it difficult to migrate the application from one type of
data source to another. When the data source changes the components need to be modified in
order to make them work with the new data source. We use a Data Access Object (DAO) to
abstract and encapsulate all access to the data source. The DAO manages the connection with the
data source to obtain and store data.
The business component that relies on the DAO uses the simpler interface exposed
by the DAO for its clients. The DAO completely hides the data source implementation details
from its clients. Because the interface exposed by the DAO to clients does not change when the
underlying data source implementation changes, this pattern allows the DAO to adapt to different
storage schemes without affecting its clients or business components.
Fig 4.5 Class Diagram for DAO pattern relationships
4.6.1 Business Objects
The Business Object represents the data client. It is the object that requires access to
the data source to obtain and store data. A Business Object may be implemented as a session
bean, entity bean, or some other Java object, in addition to a Servlets or helper bean that accesses
the data source.
4.6.2 Data Access Objects
Data Access Object is the primary object of this pattern. The Data Access Object
abstracts the underlying data access implementation for the Business Object to enable transparent
access to the data source. The Business Object also delegates data load and store operations to the
Data Access Object.
4.6.3 Data Source
This represents the source of the data. A data source could be a database such as an
RDBMS, OODBMS, XML repository, flat file system, and so forth. A data source can also be
another system (legacy/mainframe), service (B2B service or credit card bureau), or any other kind
of data repository.
CHAPTER 5
SYSTEM DESIGN - PRELIMINARY
5.1 INTRODUCTION
System design is a solution, how to approach to the creation of a system. This
important phase provides the understanding and procedural details necessary for implementing
the system recommended in the feasibility study. The design step produces a data design, user
interface design, modular design and input/output design. From a project management point of
view, software design is done in two steps – preliminary design and detailed design. Preliminary
design is concerned with the transformation of into data and software architecture. Detailed
design focuses on refinements to the architectural representation that leads to detailed data
structure and algorithmic representations of software.
5.2 BASIC DESIGN APPROACH
During the software design, abstraction allows us to organize and channel our process
by postponing structural considerations until the functional characteristics, data streams, and data
stores have been established. Data abstraction involves specifying legal operations objects,
representation and manipulation details are suppressed. Design is the bridge between customer
requirements and implementation that satisfies the customer’s requirements.
• Verification that the software satisfies the customer’s needs.
• Verification that the design satisfies the requirements definition.
5.3 DESIGN CONCEPTS
5.3.1 Modularity
The concept of modularity in computer software has been espoused for almost five
decades. Software architecture embodies modularity, that is, software is divided into separately
named and addressable components, often called modules that are integrated to satisfy problem
requirements. “Modularity is the single attribute of software that allows a program to be
intellectually manageable”. Meyer defines five criteria that enable us to evaluate a design method
with respect to its ability an effective modular system.
• Modular decomposability: - If a design method provides a systematic mechanism for
decomposing the problem into sub-problems, it will reduce the complexity of overall
problem, thereby achieving an effective modular solution. For example job posting
module is divided in to 6 different sub modules.
• Modular composability: - If a design method enables existing design components to be
assembled into new system, it will yield a modular solution that does not reinvent the
wheel.
• Modular understandability: - If a module can be understood as a stand alone unit, it
will be easier to build and easier to change.
• Modular continuity: - If a small changes in the system requirements result in changes to
individual modules, rather than system wide changes, the impact of change-induced side
effects will be minimized.
5.3.2 Functional Independence
The concept of functional independence is the direct outgrowth of modular design
and the concepts of abstraction and information hiding. Functional independence is achieved by
developing self sufficient modules with an aversion to excessive interaction with other modules.
Since the functional independence may be compartmentalized the interface are simplified. Error
propagation may be reduced, independent modules are easier to test and maintain because
secondary effects caused are limited. Functional independence helps in making modules reusable.
5.3.3 Cohesion and Coupling
Cohesion is a natural extension of the information hiding concept described a
cohesive module performs a single task within the software procedure, requiring little interaction
with the procedure being performed in the other parts of a program. It is important to strive for
high cohesion and recognize low cohesion so that software design can be modified to achieve
greater function independence. A module that performs a set of tasks that relate to each other
loosely, if at all, is termed coincidentally cohesive.
Coupling is a measure of interconnection among modules in a program structure.
Like cohesion, coupling may be represented on a spectrum. Coupling depends on the interface
complexity between modules, the point at which entry or reference is made to a module, and what
data pass across the interface.
5.4 USER INTERFACE DESIGN
Four different models come into play when a user interface is to be designed. The
software engineer creates a design model, a human engineer establishes a user model, and the
end-user develops a mental image that is often creating system image. Unfortunately, each of
these models may differ significantly. The role of interface designer is to reconcile these
differences and derive a consistent representation of the interface.
Users of Synergy are given below:-
• Recruitment Team / Employees
• Partners / Staffing agencies
• Candidates
For each user there is different interface. A design model of the entire system
incorporates data, architectural, interface, and procedural representations of the software. The
user interface design process encompasses four distinct framework activities
• User, task and environment analysis and modeling
• Interface design
• Interface construction
5.5 DATABASE DESIGN
Oracle 8i is chosen for developing the database. For the optimum design of the
database to have better response time and data integrity, avoid data redundancy, and for security
of the database are some of the reasons behind the choice of Oracle.
5.5.1 Normalization:
• First Normal Form (1NF) - It states that the domain of an attribute must include only
atomic value and that of any attribute in a tuple must be a single value from the domain of
the attribute. Hence 1NF disallows having a set of values or a combination of both as an
attribute value for a single tuple .In other words 1NF disallows relations within relations
or relations as attribute of tuples. The only attribute values permitted by 1NF are single
atomic values. All the tables in the database satisfy the first normal form.
• Second Normal Form (2NF) - The test for 2NF involves testing for functional
dependencies whose left hand side attribute are part of the primary key. If the primary key
contains a single attribute the test need not be applied at all. A relation schema R is in
2NF if every non prime attribute A in R is functionally dependent on the primary key of
R. All the tables with two attributes in the primary key field satisfy second normal form.
For example in the jobs master table job code is the primary key.
• Third Normal Form (3NF) - A functional dependency X->Y in a relation schema R is a
transitive dependency if there is neither a set of attributes Z that is neither a candidate key
nor a subset of any key of R and both X -> Z and Z -> Y hold true.
5.6 INPUT / OUTPUT DESIGN
5.6.1 Input Design
Input Design is the process of converting the user originated inputs to a computer
based format. Input design is a part of overall system design that needs careful attention and it
includes specifying the means by which actions are to be taken. Since the inputs have to be
planned in such a manner so as to get the relevant information, extreme care is taken to obtain
the pertinent information. If the data fed into the system is incorrect, then the processing as well
as the outputs will magnify these errors .The arrangement of messages and comments in online
conversations, as well as the placement of data, headings, and titles on display screens or source
documents, is also part of the input design. Online systems include a dialogue or conversation
between the user and the system.
• Controlling the Amount of Input - The major reasons for controlling the amount of
input are, first as the cost of labor is high, the cost of preparing the data and entering the
data is also high. Second, the input phase of computing can be a slow process that can
take many times longer than the time needed by computers to carry out their tasks.
• Avoiding Bottlenecks - A processing delay results from data preparation or data entry
operations is called a bottleneck. Avoiding bottleneck should always be one objective of
the analyst in designing input.
• Avoiding Errors - The third objective deals with errors .In one sense, the rate at which
errors occur depends on the quantity of data, since the smaller the amount of data to
input. The fewer the opportunities for errors. The manner in which the data is entered
also affects the occurrence of errors. Another aspect of avoiding error is the need to
detect the error when they do occur. These are done using input validation techniques.
• Keeping the process simple - Simplicity works and it is accepted by the users. In
contrast it takes work to get users to accept complex or confusing input designs, and there
is no guarantee of success in installing a complex system.
In my module all the above discussed points are given due importance while designing the input.
It avoids delay and provides the user with necessary support to enter the data in an easy manner.
5.6.2 Output Design
Output design refers to the results and information that are generated by the system.
It is on the basis of the outputs generated that the usefulness of the application is evaluated. The
significant points that have to be considered for the output design are as follows:
• Determine what information to present.
• Decide the medium of output.
• Arrange the presentation of information in an acceptable format.
• Decide how to distribute the output to intended recipients.
The arrangement of information on a display, or a printed document is termed as a
layout. Layout forms, sheets that describe the location characteristics and the format of the
column headings and pagination. Output design phase of system is concerned with the
convergence of information to the end user in user-friendly manner.
The output design should be efficient, intelligible so that the system relationship with
the end user is improved considerably and thereby, enhancing the decision-making process. The
contents of the output are then defined in a detailed manner during the physical design of
outputs.
CHAPTER 6
SYSTEM DESIGN - DETAILED
6.1 INTRODUCTION
Detailed design deals with the various modules in detail explaining them with
appropriate description and specifying the tables referenced and updated. This will helps the
programmers to implement the internal logic for the module in the given specification. The
design specification addresses different aspects of the design model and is completed as the
designer refines the representation of software. The design specification contains a requirement
cross-reference.
In this section, I will describe the design of the modules with respect to the
Functional, Non-functional and Data Requirements as discovered in the Requirement Analysis.
The System would be developed as per the J2EE Architecture. The different modules
in the system will be developed using this Architecture. The applications will consist of Data
Access Objects, Servlets, JSPs (Java Server Pages), JavaScript, Java Beans and EJB (Enterprise
Java Beans).
Front-end screens will be developed using Java Server Pages. The Data will be stored
in the Backend using Oracle 8i.
6.2 DATABASE DESIGN
The following tables have been designed as per requirement. The table presented here
are for illustrative purposes only.
6.2.1 Table Descriptions
• EMPLOYEE_TABLE
This table would be used to capture the employee details, such as name, email, location,
etc. which would be uniquely identifiable using the employee id.
• RESUME_TABLE
This is used to capture all the details of the candidate resumes being posted, such as
candidate name, date of birth, including the jobs against which the resumes are being
posted. All the resumes in the table would be uniquely identified by the resume number.
• RESUME_HISTORY_TABLE
This table would capture the states of the resumes as they change during the processing of
candidate, or resume modification by the candidate. The sole purpose of this is tracking,
reporting, and auditing.
• RESUME_BACKUP_TABLE
This table would be used to hold the resumes of candidates who were found suitable but,
could not be offered because of filling of requirements or any other reason.
• UNFIT_RESUME_TABLE
The resumes that have been found unfit would be moved from resume_table would be
stored here for configurable amount of time.
• JOB_TABLE
All the details of the jobs created, and their statuses would be captured in this table. Each
job is uniquely identifiable by its job code.
• LOGIN_TABLE
This table would be used to capture the details of the users who can access to the system
and what are they allowed to do. Each record in this table would be uniquely identified by
the user id.
• CANDIDATE_LOGIN_TABLE
This would be used to capture the details including candidate id and password required
for providing access to the candidate desktop.
• CANDIDATE_ASSESSMENT_TABLE
This table would be used to capture the candidate assessment details, such as marks
scored in the test, technical interview and hr interview etc. Each record in this table would
be uniquely identifiable by Candidate’s Resume number.
• TEST_DETAIL_TABLE
This table would be used to capture all the details pertaining to test’s, such as location,
date, time etc. All the records would be uniquely identified by test id.
• MASTER_TABLE
This table would be used to store all the codes used throughout, such as status, location
codes, etc. All codes will be uniquely identified by Code Id.
• CONFIG_VAL_TABLE
This table would be used to store all the configurable values, which would be used
throughout for various purposes, such as number of days the resumes should be kept, etc.
All values would be uniquely identified by Value Id.
• MAIL_TXT_TABLE
This table would be used to store the content of various mails that need to be sent. All the
mails would be uniquely identified by Mail Id.
• MAIL_DISPATCH_TABLE
All the details of mails that are to be sent will be captured in this table.
All the mails sent will be uniquely referenced by Mail Number.
Apart from the tables specified above, a set of history tables were designed for some
of the above given tables to capture the change history of the records in the table, for auditing
and reporting purposes. Whenever a record is modified in the table for which history table exists,
an entry is made into the corresponding history table for that particular record.
6.2.2 Database Diagram
Fig 6.1 Database Diagram
6.3 DATA FLOW DIAGRAMS
Fig 6.2 DFD - User Login
Validated Job Details
User Id & Rights
Codes
Job Details Job Details
Employee DetailsRECRUITER
Job
Creation
EMPLOYEE_TABLE
JOB_TABLE
MASTER_TABLE
JOB_TABLE
USER SESSION
User Id, Rights
User Id, Password & Rights
User Id & Password USER
Validation&
Authentication
LOGIN_TABLE
USER SESSION
Fig 6.3 DFD - Job Creation
Fig 6.4 DFD - Test Creation
Test Details Validated Test Details
User Id & Rights
Codes
Test Details Job Details
Employee DetailsSystem Admin
Test
Creation
EMPLOYEE_TABLE
JOB_TABLE
MASTER_TABLE
TEST_DETAIL_TABLE
USER SESSION
TEST_DETAIL_TABL
Fig 6.5 DFD - Resume Posting
Fig 6.6 DFD - Assign Test
Updated Details
User Id & Rights
Mail Data Updated
Details
Mail Text
Codes
Resume Details Job Details
Resume Details Recruiter
Assign
Test
RESUME_TABLE
JOB_TABLE
MASTER_TABLE
RESUME_HISTORY
MAIL_TXT_TABLE
MAIL_DISPATCH_TABLE
USER SESSION
RESUME_TABLE
Mail Data
Candidate Id &
Password
Resume Details
Validated Resume Details
Mail Text
Codes
Resume Details Job Details
Resume Details Candidate
Resume Posting
RESUME_TABLE
JOB_TABLE
MASTER_TABLE
RESUME_TABLE
MAIL_TXT_TABLE
CANDIDATE_LOGIN_TABLE MAIL_DISPATCH_TABLE
RESUME_BACKUP_TABLE
RESUME_HISTORY
Fig 6.7 DFD - Test Confirmation
Updated Details
Updated Details
Mail Content
Candidate Id Confirmation Details
Codes
Resume Details Candidate
Confirm
Test
RESUME_TABLE
MASTER_TABLE
USER SESSION
RESUME_HISTORY
MAIL_TXT_TABLE
Mail Data
MAIL_DISPATCH_TABLE
RESUME_TABLE
Fig 6.8 DFD - Resume Processing
Updated Details
User Id & Rights
Mail Data Candidate Details
Mail Text
CodesResume Number
Resume DetailsRecruiter
SAP
Transfer
RESUME TABLE
MASTER_TABLE
SAP
MAIL TXT TABLE
MAIL DISPATCH TABLE
USER SESSION
RESUME TABLE
RESUME HISTORY
Job Details
Updated Details
User Id & Rights
Mail Data
Assessment Details
Mail Text
Codes
Resume
Resume DetailsRecruiter
Resume
Processing
RESUME TABLE
JOB TABLE
MASTER TABLE
CANDIDATE ASSESMENT TABLE
MAIL TXT TABLE
MAIL DISPATCH TABL
USER SESSION
RESUME TABLE
UNFIT RESUME TABLE
RESUME HISTORY
Fig 6.9 DFD - SAP Transfer by Recruiter
CHAPTER 7
CODING, TESTING AND IMPLEMENTATION
7.1 CODING
Coding converts the design model into executable domain. Coding is not just
translation of design in to code but also translation of design into efficient, easily understandable
and elegant code. A server side programming along with client side scripting language is used to
establish the various data and control flows.
The following make Synergy modular and easy to extend or improved:-
• Naming Conventions - Naming conventions were followed to increase the readability
and understandability of the code. The following conventions were followed to name the
programs, methods, variables etc.
o General - The name chosen should be appropriate and meaningful, so as to make
it easy for the developer to identify the purpose of the program, variable or
function.
o Programs - Each program name should start with the first letter in uppercase of
the subsystem they belong to. Example for posting the job details the sub system
was named as Jobposting.java.
o Variable Names - The first letter of the variable name is always lowercase. For
example: in a server side program, which validates the password got from the
client, the password from the client is retrieved from the request and stored in a
variable named spassword, s standing for server. Multi-word identifiers are
internally capitalized for clarity.
o Methods - The first letter of a method is always lower case. The remaining are the
same as for variables.
• Comments - Comments play a very important role in making the code readable and
understandable. Comments should be used wherever necessary, though overuse of
comments should be avoided. It can provide a clear guide for the last phase of software
development called maintenance.
Hence precise comments are provided in the following places:-
1. When a variable is used first.
2. When a method is declared.
3. In the beginning of each program.
4. Wherever complex logic is involved.
• Statement Construction And Indentation - Proper construction of statements and
indentation are necessary to overcome ambiguity. Two blank lines with proper comments
separate the different functional blocks.
The following are some of the indentation rules followed:-
1. Using parentheses to clarify expressions.
2. Using spacing for readability of symbols.
3. Avoiding heavy nesting of loops and conditions.
7.2 TESTING
Testing of software extends throughout the coding phase and it represents the ultimate review of specification, design and coding. A series of test cases are created with an intention of testing the software. Based on the way the software reacts to these tests, one can decide whether the product that has been built is robust or not. Test cases play a vital role in directing test engineers towards their goal. Testing activity is performed by employees within the project team excluding the developers.
The tester has to checks for all possible inputs and outputs and find out any errors
and report it to the Test Leader. The Test Leader asks the developer to fix the errors reported by
the tester. The errors are reported to the Test Leader are with respect to the test cases given to
the tester. The tester has to prepare error log comments table for each test case where the error is
present.
7.2.1 Unit Testing
Each of the modules developed were tested independently. The following were
considered during the unit test:-
• The module interface is tested to ensure that information properly flows in and out of the
unit under test.
• The local data structure is examined to ensure that data stored temporarily maintains
integrity throughout the unit’s lifetime.
• Boundary conditions are tested.
• All independent paths through the control structure are exercised to ensure that all
statements in the module have been executed at least once.
• All Error handling paths are tested.
7.2.3 Integration Testing
Integration testing was done to verify the coexistence of all the modules and the
forms involved. Bottom-Up integration testing strategy was used for this purpose. After unit
testing of each of the modules, they are integrated from the bottom by combining each of the
units into clusters.
Within a module, the sub modules were loosely coupled. Hence integrating within
a sub system was not a problem. So integration testing was focused on those modules, which
were tightly coupled. After a full-fledged integration of all the modules to the homepage, the
site was tested for interface errors, connection errors etc., and was corrected to work
successfully.
7.2.4 Validation Testing
It is said that validation is successful when the software functions in a manner that
can be reasonably expected by the customer. This type of testing is very important, because it is
the only way to check whether the requirements given by the user have been completely fulfilled.
Each and every sub module was tested whether it provided the required functionality. Each input
field was tested with the validation rules specified for them.
7.2.5 Acceptance Testing
This testing was performed to check whether the developed site met all its requirements. It is a kind of validation. Hence the site was launched for a minimal set of employees and the interfacing errors found were corrected. Reasonable expectations defined in the SRS and any new changes expected were achieved.
7.2 IMPLEMENTATION
The following are the primary issues that are encountered:-
• A separate Test Server is needed for testing, because addition and modification of Servlets
and EJB require a build, which requires server restarts.
• A separate dummy database is needed for testing purpose because in data in live database
cannot be risked.
• Browser incompatibility was a major problem for achieving constant look and feel and
functionality, across browsers.
7.3 INTEGRATION ISSUES
The integration of newly developed system into an existing system poses a lot of
challenges, especially in cases of large system having a lot of complexity, because it’s possible that functionality which works fine in separate systems may not work, or worse if the integration process breaks the existing functionality in some unknown way. The integration of different units in to the system involves lots of testing on the tester’s part. The integration of a system of reasonably large size easily leads to problem areas. Finding problem areas and solving it, is a challenge.
CHAPTER 8
CONCLUSION AND FORESEEABLE ENHANCEMENTS
8.1 CONCLUSION
The success or failure of any project is ultimately decided by the users of the system,
no matter how good or efficient a system is, if it fails to meet the expectation of the users it is a
failure. Thus the goal of any system apart from other requirements is to meet or exceed the user’s
expectation.
Great care has been taken to satisfy the expectation of different users by providing a
user-friendly system so that it enables the end users to get things done easily and efficiently, the
system is configurable to great extent to allow for the customisation and fine tuning by System
administrators, the system was developed with extensibility in mind so that future requirements
can be easily incorporated by software developers. The selection of software is the building block
for the development of the system. The choice of J2EE design patterns were chosen after
carefully studying the system.
The project deals with the various recruitment activities of Wipro Technologies. The
objective of the project is determined in the manner in which the recruitment activities are
effortlessly carried out with increased efficiency and throughput. In this system best efforts have
been made to overcome the difficulties faced by the existing system. Data retrieval is made faster
and flexible search options have also been provided.
Working on this live project has been a learning experience. There was a lot of
positive feedback when the final testing of the project was over. This software is designed to
provide fast, reliable and secure access to the end-users. There are several features that can be
added and the application can be improved. Every effort has been taken to develop a well
approved system.
8.2 FORESEEABLE ENHANCEMENTS
The e-Recruitment System surely has further scope for development based on the
forthcoming requirements and the deployment of logical analysis in the development thereafter.
Given below are few of the enhancements that can be incorporated:-
• Access to Synergy via Mobile Devices (e.g. by WAP).
• Candidates can get status updates and alerts via SMS, or post resume against a new job
code via SMS.
• The test taken by candidate can be made online and integrated into ‘Synergy’. The test
scores of the candidate can then be automatically uploaded and eligible candidates can be
automatically scheduled for interview.
• A module can be developed that will allow resume search and upload from multiple
databases from different vendors.
• Context sensitive / Balloon help can be included throughout ‘Synergy’ giving tips and
examples to make it easier for novice users to use the system.
• An Error Reporting module that will take over in case of any error, and would provide
with valuable details regarding the cause of error, what was being done when error
occurred, and if possible suggest a solution.
• Advanced user query for job search, and facility to auto post resumes against jobs based
on user criteria, while informing the same to the candidate.
APPENDIX 1
SELECTED SCREEN SHOTS
REFERENCES
BOOKS
1. Bruce Eckel, “Thinking in Java”, 3rd edition. 2. Dan Malks, “Professional JSP”, Wrox Publications, Wrox Press, 2000. 3. Marty Hall, “Core Servlets and Java Server Pages”, Prentice Hall, 2000. 4. O'Reilly, “Java-Script”, O'Reilly & Associates, Inc, 2000-2003 5. Paul Perrone, Venkata S.R. "Krishna" R. Chaganti, Tom Schwenk,”J2EE Developer's
Handbook”, Sams, 2003
6. Roger S.Pressman, “Software Engineering: A Practitioner Approach”, 5th Edition, McGraw Hill, 1999.
WEBSITES
1. http://isd.wipro.com 2. http://java.sun.com
3. http://knet.wipro.com 4. http://www.codeguru.com
5. http://www.javaworld.com 6. http://www.sourceforge.net