Вы находитесь на странице: 1из 36


Industrial Training Project Report

Submitted in partial fulfillment of the requirements of
Degree of Bachelor of Technology in Computer Science & Engineering

B.Tech.-Computer Science & Engineering (2011-15)
Amity School of Engineering & Technology

Industry Guide: Faculty Guide:
Mr. Rajat Vashisth Ms. Arun Prakash Agrawal
Project Delivery Manager Assistant Professor
SWAFE BPM Pvt. Ltd. CSE Dept.




It is my pleasure to acknowledge the assistance of a number of people without whose
help this project would have not been possible.

First and foremost, I would like to express my profound sense of gratitude to my guide,
Mr. Rajat Vashisth, Project Delivery Manager, SWAFE BPM Pvt. Ltd. for his enthusiastic
guidance, timely suggestions, inspiration and encouragement which I have received so
spontaneously and copiously.

I would also like to thank Mr. Arun Prakash Agrawal, Assistant Professor (Computer
Science and Engineering), Amity School of Engineering and Technology for giving his
invaluable suggestions and cooperation, which he extended, to us throughout the project.

Bhoomika Grover

Dated: 30 June, 2014
Place: New Delhi



This is to certify that the declaration made by the candidate is correct to the best of my
knowledge and belief. This is to further certify that the project entitled Employee Payroll
System is an authentic record of the candidates own work carried out by her under my
guidance and supervision. This work has not been submitted by her for the award of any other

Mr.Rajat Vashisth
Project Delivery Manager
SWAFE Business Process Management Pvt. Ltd.

Dated: 30 June, 2014
Place: New Delhi



Employee Payroll system is an application that enables users to create and store Employee
Records. This application also provides a facility which enables an administrator or an employee
to generate a Pay slip. This application is helpful to the organization as it maintains data of
employees related to that organization. Java is used to create this application as it is a platform
independent language and can be used on a standalone machine as well as on a distributed
network. Furthermore applications developed in java can be extended to Internet based
applications. Thus java was chosen to do the front end task to design this application.


Acknowledgement 2
Certificate 3
Abstract 4
1.1. Introduction to the Application 8
1.2. Purpose of the Application 8
1.3. Benefits of the Application 9
1.4. Tools, Platform and Languages Used 9
2.1. JAVA 11
2.1.1 Advantages of Java 11
2.1.2 Swings in Java 12 MVC Architecture 13 Swing features 13
2.2. JDBC 13
2.2.1. JDBC Architecture 14 Two-tier Architecture 14 Three-tier Architecture 14
2.4.2 JDBC Driver Types 15 JDBC-ODBC Bridge Driver 15 JDBC-Native API Driver 18 JDBC-Net Pure Java Driver 18 Native-Protocol Pure Java Driver 18
2.5 Microsoft Access 19
2.6 Payroll System Architecture 29





1.1 Introduction to the Application

Employee Payroll system is an application that enables users to create and store Employee
Records. This application also provides a facility which enables an administrator or an employee
to generate a Pay slip. This application is helpful to the organization as it maintains data of
employees related to that organization. Java is used to create this application as it is a platform
independent language and can be used on a standalone machine as well as on a distributed
network. Furthermore applications developed in java can be extended to Internet based
applications. Thus java was chosen to do the front end task to design this application.

There are two types of users for this system:

Admin - The Administrative Login takes the Username and the Password of the
Administrator and allows performing various functions that such as add, update and
delete an employees payroll record. The Administrator may also delete his/her account
or change password if required.

Employee - The employees can perform an update to their previously filled details and
also if theres a new user then the user can sign up as a new user and register as a new

1.2 Purpose of the Application

In this world of growing technologies everything has been digitalized. With large number
of work opportunities the Human workforce has increased. Thus there is a need of a system
which can handle such a huge data of Employees in an organization. The Employee Payroll
System simplifies the task of maintaining records because of its user friendly nature. This project
is fully integrated, flexible in design, allowing companies to select only the capabilities that
acknowledge their specific organization requirements.

1.3 Benefits of the Application

The various benefits of this application are:
Easy calculations. Accuracy in payroll calculation is necessary in every company. It
requires efficiency to pay employees the right amount of money they have earned.
Reliable backup. Keeping large amounts of data for payroll can be challenging. This
application stores your data in the database of your system because you cant store piles
of papers and data manually.
It can be easily handled by the person who has basic knowledge of computer because it
provides a user friendly environment.
Its hardware and software configuration is not very expensive.

1.4 Tools, Platform and Languages Used

In order to run this project following is the configuration which is required for smooth
running of the software.

Software Requirements
Operating System : Windows XP/7
User Interface : Swings
Programming Language : Java
IDE/Workbench : Net Beans 8.0
Database : Microsoft Office Access 2007

