Industrial Training Project Report On
EMPLOYEE PAYROLL SYSTEM Submitted in partial fulfillment of the requirements of Degree of Bachelor of Technology in Computer Science & Engineering by
BHOOMIKA GROVER (A2305211325)
B.Tech.-Computer 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. ASET, AUUP
AMITY UNIVERSITY UTTAR PRADESH
1
ACKNOWLEDGEMENT
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
2
ACKNOWLEDGEMENT
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
2
CERTIFICATE 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 candidate‟s own work carried out by by her under my
guidance and supervision. This work has not been submitted by her for the award of any other degree.
Mr.Rajat Vashisth
Project Delivery Manager SWAFE Business Process Management Pvt. Ltd.
Dated: 30 June, 2014 Place: New Delhi
3
ABSTRACT
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.
4
TABLE OF CONTENTS Acknowledgement
2
Certificate
3
Abstract
4
1. INTRODUCTION
7
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. DESIGN ISSUES AND IMPLEMENTATION 2.1. JAVA
10 11
2.1.1 Advantages of Java
11
2.1.2 Swings in Java
12
2.1.2.1 MVC Architecture
13
2.1.2.2 Swing features
13
2.2. JDBC
13
2.2.1. JDBC Architecture
14
2.4.1.1 Two-tier Architecture
14
2.4.1.2 Three-tier Architecture
14
2.4.2 JDBC Driver Types
15
2.4.2.1 JDBC-ODBC Bridge Driver
15
2.4.2.2 JDBC-Native API Driver
18
2.4.2.3 JDBC-Net Pure Java Driver
18
2.4.2.4 Native-Protocol Pure Java Driver
18
2.5 Microsoft Access
19
2.6 Payroll System Architecture
29
3. IMPLEMENTATION
21
4. RESULTS AND EVALUATION
31
5. CONCLUSION AND FURTHER WORK
34
5
REFERENCES
36
6
CHAPTER-1 INTRODUCTION
7
INTRODUCTION 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 employee‟s payr oll 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 there‟s a new user then the user can sign up as a new user and register as a new employee.
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. 8
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 can‟t 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
9
CHAPTER-2 DESIGN
10
DESIGN ISSUES AND IMPLEMENTATION
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 Swings.
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 bein g 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.
11
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
performance.
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 criteria‟s.
A single API is to be sufficient to support multiple look and feel.
API is to model driven so that highest level AP I 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. 12
2.1.2.1 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.
2.1.2.2 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.
13
2.2.1 JDBC Architecture
The JDBC API supports both two-tier and three-tier processing models for database access.
2.2.1.1 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 twotier model.
Fig. 2.2 JDBC Two-tier Architecture
2.2.1.2 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.
14
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.
2.2.2.1 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 JDBC-ODBC Bridge.
Fig. 2.4 JDBC-ODBC Bridge Driver
15
Implementation
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 commands.
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: Class.forName(“sun.jdbc.odbc.JdbcodbcDriver”);
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 database.
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: 16
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‟ f ound 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 form: PreparedStatement ps=c.prepareStatement("insert into Register values(?,?,?,?,?,?,?)"); System.out.println("Insert Into Register(Name,Address,Ph no,DoB,EMAIL ID,LoGIN ID,Password)Values("+str+","+str1+","+str2+","+str3+","+str4+","+str5+","+str6+")"); r=s.executeQuery("SELECT * FRoM Register"); ps.executeUpdate(); 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 payr oll SET Name=„Amar Ujala‟ WHERE Where ID=„12‟”);
17
For deleting the table entry SQL statement DELETE is used and the following code is used to delete the table entry: st.executeUpdate(“DELETE FR OM 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 * FR OM Payroll”);
2.2.2.2 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.
2.2.2.3 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 DBMSspecific 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.
2.2.2.4 Native-Protocol Pure Java Driver
The Type 4 drivers are pure drivers that communicate directly with the vendor ‟s database. They do this by converting JDBC commands directly into the database engine‟s 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.
18
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
Payroll System Form
Employee Login
Register (New User Employee)
Admin Login
2.4.1 Administrative Login
Administrative Login
Input Username and Password
open the connection to the account
Match found
Match not found
Display Error Message
Allow to access the databases 19
Insert, update or delete entry in the payroll record
Compute the salary according to the rate and salary
Search for an employee
2.4.2 Employee Login
Employee Login
Input Username and Password
Sign Up as a new user
open the connection to the account
Insert employee details in the register record
Match found
Allow to access the databases
Match not found
Display Error Message
Update employee details in the register table
20
CHAPTER-3 IMPLEMENTATION
21
SCREENSHOTS OF THE FINAL SYSTEM The following are the various screenshots of the pr oject:
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
22
When a user, that is, an administrator opens the payroll system, the following page is opened.
Fig. 3.2 Admin Page
23
After the admin has been recognized, the following page is opened. An admin can add, update, or delete employee‟s payr oll details. Also an admin can search for an employee‟s payroll‟s details.
Fig. 3.3 Payroll Form
24
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.
25
When a user, that is, an administrator opens the payroll system, the following page is opened:
Fig. 3.4 Employee Login Page
26
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.
27
When a new user, that is, a new employee signs up , the following page is opened:
Fig: 3.6 Register New Employee Page
28
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
29
The payroll stores the details of the employee‟s payr olls that are by maintained by the Administrator.
Fig. 3.8 Payroll
30
CHAPTER-4 RESULTS AND EVALUATION
31
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 b y 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 employee‟s 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 employees.
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.
32
The software provides a better, time saving and efficient way of keeping track of employee‟s earnings by speeding up calculations, and reducing paperwork by keeping efficient electronic records.
4.6 Critical Evaluation
The software overwrites employee‟s 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 yearto-date recorded earning. However, there are no reports that explicitly summarize grand totals grouped by employees, months, or years.
33
CHAPTER-5 CONCLUSIONS AND FURTHER WORK
34
CONCLUSION
5.1 Summary
The main aim of this project was to put what we‟ve 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 add ress 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.
35