This document describes an employee payroll system project created using Java. The project allows users to create and store employee records and generate pay slips. It maintains employee data for an organization in a database. Java and Swing were used for the frontend, while Microsoft Access was used as the backend database. JDBC facilitates communication between the Java application and the Access database. The project benefits organizations by providing accurate payroll calculations and reliable data backup in a user-friendly system.
Download as DOCX, PDF, TXT or read online on Scribd
44%(9)44% found this document useful (9 votes)
6K views
Employee Payroll System
This document describes an employee payroll system project created using Java. The project allows users to create and store employee records and generate pay slips. It maintains employee data for an organization in a database. Java and Swing were used for the frontend, while Microsoft Access was used as the backend database. JDBC facilitates communication between the Java application and the Access database. The project benefits organizations by providing accurate payroll calculations and reliable data backup in a user-friendly system.
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 36
1
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 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
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
3
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 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 degree.
Mr.Rajat Vashisth Project Delivery Manager SWAFE Business Process Management Pvt. Ltd.
Dated: 30 June, 2014 Place: New Delhi
4
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.
5
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 10 2.1. JAVA 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 6
REFERENCES 36
7
CHAPTER-1 INTRODUCTION
8
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 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 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. 9
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
10
CHAPTER-2 DESIGN
11
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 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. 12
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 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
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. 14
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 two- tier 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.
15
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 16
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: 17
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 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 payroll SET Name=Amar Ujala WHERE Where ID=12);
18
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);
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 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.
2.2.2.4 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.
19
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 found Match not found Allow to access the databases Display Error Message Register (New User Employee) 20
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 Employee Login
Input Username and Password
open the connection to the account
Match found Match not found Allow to access the databases Display Error Message Update employee details in the register table Sign Up as a new user Insert employee details in the register record
21
CHAPTER-3 IMPLEMENTATION
22
SCREENSHOTS OF THE FINAL SYSTEM
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
23
When a user, that is, an administrator opens the payroll system, the following page is opened.
Fig. 3.2 Admin Page
24
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
25
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.
26
When a user, that is, an administrator opens the payroll system, the following page is opened:
Fig. 3.4 Employee Login Page
27
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.
28
When a new user, that is, a new employee signs up , the following page is opened:
Fig: 3.6 Register New Employee Page
29
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
30
The payroll stores the details of the employees payrolls that are by maintained by the Administrator.
Fig. 3.8 Payroll
31
CHAPTER-4 RESULTS AND EVALUATION 32
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 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. 33
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. 34
CHAPTER-5 CONCLUSIONS AND FURTHER WORK
35
CONCLUSION
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.
36
REFERENCES
[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 rd Edition, Tata McGraw-Hill, New Delhi, 1999.