Hardware Requirements
Processor : Intel Core-i3
Hard Disk : 50 GB
RAM : 4 GB





The software can run on windows having an installed Java Development Kit. I have
divided the whole project into two main modules: Admin Login and Employee Login
In this project, Java has been used to complete the front end task and MS Access has been
used for developing the database. JDBC has been used to execute the SQL statements within the
query statement for maintaining the records. JDBC provides a set of classes and interfaces that
can be used to write database applications. JDBC is used to open a connection to the database,
execute the SQL statement, and close the connection when done. GUI has been made using

2.1 JAVA
Java is a high-level programming language originally developed by Sun Microsystems and
released in 1995. Java runs on a variety of platforms, such as Windows, Mac oS, and the various
versions of UNIX.
Java is guaranteed to be Write once, Run Anywhere.

2.1.1 Advantages of Java
Java is:
Object oriented: In Java, everything is an object. Java can be easily extended since it is
based on the object model.
Platform independent: Unlike many other programming languages including C and
C++, when Java is compiled, it is not compiled into platform specific machine, rather into
platform independent byte code. This byte code is distributed over the web and
interpreted by virtual Machine (JVM) on whichever platform it is being run.
Simple: Java is designed to be easy to learn. If you understand the basic concept of OOP,
Java would be easy to master.
Secure: With Java's secure feature, it enables to develop virus-free, tamper-free systems.
Authentication techniques are based on public-key encryption.

Architectural-neutral: Java compiler generates an architecture-neutral object file
format, which makes the compiled code to be executable on many processors, with the
presence of Java runtime system.
Portable: Being architectural-neutral and having no implementation dependent aspects
of the specification makes Java portable. Compiler in Java is written in ANSI C with a
clean portability boundary which is a POSIX subset.
Robust: Java makes an effort to eliminate error prone situations by emphasizing mainly
on compile time error checking and runtime checking.
Multithreaded: With Java's multithreaded feature, it is possible to write programs that
can do many tasks simultaneously. This design feature allows developers to construct
smoothly running interactive applications.
Interpreted: Java byte code is translated on the fly to native machine instructions and is
not stored anywhere. The development process is more rapid and analytical since the
linking is an incremental and lightweight process.
High Performance: With the use of Just-In-Time compilers, Java enables high
Distributed: Java is designed for the distributed environment of the internet.
Dynamic: Java is considered to be more dynamic than C or C++ since it is designed to
adapt to an evolving environment. Java programs can carry extensive amount of run-time
information that can be used to verify and resolve accesses to objects on run-time.

2.1.2 Swings in Java
Swing API is set of extensible GUI Components to ease developer's life to create JAVA based
Front End/ GUI Applications. It is build upon top of AWT API and acts as replacement of AWT
API as it has almost every control corresponding to AWT controls. Swing component follows a
Model-View-Controller architecture to fulfill the following criterias.
A single API is to be sufficient to support multiple look and feel.
API is to model driven so that highest level API is not required to have the data.
API is to use the Java Bean model so that Builder Tools and IDE can provide better
services to the developers to use it.
13 MVC Architecture
Swing API architecture follows loosely based MVC architecture in the following manner.
A Model represents component's data.
View represents visual representation of the component's data.
Controller takes the input from the user on the view and reflects the changes in
Component's data.
Swing component have Model as a separate element and View and Controller part are
clubbed in User Interface elements. Using this way, Swing has pluggable look-and-feel
architecture. Swing features
Light Weight - Swing component are independent of native operating System's API as
Swing API controls are rendered mostly using pure JAVA code instead of underlying
operating system calls.
Rich controls - Swing provides a rich set of advanced controls like Tree, Tabbed Pane,
slider, color picker, table controls
Highly Customizable - Swing controls can be customized in very easy way as visual
appearance is independent of internal representation.
Pluggable look-and-feel- SWING based GUI Application look and feel can be changed
at run time based on available values.

2.2 JDBC (Java Database Connectivity)

A JDBC is a pure Java API used to execute SQL commands. It provides a set of classes and
interfaces that are used for database application. Basic JDBC interaction can be broken down
into four steps:
Open a connection to the database.
Execute an SQL command.
Process the result.
Close the connection to the database.

2.2.1 JDBC Architecture
The JDBC API supports both two-tier and three-tier processing models for database
access. Two-tier Architecture
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. The network can be an intranet, which, for example,
connects employees within a corporation, or it can be the Internet. Fig. 2.2 shows a two-
tier model.

Fig. 2.2 JDBC Two-tier Architecture Three-tier Architecture
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. Fig. 2.3
shows a three-tier model.


Fig. 2.3 JDBC Three-tier Architecture

