TABLE OF CONTENTS
°
TOPIC
PAGE NO
ABSTRACT
INTRODUCTION
PURPOSE AND MOTIVATION
SYSTEM STUDY
REQUIRMENT SPECIFICATION
SYSTEM DESIGN
SYSTEM TESTING
MAINTENANCE
0} 0] a] a} w) a] | mo) —| 2
SOURCE CODE
Ss
OUTPUT
CONCLUSION
6
BIBLIOGRAPHYABSTRACT-1
A project on employee salary management system is
implemented by using Python as frontend and
MYSQL as Database storage. The purpose of this
project is to make the company easy to pay their
employees salary on time. The salary of an employee
is calculated automatically with the number of days
he/she has worked, and also the over time working
hours is also included. The payment is given with a
pay slip.CHAPTER - 2
INTRODUCTION
The purpose of Employee salary system project is to
make the company easy to pay their employees salary
on time. The salary of an employee is calculated
automatically with the number of days he/she has
worked, and also the over time working hours is also
included. The payment is given with a pay slip.CHAPTER-3
PURPOSE AND MOTIVATION
The project EMPLOYEE SALARY SYSTEM is built to help the
company to provide salary to their employee on the basis of their
work hours and over time.This include payment slip provided as
proof for the employee. So, that there will no problems in the
future.
The automation of the system will help the user in proper
perpetuation of the tasks. It requires less man power, less cost,
proper and accurate functioning. The motivation to create this
project has many sources-
> Interest to develop a good user-friendly application and
to reduce time consumption.
> To increase the knowledge horizon in technologies like
MySQL, Python.CHAPTER -—4
3.1 SYSTEM STUDY
System analysis/study is the way of studying a system with an eye
on solving it’s problem using computer. It is the most essential
part of the system analysis. System analysis consists of system
elements, process and technology. To analyze a system, we need
to study the system in detail. The analyst has to understand the
functioning and concept of the system in detail, design the
appropriate computer based system that will meet all the
requirements of the existing approach to use the computer for
problem solving. System analysis includes the following basic
concepts:
+ Preliminary investigation
+ Feasibility study
+ Detail investigation
+ Drawing up of strategies
+ Design and coding
+ Testing and training
+ Implementation
+ Required specificationCHAPTER -5
4.1 REQUIREMENT SPECIFICATIONS
4.1.1 Hardware Requirements:
System : Lenovo
Hard Disk : 120 GB.
Monitor : 15”? LED
Input Devices: Keyboard, Mouse
Ram :1GB
4.1.2 Software Requirements:
Operating system : Windows 10.
Coding Language : Python
Database : MYSQLCHAPTER —6
SYSTEM DESIGN
System design is the solution to the creation of a new system.
This phase is composed of several systems. This phase focuses on
the detail implementation of the feasible system. It emphasis on
translating design specification to performance specification.
System design has two phases of development, (i) logical design
and (ii) physical design.
During logical design phase the analyst describes inputs
(sources), output (destination), database (data source) and
procedure (data flows) all in a format that meets the user
requirements. The analyst also specifies the user needs and at a
level that virtually determines the information inand out and the
data resources. Here the logical design is done through data flow
diagram and database design. The physical testing is followed by
physical design or coding. Physical design produces the working
system by defining the design specifications which tells the
programmers exactly what the candidate system must do. The
programmers write the necessary programs that accept input from
the user, perform necessary processing on accepted data through
call and produce the required report on a hardcopy or display it
on the screen.SYSTEM TESTING
System testing is a critical aspect of Software Quality Assurance
and represents the ultimate review of specification, design and
coding. Testing is a process of executing a program with the
intent of finding an error. A good test is one that has a
probability of finding an as yet undiscovered error. The purpose
of testing is to identify and correct bugs in the developed
system. Nothing is complete without testing. Testing is the vital
to the success of the system. In the code testing the logic of
developed system is tested. For this every module of program
is executed to find an error. To perform specification test, the
examination of specifications stating what the program should
do and how it should perform under various conditions.
Unit testing focuses first on the modules in the proposed system
to locate errors. This enables to detect errors in the coding and
logic that are contained within the module alone. Those resulting
from the interaction between modules are initially avoided. In
unit testing step each module has to be checked separately.
System testing does not test the software as a whole, but rather
than integration of each module in the system. The primary
concern is the compatibility of individual modules. One has the
find areas where modules have been designed with different
specification of data lengths, type and data element name.Testing and validation are the most important after the
implementation of developed system. The system testing is
performed to ensure that there are no errors in the implemented
system. The software must be executed several times in order to
find out the errors in different modules of system. Validation
refers to the process of using the new software for developed
system in a live environment i.e., new software inside the
organization, in order to find out the errors. The validation phase
reveals the failures and the bugs in the developed system. It will
be come to know about the practical difficulties in the system
faces when operated in the true environment. By testing the code
of implemented software, the logic of the program can be
examined. A specification test is conducted to check whether
the specifications stating the program are performing under
various conditions. Apart from these tests, there are some
special tests conducted which are given below:
Peak Load Test:
This determines whether the new system will handle the volume
of activities when the system is at the peak of its processing
demand. The test has revealed that the new software for the
agency is capable of handling the demands at the peak time.Storage Test:
This determined the capacity of the new system to store
transactions data on a disk or on other files. The proposed
software has the required storage space available, because of the
use of a number of hardisks.
Performance Time Test:
This test determines the length of the time used by the system to
process transaction data. In this phase, the software developed
testing is exercising the software to uncover errors and ensure
the system meets defined requirements .Testing is done at 3
levels:
1.Unit level
2. Module level
3. Integration and systemCHAPTER-8
MAINTENANCE
Maintenance is making adaptations of the software for external
changes (requirements, changes or enhancements) and internal
changes (fixing bugs). When changes are made during the
maintenance phase all the preceding steps of the model must be
revised. There are three types of maintenance:
* Corrective (fixing bugs/errors)
+ Adaptive (updates due to environment changes)
+ Perfective (enhancements, requirements, changes).OURCE CODE
import time
import datetime
from tkinter import *
port tkinter.messagebox
import mysql.connector as msc
db = msc.connect(host = ‘localhost’ user=root’ passwd = 'zebro@123#u')
cur = db.cursor()
cur.execute("Create database if not exists salary_details")
cur.execute("Use salary_details")
cur.execute(""create table if not exists payslip(name varchar(35), address
varchar(50),employer varchar(35),
NI_number int primary key,hours int, rate float(10,2),tax float(10,2),
overtime int,grosspay float(10,2),netpay float(10,2))"
root=Tk()
root.title("Employee payroll system")
root.geometry('1350x650+0+0')
root.configure(background="powder blue")
‘Tops-Frame(root, width=1350,height=50,bd=8,ba="powder blue")Tops.pack(side=TOP)
f1=Frame(root, width=600,height=600,bd=8, be="powder blue")
fl.pack(side=LEFT)
£2-Frame(root,width=300,height=700, bd=8,bg="powder blue”)
f2.pack(side=RIGHT)
fla-Frame(f1,width=600,height=200,bd=8,bg="powder blue")
fla pack(side=-TOP)
flb=Frame({1 width=300,height=600,bd=8,bg="powder blue")
flb.pack(side=TOP)
Iblinfo=Label(Tops.font=(arial’45,'bold’),text="Employee Payment Management
system ",bd=10,fg="green")
Iblinfo.grid(row=0,column=0)
def exit():
exit=tkinter messagebox.askyesno("Employee system”,"Do you want to exit the
system")
if|exit>0:
root.destroy()
return
def reset():
Name.set("")
Address.set('"")HoursWorked.set("")
wageshour.set("")
Payable.set("")
Taxable.set("")
NetPayable.set("")
GrossPayable.set("")
OverTimeBonus.set("")
Employer.set("")
NINumber.set("")
txtpayslip.delete("1.0",END)
def enterinfo():
txtpayslip.delete("1.0",END)
txtpayslip.insert(END,"\t\tPay Slip\n\n")
txtpayslip.insert(END,"Name :\t\t"+Name.get()+"\n\n")
txtpayslip insert(END,"Address :\tit"+Address.get()+"\n\n")
txtpayslip insert(END,"Employer :\t"*+Employer.get()+"\n\n")
txtpayslip.insert(END,"NI Number :\\t"+NINumber.get()+"\n\n")
txtpayslip.insert(END,"Hours Worked :\t\t"*+Hours Worked get()+"\n\n")
txtpayslip insert(END, "Net Payable :\\t"+NetPayable.get()*"\nin")
txtpayslip insert(END." Wages per hour :\t\"*wageshour.get()+"\n\n")
txtpayslip insert(END, "Tax Paid :\i\t"+Taxable.get()+"\n\n")
txtpayslip insert(END, "Payable :\t\t"+Payable.get()+"\n\n")
def weeklywages():
txtpayslip.delete("1.0",END)
hoursworkedperweek=float(Hours Worked.get())wagesperhours=float(wageshour.get())
paydue=wagesperhours*hoursworkedperweek
paymentdue="INR" str('%.2%(paydue))
Payable.set(paymentdue)
tax=paydue*0.2
taxable="INR" str('%.2f%(tax))
Taxable.set(taxable)
netpay=paydue-tax
netpays="INR" str('%.2%(netpay))
NetPayable.set(netpays)
if hoursworkedperweek > 40:
overtimehours=(hoursworkedperweek-40)+wagesperhours* 1.5
overtime="INR",str('%. 2f%(overtimehours))
OverTimeBonus.set(overtime)
elif hoursworkedperweck<=40:
overtimepay=(hoursworkedperweek-40)+wagesperhours*1.5
overtimehrs="INR" str('%.2£%(overtimepay))
OverTimeBonus.set(overtimehrs)
a=Name.get()
b= Address.get()e= HoursWorked.get()
f= wageshour.get()
g= Taxable.get()
i= NetPayable.get()
j= GrossPayable.get()
h = OverTimeBonus.get()
c= Employer.get()
d= NINumber.get()
cur.execute(""'insert into payslip
values('{}',' 0,00. 0-0.0.0.0,.0)"-format(a,b,c,d.e,f2,hij))
db.commit()
Name=StringVar()
Address=StringVar()
HoursWorked=StringVar()
wageshour=StringVar()
Payable=StringVar()
Taxable=StringVar()
NetPayable=StringVar()
GrossPayable=StringVar()
OverTimeBonus=StringVar()
Employer=StringVar()NiNumber=StringVar()
TimeOfOrder=StringVar()
DateOfOrder=StringVar()
DateOfOrder.set(time.strRime("%d/%m/%Y"))
Label Widget
IbIName=Label(fla,text="Name"font=(‘arial’,16,,bold’),bd=20,fg-"red" bg="powd
er blue"). grid(row=0,column=0)
IblAddress=Label(fla,text="Address”,font=(‘arial’,16,’bold’),bd=20,fg="red" bg="p
owder blue").grid(row=0,column=2)
IblEmployer=Label(fla,text=" Employer", font=(arial’,1 6,'bold'),bd=20,fg="red" bg
="powder blue").grid(row=I,column=0)
IbININumber=Label(fla,text="NI
Number" font=(‘arial’,16,bold’),bd=20,fg="red",bg="powder
blue"). grid(row=1,column=2)
IblHours Worked=Label(fla,text="Hours
Worked",font=(‘arial’,16,’bold’).bd=20, fe="red", bg="powder
blue") grid(row=2,column=0)
Ib|HourlyRate=Label(fla,text="Hourly
Rate’ font=(‘arial',16,bold’),bd=20,fa="red",be="powder
blue"). grid(row=2,column=2)
IblTax=Label(fla,text="Tax",font=(arial’,16,bold),bd=20,anchor="w’,fg="red'"bg=
“powder blue").grid(row=3,column=0)
IblOver‘Fime=Label(fla,text="OverT ime" font=(arial’,16,’bold'),bd=20,fg="red",bg
="powder blue").grid(row=3,column=2)
="GrossPay",font=(‘arial’,16,’bold’),bd=20,fg="red" b=
"powder blue").grid(row=4,column=0)etxname=Entry(fla,textvariable=Name,font=(‘arial’ 16, bold!),bd=16,width=22, justi
fy="left’)
etxname.grid(row=0,column=1)
etxaddress=Entry (fa,textvariable=A dress, font=(aria’,16,'bold’),bd=16,width=22,
justify=lef’)
etxaddress.grid(row=0,column=3)
etxemployerEntry latextvariable=Employer.font=(arial,16,bold),bd=16,width=
22,justify="eft?)
etxemployer.grid(row=1,column=1)
etxhoursworked~Entry/fla,textvariable-Hours Worked, font=(arial’ 16,’bold!).bd=1
6,width=22,justify"eft)
etxhoursworked.grid(row=2,column=1)
etxwagesperhours=Entry’ (fla,textvariable=wageshour, font=(‘arial’, 6,'bold'),bd= 16,
width=22,justify='left’)
etxwagesperhours.grid(row=2,column=3)etxnin=Entry(fla,textvariable=NINumber, font=(‘arial’,16,'bold’),bd=16,width=22,ju
stify='left)
etxnin.grid(row=,column=3)
Entry fla,textvariable=Payable, font=(‘arial’,16,'bold’),bd=16,width=22
etxgrosspay.grid(row=4,column=1)
intry(fla,textvariable=NetPayable, font=(‘arial’, | 6,'bold'),bd=16,width=
22,justify='left’)
etxnetpay.grid(row=4,column=3)
etxtax-Entry(fla,textvariable=Taxable, font=(arial’, 16, bold'),bd=16,width=22,justi
fy='left’)
etxtax grid(row=3,column=1)
etxovertime=Entry fla textvariable=OverTimeBonus, font=(‘arial’,16,'bold’),bd=16,
width=22,justifyleft)
etxovertime.grid(row=3,column=3)
payslip=Label(2,textvariable=DateOfOrder, font=(‘aria’,2,"bold!),fg-"red"be="P
owder blue"). grid(row=0,column=0)txtpayslip=Text(f2,height=22,width=34,bd=16,font=(arial’,13 ,‘bold’),fg="green",b
g="powder blue")
txtpayslip.grid(row=1,column=0)
binsalary=Button(flb,text="Weekly
Salary’ padx=16,pady=16,bd=8,font=(‘aria’,16,"bold’),width=14,fg="red",be-"pow
der biue".command=weekly wages).grid(row=0,column=0)
binreset=Buttont b,text~'Reset’ padx=16,pady=16,bd=8,font(arial’,16,’bold’).wid
th=14,command=reset,fa="red",bg="powder blue").grid(row=0,column=1)
binpayslip=Button(flb,text="View
Payslip',padx=16,pady=16,bd= font=(‘arial’,16,'bold’), width= 14,command=enteri
nfo.fe="red",bg="powder blue") grid(row=0,column=2)
binexit=Button(flb,text="Exit
System',padx=1 6,pady=16,bd=8, font=(‘arial’, 16,'bold’), width= 14,command=exit, fg
="red" be="powder blue"). grid(row=0,column=3)
root.mainloop()CHAPTER-10
OUTPUT
Employee salary Management system
0/02/2022
see hate fe
CL ce
see i oyun SO
pe came PO
cn eMCHAPTER-11
CONCLUSION
The project report entitled “EMPLOYEE SALARY SYSTEM” has
come to its final stage. The system has been developed with
much care that it is free of errors and at the same time it is
efficient and less time consuming, The important thing is that the
system is robust.Also provision is provided for future
developments in the system.The entire system is secured.CHAPTER-12
BIBLIOGRAPHY
+> Computer Science by Sumita Arora
<> https://www.geeksforgeeks.org.
+ http://www. science.smith.edu/dftwiki/index.php/Color_Charts_f
or_TKinter