2.2.2 JDBC Driver Types
JDBC has defined four JDBC driver types. Each of these types meeting a different
application need. JDBC-ODBC Bridge Driver
The first type of JDBC driver is JDBC-ODBC Bridge. It is a driver that provides
JDBC access to databases through ODBC drivers. The ODBC must be configured on the
client for the bridge to work. This driver is commonly used for prototyping or when there
is no JDBC driver available for a particular DBMS. Fig. 2.4 shows the interaction of the

Fig. 2.4 JDBC-ODBC Bridge Driver

In this project, this Type 1 driver has been implemented. In the implementation of
this driver, we have to make a connection to the database and perform the basic SQL

Establishing a Database Connection
This is a two way process. First, load the JDBC driver and then make a
connection. The class name of the driver is sun.jdbc.odbc.JdbcodbcDriver. The following
line of code loads the driver:

The Class.forName() method creates an instance of the driver and registers with
the DriverManager. To establish the connection, make a call to static method
DriverManager.getConnection(), which returns a connection to the database. The
following line of code opens a connection to the database:
Connection con=DriverManager.getConnection(jdbc:odbc:PayData);

The Connection object returned from the DriverManager is an open connection to
the database. This is used to create JDBC statements that pass SQL statements to the

Perform the Basic SQL Commands
To execute any SQL command using a JDBC connection, a Statement object is
created. To execute a Statement, call the Connection.createStatement() method. It returns
a JDBC statement that will be used to send SQL statements to the database. The
following code creates a statement:
Statement st=con.createStatement();

The table has been created using Microsoft Access database system. one of the
databases is Register whose table is as follows:

Field Name Data Type
Name Text
Address Text
Phone No Number
DOB Date
Email Id Text
Login Id Text
Password Text

This ODBC data source has to be configured using ODBC Data Source
Administrator found in the Control Panel of Windows 7.
To INSERT, UPDATE, or DELETE data method executeUpdate() is invoked whose
signature is as follows:
public int executeUpdate(String sql) throws SQLException;

For inserting data into the table SQL statement INSERT is used and the code is of the
PreparedStatement ps=c.prepareStatement("insert into Register values(?,?,?,?,?,?,?)");
System.out.println("Insert Into Register(Name,Address,Ph no,DoB,EMAIL ID,LoGIN
r=s.executeQuery("SELECT * FRoM Register");
where Register is the filename and the fields correspond to Name, Address, Ph no, DOB,
EMAIL ID,LOGIN ID and Password
For updating the table entries SQL statement UPDATE is used and the following
code is used to update the table entries:
st.executeUpdate(UPDATE payroll SET Name=Amar Ujala WHERE Where


For deleting the table entry SQL statement DELETE is used and the following
code is used to delete the table entry:
st.executeUpdate(DELETE FROM payroll WHERE Name=Bhoomika);

To select the data from the table SQL statement SELECT is used and the
following code will work:
st.executeQuery(SELECT * FROM Payroll); JDBC-Native API Driver
The native to API driver converts JDBC commands to DBMS-specific native
calls. This is much like the restriction of Type 1 drivers. The client must have some
binary code loaded on its machine. These drivers do not have advantage over Type 1
drivers because they interface directly with the database. JDBC-Net Pure Java Driver
The JDBC-Net drivers are a three-tier solution. This type of driver translates
JDBC calls into a database-independent network protocol that is sent to the middleware
server. This server then translates this DBMS-independent protocol into a DBMS-
specific protocol, which is sent to a particular database. The results are then routed back
through the middleware server and sent back to the client. This type of solution makes it
possible to implement a pure Java client. It also makes it possible to swap databases
without affecting the client. Native-Protocol Pure Java Driver
The Type 4 drivers are pure drivers that communicate directly with the vendors
database. They do this by converting JDBC commands directly into the database engines
native protocol. The Type 4 drivers have a very distinct advantage over all the other
driver types. It has no additional translation or middleware layer, which improves the
performance tremendously.


2.3 Microsoft Access
Microsoft Access is a computer application used to create and manage computer-based
databases on desktop computers and/or on connected computers (a network). Microsoft Access
can be used for personal information management (PIM), in a small business to organize and
manage data, or in an enterprise to communicate with servers.
2.4 Payroll System Architecture

2.4.1 Administrative Login

Payroll System Form
Employee Login
Admin Login
Administrative Login
Input Username
and Password
open the connection
to the account
Match not
Allow to access
the databases
Display Error
Register (New
User Employee)

2.4.2 Employee Login

Insert, update or
delete entry in the
payroll record
Compute the salary
according to the rate
and salary
Search for an
Employee Login

Input Username
and Password

open the connection
to the account

Match not
Allow to access
the databases
Display Error
Update employee
details in the
register table
Sign Up as a
new user
Insert employee
details in the
register record





The following are the various screenshots of the project:

First is the Employee Payroll System Page, which shows an Admin Login to manage the
payroll records and an Employee Login to update employee information and to register a
new employee.

Fig. 3.1 Payroll System Page


When a user, that is, an administrator opens the payroll system, the following page is

Fig. 3.2 Admin Page


After the admin has been recognized, the following page is opened. An admin can add,
update, or delete employees payroll details. Also an admin can search for an employees
payrolls details.

Fig. 3.3 Payroll Form


The Administrator may change password if required.

Fig-3.4 Password Change Form

As we can see the Administrative Login page, there are many options available on the screen.
The various functions that an Administrator can perform with these options are:
The Insert, Update and Delete options are available to the Administrator so that
the Administrator maintains the Employee Database by Inserting details of new
employees and payroll, Updating the existing Employee details and Deleting the
existing records.
The Administrator can click on Change Password to change his/her password.
The Search option is available so that the Administrator can easily search for an
employee for accessing the Employee Payroll Database.


When a user, that is, an administrator opens the payroll system, the following page is

Fig. 3.4 Employee Login Page


Now, we see how the Employee Login works. When an Employee of this system enters
his/her Username and Password, the application recognizes the Employee and the
following page is opened:

Fig. 3.5 Employee Information Page

The employees can only update their details if any change is required.


When a new user, that is, a new employee signs up , the following page is opened:

Fig: 3.6 Register New Employee Page


Apart from this, two databases are maintained, namely, Register and Payroll.

The Register stores the details of the employees of SWAFE, which is required for the
User Access.

Fig. 3.7 Register


The payroll stores the details of the employees payrolls that are by maintained by
the Administrator.

Fig. 3.8 Payroll



4.1 Adequacy and Coverage
The payroll software can perform the following functions:
Stores employee information.
Print pay slips for each month.
Create and maintain a record containing all necessary records of employee payments.
Provide the user with adequate help by the user manual with the software.

4.2 Efficiency and Effectiveness
The payroll software calculates the total earnings of the employee and automatically
updates the employees earning to date.
The administrator can set different rates for employees.
The software does its calculations in a very clear and concise manner. All calculations are
guaranteed accuracy.

4.3 Productiveness
The payroll software gives the administrator the ability to keep track of employees
earnings by printing their pay slip for each month.
It gives the administrator the ability to keep records of how much they pay out as salaries
to employees.

4.4 Elegance and User-friendliness
The different tasks and functions are outlined in a very simple and clear manner for the
The interface is very simple and not complicated to allow for easy usage.

4.5 Quality assurance
The software was fully tested to ensure it is relatively error free and that it computes
results correctly, including deductions.

The software provides a better, time saving and efficient way of keeping track of
employees earnings by speeding up calculations, and reducing paperwork by keeping
efficient electronic records.

4.6 Critical Evaluation
The software overwrites employees information when re-entered. However, employee
data is discarded when the employee is deleted from the software
The software also stores every information provided by the user, but does not store
results of calculations.
The pay slip not only provides the employee with their earning, it also reflects their year-
to-date recorded earning. However, there are no reports that explicitly summarize grand
totals grouped by employees, months, or years.




5.1 Summary

The main aim of this project was to put what weve learnt in our Software engineering
class into practice. The payroll system that has been designed allows to fully exercising the
techniques of XP. The final deliverable was a simple payroll system. Furthermore, I was able to
apply the knowledge of OOP learnt in our Java classes to another language thereby giving us a
better understanding of OOP.

5.2 Overview and Interpretation of Results Attained

I was able to attain my set objectives, and this helped me gain confidence in writing my
own code and my own application. This project covers the whole definition of the Employee
Payroll System. It basically includes the requirements for managing the employees, controlling
authentication and authorization mechanism, and evaluating of employees details.

The Employee Management solution is fully integrated, modular by design, allowing
companies to select only the capabilities that address their specific organization requirements.

5.3 Recommendations on Future Improvement

There is always room for improvement, and the software I have made can also be
improved. This is especially because I had to create it within a limited time. With more time, the
software can be improved to include security and different types of users. This would be the first
step in making the software network-enabled, and eventually web-enabled. In addition, the
software can also be improved in terms of the calculations it can do, and more flexibility in the
rates used in calculations per employee.



[1] http://www.tutorialspoint.com/
[2] Java Tutorials http://www.w3resource.com/java-tutorial/
[3] http://www.w3schools.com/
[4] Herbert Schildt & Patrick Naughton, The Complete Reference Java 2 3
Edition, Tata
McGraw-Hill, New Delhi, 1999.