Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0% found this document useful (0 votes)
50 views

Animesh Employee Management System Project Report in Python 2022

Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
50 views

Animesh Employee Management System Project Report in Python 2022

Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 47

CONTENTS

1.Certificate
2.Certificate of approval
3.Declaration
4.Acknowledgement
5.Objective & Scope of the Project
6.Theoretical Background
7.Definition of Problem
8.System Analysis & User Requirements
9.System Planning (PERT Chart)
10.Methodology adopted, System Implementation & Details of H/W& S/W used
11.Detailed Life Cycle of the Project
12.ERD, DFD
13.Process involved, Algorithm, Flowchart, Database diagram
14.Input and Output Screen Design(Snapshots)
15.Methodology used for testing
16.User/Operational Manual (security aspects, access rights, back up, controls, etc.)
17.Future enhancement
18.Conclusions

19.References
1. Objective & Scope

1.1 Objective

This is a web oriented application allows us to access the whole information about the College
Employee , staffs, Employee s, facilities etc. This application provides a virtual tour of Campus.
Here we will get the latest information about the Employee s and staffs. This generic application
designed for assisting the Employee s of an institute regarding information on the courses,
subjects, classes, assignments, grades and timetable. It also provides support that a faculty can
also check about his daily schedule, can upload assignments, and notices to the Employee s. Here
administrator will manage the accounts of the Employee and faculties, makes the timetable, and
upload the latest information about the campus.

1.2 Scope

• Employee Management: Through this service one can access the complete information
about the College Employee campus such as courses available, admission procedure,
placements, College Employee events, achievements etc.

• Employee tracking: Any company or any organization that want to check the summary
about the Employee of the College Employee , so that they will be able to choose the
particular Employee s for their campus placement And for that purpose they will be given
a particular link through which they can access the information required.

• Employee attendance status: It gives the attendance status of Employee s. Faculty will
update the attendance periodically and can be seen by Employee s and parents.
• Employee’s performance in exams: This facility provides the performance of the
Employee in each exam which is conducted by university or College Employee such as
midterm performance. Marks obtained by Employee s in exams will be updated by
faculties that can be access by Employee s and parents.

• Exam Notification: This facility notifies Employee s and parents about examination
schedule.

• Events: It will give information about different events that will be conducted by College
Employee time to time. Information about these events will be updated by administrator.
• Offline assignments: This service provides the facility to faculty to upload assignments
and to Employee s to submit these assignments offline.

• Information about staff: It will help in maintaining complete information about College
Employee faculty members such as their department, cadre, date of joining, salary, etc.
Administrator will register new faculties and remove their account when they leave the
College Employee

2. Theoretical Background
Today in College Employee s Employee details are entered manually. The Employee
details in separate records are tedious task. Referring to all these records and updating is needed.
There is a chance for more manual errors.
Problems in existing system:

• It was limited to a single system.


• It was less user-friendly.
• It have a lots of manual work (Manual system does not mean that we are working with pen
and paper, it also include working on spread sheets and other simple software's)
• It requires more no of employees need to work.
• It was time consuming process.
• The present system was very less secure.
• It is unable to generate different kinds of report.

Solution to these problems:

The development of the new system contains the following activities, which try to automate the
entire process keeping in view of the database integration approach.

• User friendliness is provided in the application with various controls.


• The system makes the overall project management much easier and flexible.
• It can be accessed over the Internet.
• Various classes have been used to provide file upload and mail features.
• There is no risk of data mismanagement at any level while the project development is
under process.

• It provides high level of security using different protocols like https etc.
3. Problem Definition

The problem is to provide the complete information about the College Employee campus. In
which the College Employee staff members, Employee s and parents can access the information
and will be familiar with College Employee campus. It will provide interactive environment for
the staff, Employee s and parents by getting knowledge of Employee attendance, remarks, exams
performances, grades, timetables, notices etc.
TECHNOLOGIES USED
CHAPTER IV

Technologies Used

SOFTWARE REQUIREMENTS:

 Technology : PYTHON
 Framework : Django
 Web Technologies : Html, JavaScript, CSS
 IDE : Pycharm
 Web Server : Django Server
 Database : SQLite3

HARDWARE REQUIREMENTS:

 Hardware : Pentium
 Speed : 1.1 GHz
 RAM : 1GB
 Hard Disk : 20

4.1 Back-End Technologies

 Python : -

Python is an interpreted, object-oriented,


high-level programming language with
dynamic semantics. Its high-level built in data structures,
combined with dynamic typing and dynamic binding, make it
very attractive for Rapid Application Development, as well as
for use as a scripting or glue language to connect existing
components \\together. Python's simple, easy to learn syntax
emphasizes readability and therefore reduces the cost of
program maintenance. Python supports modules and packages,
which encourages program modularity and code reuse. The
Python interpreter and the extensive standard library are
available in source or binary form without charge for all major
platforms,and can be freely distributed.Often, programmers
fall in love with Python because of the increased productivity it
provides. Since there is no compilation step, the edit-test-debug
cycle is incredibly fast. Debugging Python programs is easy: a
bug or bad input will never cause a segmentation fault. Instead,
when the interpreter discovers an error, it raises an exception.
When the program doesn't catch the exception, the interpreter
prints a stack trace. A source level debugger allows inspection
of local and global variables, evaluation of arbitrary
expressions, setting breakpoints, stepping through the code a
line at a time, and so on. The debugger is written in Python
itself, testifying to Python's introspective power. On the other
hand, often the quickes t way to debug program is to add a few
print statements to the source: the fast edit-test-debug
cyclemakes this simple very attractive.
 Pycharm :-

PyCharm is the most popular IDE used for Python


scripting language.This chapter will
give you an introduction to
PyCharm and explains its
features.PyCharm offers some of
the best features to its users and
developers in the following aspects −

 Code completion and inspection.


 Advanced debugging.
 Support for web programming and frameworks such as Django
and Flask.

Features of PyCharm :-

Besides, a developer will find PyCharm comfortable to


work with because of the features mentioned below −

Code Completion :-

PyCharm enables smoother code completion whether


it is for built in or for an external package.

SQL Alchemy as Debugger :-

You can set a breakpoint, pause in the debugger and


can see the SQL representation of the user
expression for SQL Language code.
Git Visualization in Editor :-

When coding in Python, queries are normal for a


developer. You can check the last commit easily in
PyCharm as it has the blue sections that can define
the difference between the last commit and the
current one.

Package Management :-

All the installed packages are displayed with proper


visual representation. This includes list of installed
packages and the ability to search and add new
packages.

 Sqlite3 Database :-
Sqliteis a self-contained, high-reliability, embedded, full-featured,
public-domain, SQL database engine. It is the most used database
engine in the world. It is an in-process library and its code is publicly
available. It is free for use for any purpose, commercial or private. It
is basically an embedded SQL database engine. Ordinary disk files
can be easily read and write by
SQLite because it does not
have any separate server like
SQL. The SQLite database file
format is cross-platform so
that anyone can easily copy a database between 32-bit and 64-bit
systems.

Features of SQLite :-
 The transactions follow ACID properties i.e. atomicity,
consistency, isolation, and durability even after system crashes
and power failures.
 The configuration process is very easy, no setup or
administration needed.
 All the features of SQL are implemented in it with some
additional features like partial indexes, indexes on expressions,
JSON, and common table expressions.
 Sometimes it is faster than the direct file system I/O.

Applications of SQLite :-
 Due to its small code print and efficient usage of memory, it is
the popular choice for the database engine in cellphones, PDAs,
MP3 players, set-top boxes, and other electronic gadgets.
 It is used as an alternative for open to writing XML, JSON, CSV
or some proprietary format into disk files used by the
application.
 As it has no complication for configuration and easily stores file
in an ordinary disk file, so it can be used as a database for small
to medium sized websites.
 It is faster and accessible through a wide variety of third-party
tools, so it has great application in different software platforms.

 Django Framework :-Django is a Python-based web


framework which allows you to quickly create web
application without all of the installation or
dependency problems that you normally will find with
other frameworks.When you’re building a website, you
always need a similar set of components: a way to
handle user authentication (signing up, signing in,
signing out), a management panel for your website,
forms, a way to upload files, etc. Django gives you
ready-made components to use.

a) It’s very easy to switch database in Django framework.


b) It has built-in admin interface which makes easy to work
with it.
c) Django is fully functional framework that requires nothing
else.
d) It has thousands of additional packages available.
e) It is very scalable.
f) Popularity of Django
Django is used in many popular sites like as:
Disqus,
Instagram,
Knight
Foundation,
MacArthur
Foundation,
Mozilla,
National Geographic etc. There are more than
5k online sites based on the Django framework.
( Source )
Sites like Hot Frameworks assess the
popularity of a framework by counting the
number of GitHub projects and StackOverflow
questions for each platform, here Django is in
6th position. Web frameworks often refer to
themselves as “opinionated” or “un-
opinionated” based on opinions about the right
way to handle any particular task. Django is
somewhat opinionated, hence delivers the in
both worlds( opinionated& un-opinionated ).

Features of Django :-

Versatility of Django :-
Django can build almost any type of website. It
can also work with any client-side framework
and can deliver content in any format such as
HTML, JSON, XML etc. Some sites which can
be built using Django are wikis, social
networks, new sites etc.

Security :-
Since Django framework is made for making
web development easy, it has been engineered
in such a way that it automatically do the right
things to protect the website. For example, In
the Django framework instead of putting a
password in cookies, the hashed password is
stored in it so that it can’t be fetched easily by
hackers.

Scalability :-
Django web nodes have no stored state, they scale
horizontally – just fire up more of them when you
need them. Being able to do this is the essence of
good scalability. Instagram and Disqus are two
Django based products that have millions of active
users, this is taken as an example of the scalability
of Django.
Portability :-
All the codes of the Django framework are
written in Python, which runs on many platforms.
Which leads to run Django too in many platforms such as
Linux, Windows and Mac OS.

4.2 Front-End Technologies :-

 HTML (Hypertext Markup Language) :-

Html stands for HyperText Markup Language. It is


used to design web pages using a markup language.
HTML is the combination of Hypertext and Markup
language. Hypertext
defines the link
between the web
pages. A markup
language is used to
define the text
document within tag
which defines the structure of web pages. This
language is used to annotate (make notes for the
computer) text so that a machine can understand it
and manipulate text accordingly.
Most markup languages (e.g. HTML) are human-
readable. The language uses tags to define what
manipulation has to be done on the text.

HTML is a markup language used by the browser to


manipulate text, images, and other content, in order
to display it in the required format. HTML was created
by Tim Berners-Lee in 1991. The first-ever version of
HTML was HTML 1.0, but the first standard version
was HTML 2.0, published in 1999 .

Advantages :-

HTML is used to build websites.

It is supported by all browsers.

It can be integrated with other languages like CSS, PythonScript,


etc.

Disadvantages :-

HTML can only create static web pages. For dynamic web pages,
other languages have to be used.

A large amount of code has to be written to create a simple web


page.

The security feature is not good.


 CSS (Cascading Style Sheets) :-
CSS stands for Cascading Style Sheets. It is the
language for describing
the presentation of Web
pages, including colours,
layout, and fonts, thus
making our web pages
presentable to the
users.CSS is designed to make style sheets for the
web. It is independent of HTML and can be used with
any XML-based markup language. Now let’s try to
break the acronym:

 Cascading: Falling of Styles

 Style: Adding designs/Styling our HTML tags

 Sheets: Writing our style in different documents

Why Use CSS? :--

CSS is used to define styles for your web pages,


including the design, layout and variations in display
for different devices and screen sizes.

CSS Solved a Big Problem

HTML was NEVER intended to contain tags for


formatting a web page!
HTML was created to describe the content of a web
page, like:

<h1>This is a heading</h1>

<p>This is a paragraph.</p>

When tags like <font>, and color attributes were added


to the HTML 3.2 specification, it started a nightmare for
web developers. Development of large websites, where fonts
and color information were added to every single page,
became a long and expensive process.

To solve this problem, the World Wide Web Consortium


(W3C) created CSS.CSS removed the style formatting
from the HTML page!

 Bootstrap :-

Bootstrap is the most popular CSS Framework for


developing responsive and mobile-first
websites.Bootstrap 5 is the newest version of
Bootstrap.

Bootstrap is an HTML, CSS


& JS Library that focuses on
simplifying the development
of informative web pages (as
opposed to web apps). The primary purpose of adding
it to a web project is to apply Bootstrap's choices of
color, size, font and layout to that project. As such, the
primary factor is whether the developers in charge find
those choices to their liking. Once added to a project,
Bootstrap provides basic style definitions for all HTML
elements. The result is a uniform appearance for prose,
tables and form elements across web browsers. In
addition, developers can take advantage of CSS classes
defined in Bootstrap to further customize the
appearance of their contents. For example, Bootstrap
has provisioned for light- and dark-colored tables,
page headings, more prominent pull quotes, and text
with a highlight.

Bootstrap also comes with several PythonScript


components in the form of jQuery plugins. They
provide additional user interface elements such
as dialog boxes, tooltips, and carousels. Each
Bootstrap component consists of an HTML structure,
CSS declarations, and in some cases accompanying
PythonScript code. They also extend the functionality
of some existing interface elements, including for
example an auto-complete function for input fields.
4. System analysis & planning v/s user requirement

4.1 User requirements:

The following requirements are raised during the analysis of the needs of the users:

 A Person Should be able to login to the system through the first page of the Application.
 The Administrator can create users as per user requirement.
 Admin can upload the data for a particular Employee . On successful completion of
upload, user (Employee /Parent/Faculty) can view reports.
 A general user will have access to see the status of particular Employee id number.
 Employee (user) can use all the facilities, same as which are provided to him in the
College Employee .
 Employee can see attendance, notices, grades, report and other facilities in updated
manner.
 There will be a separate page for every Employee as his account in which he can get
notices, attendance, grades, assignments etc.
 Parent can just view the record of Employee with the username and password provided.
 Faculty can give the attendances and notices for the Employee s.
 The administrator verifies all these reports and generates them for users to view them.

After analyzing the requirements of the task to be performed, the next step is to analyze the
problem and understand its context. The first activity in the phase is studying the existing system
and other is to understand the requirements and domain of the new system. Both the activities are
equally important, but the first activity serves as a basis of giving the functional specifications and
then successful design of the proposed system. Understanding the properties and requirements of
a new system is more difficult and requires creative thinking and understanding of existing
running system is also difficult, improper understanding of present system can lead diversion
from solution.

4.2 Analysis Model

This document play a vital role in the development of life cycle (SDLC) as it describes the
complete requirement of the system. It means for use by developers and will be the basic during
testing phase. Any changes made to the requirements in the future will have to go through formal
change approval process.
SPIRAL MODEL was defined by Barry Boehm in his 1988 article, “A spiral Model of Software
Development and Enhancement. This model was not the first model to discuss iterative
development, but it was the first model to explain why the iteration models.

As originally envisioned, the iterations were typically 6 months to 2 years long. Each phase starts
with a design goal and ends with a client reviewing the progress thus far. Analysis and
engineering efforts are applied at each phase of the project, with an eye toward the end goal of the
project.

The steps for Spiral Model can be generalized as follows:

• The new system requirements are defined in as much details as possible. This usually
involves interviewing a number of users representing all the external or internal users
and other aspects of the existing system.

• A preliminary design is created for the new system.


• A first prototype of the new system is constructed from the preliminary design. This is
usually a scaled-down system, and represents an approximation of the characteristics
of the final product.

• A second prototype is evolved by a fourfold procedure:

1. Evaluating the first prototype in terms of its strengths, weakness, and risks.

2. Defining the requirements of the second prototype.

3. Planning and designing the second prototype.

4. Constructing and testing the second prototype.

• At the customer option, the entire project can be aborted if the risk is deemed too
great. Risk factors might involved development cost overruns, operatingcost
miscalculation, or any other factor that could, in the customer’s judgment, result in a
less-than-satisfactory final product.

• The existing prototype is evaluated in the same manner as was the previous prototype,
and if necessary, another prototype is developed from it according to the fourfold
procedure outlined above.

• The preceding steps are iterated until the customer is satisfied that the refined
prototype represents the final product desired.

• The final system is constructed, based on the refined prototype.


• The final system is thoroughly evaluated and tested. Routine maintenance is carried on a
continuing basis to prevent large scale failures and to minimize down time.

The following diagram shows how a spiral model acts like:


4.3 Study of the System:

4.3.1 Graphical user interface


In the flexibility of the uses the interface has been developed a graphics concept in mind,
associated through a browses interface. The GUI’S at the top level have been categorized as

1. Administrative user interface


2. The operational or generic user interface

The administrative user interface concentrates on the consistent information that is practically,
part of the organizational activities and which needs proper authentication for the data collection.
The interfaces help the administrations with all the transactional states like Data insertion, Data
deletion and Date updation along with the extensive data search capabilities.

The operational or generic user interface helps the users upon the system in transactions through
the existing data and required services. The operational user interface also helps the ordinary
users in managing their own information helps the ordinary users in managing their own
information in a customized manner as per the assisted flexibilities.

4.4 Number of Modules


The system after careful analysis has been identified to be presented with the following modules:

The modules involved are:

1. Employee Management: Through this service one can access the complete information
about the College Employee campus such as courses available, admission procedure,
placements, College Employee events, achievements etc.
2. Employee tracking: Any company or any organization that want to check the summary
about the Employee of the College Employee , so that they will be able to choose the
particular Employee s for their campus placement And for that purpose they will be given
a particular link through which they can access the information required.

3. Employee attendance status: It gives the attendance status of Employee s. Faculty will
update the attendance periodically and can be seen by Employee s and parents.
4. Employee ’s performance in exams: This facility provides the performance of the
Employee in each exam which is conducted by university or College Employee such as
midterm performance. Marks obtained by Employee s in exams will be updated by
faculties that can be access by Employee s and parents.
5. Exam Notification: This facility notifies Employee s and parents about examination
schedule.
6. Events: it will give information about different events that will be conducted by College
Employee time to time. Information about these events will be updated by administrator.
7. Offline assignments: This service provides the facility to faculty to upload assignments
and to Employee s to submit these assignments offline.
8. Information about staff: It will help in maintaining complete information about College
Employee faculty members such as their department, cadre, date of joining, salary, etc.
Administrator will register new faculties and remove their account when they leave the
College Employee .=

5. SYSTEM PLANNING (PERT CHART)


Perform and evaluate feasibility studies like cost-benefit analysis, technical feasibility, time
feasibility and operational feasibility for the project. Project Scheduling should be made using
PERT charts.

Feasibility study is carried out t decide whether the proposed system is feasible for the
company. The feasibility study is to serve as a decision document it must answer three key
questions:
1. Is there a new and better way to do the job that will benefit the user?
2. What are the cost and the savings of the alternative(s)?
3. What is recommended?

Technical feasibility:
Technical feasibility centers on the existing computer system i.e. Hardware, Software etc.
Bank requires SQL database management that are all easily available with extensive
development support through manuals and blogs.

Economical feasibility:
Economical Feasibility is the most frequently used method for evaluating the effectiveness
of a candidate system. More commonly known as Cost/ Benefit analysis, the procedure is to
determine the benefits and savings that are expected from the candidate system and compare them
with costs. If the benefits outweigh costs, then the decision is made to design and implement the
system.
6. Methodology Adopted, System Implementation & Details of Hardware &
Software Used

6.1Methodology adopted and System implementation:


Django is used as a web server to host the application.
1. All the environment variables are set.
2. The application is pasted in the webapps folder.
3. Web server is started now.
4. Currently set as a windows application.

6.2 Details of hardware & software used:

6.DETAILED LIFE CYCLE OF PROJECT

We have used Waterfall Model as Software Engineering life Cycle Process. It is the simplest;
oldest and most widely used process model for software development .This model acquires its
name from the fact that classic software life cycle is represented as a sequence of descending
steps.
7.1 Requirement Analysis:
This process is also known as feasibility study. In this phase, the development team studied the
site requirement. They investigate the need for possible dynamic representation of the site and
increase security features. By the end of feasibility study, the team furnishes a document that
holds the different specific recommendations for the candidate system. It also includes personnel
assignments, costs, project schedules, target dates etc. the requirement gathering process is
intensified and focused specially on software. The essential purpose of this phase is to find the
need and to define the problem that needs to be solved. During this phase following facts were
gathered.
 Determined the user need

 Identified the facts

 Establish the goals and objective for the proposed system

 Feasibility for the new system

7.2 System Analysis and Design:


In this phase the software’s overall structure and its nuances are defined. In terms of client server
technology the no of tiers needed for the package architecture, database design, data structure
design etc are defined in this phase. Analysis and Design are very crucial in entire development
cycle. Any glitch in this phase could be expensive to solve in the later stage of software
development. Hence following is the essential approach taken during website designing:
 DFD

 Database Designing

 Form Designing

 Pseudo code for methods

7.3 Testing:
Once the code is generated, the website testing begins. Different testing methodologies are done
to unravel the bugs that were committed during the previous phases. Different testing
methodologies are used:
 Acceptance testing White Box Testing

 Black Box Testing


7.ER-Diagram and Data Flow Diagram
ER-Diagram:-
Data Flow Diagram:-

8.2.1 Context 0th Level Diagram:

Data Out Put Stage


Data Input Stage

ADMIN
Data Storage
Admin

Staff Staff

UI Screens
Student

Student

Parent

Parent
Campus Information System

8.2.2 Login DFD Diagram:


tbl _ UserLogin

User Home
Open Login Enter Check
Page
form Student Id Student Id

Verification Validate Data


Data

8.2.3 Admin Details Data Flow:

1st level DFD:


2nd Level DFD

Login
Admin
Students info
Enter details

Update

Admin Login Id

Password

Admin Enter details


Employee table
Modify
Admin
Employee Employee table

Faculty info.

Notification

8.2.4 Employee Details Data Flow

1st level DFD

Login
Student Student’s info
Enter details

Update
nd
2 level DFD

Student Id
Login

Password
Emplo
yee table

EMployee
Query Faculty

Feed back
Mgmt.
Submission

Project Source Code


main.py
fromtkinterimport*
fromtkinterimportttk
fromtkinterimportmessagebox
fromdbimport Database

db=Database("Employee.db")
root =Tk()
root.title("Employee Management System")
root.geometry("1920x1080+0+0")
root.config(bg="#2c3e50")
root.state("zoomed")

name =StringVar()
age =StringVar()
doj=StringVar()
gender =StringVar()
email =StringVar()
contact =StringVar()

# Entries Frame
entries_frame=Frame(root,bg="#535c68")
entries_frame.pack(side=TOP, fill=X)
title =Label(entries_frame, text="Employee Management System", font=("Calibri",18,"bold"),
bg="#535c68",fg="white")
title.grid(row=0,columnspan=2,padx=10,pady=20, sticky="w")

lblName=Label(entries_frame, text="Name", font=("Calibri",16),bg="#535c68",fg="white")


lblName.grid(row=1, column=0,padx=10,pady=10, sticky="w")
txtName=Entry(entries_frame,textvariable=name, font=("Calibri",16), width=30)
txtName.grid(row=1, column=1,padx=10,pady=10, sticky="w")

lblAge=Label(entries_frame, text="Age", font=("Calibri",16),bg="#535c68",fg="white")


lblAge.grid(row=1, column=2,padx=10,pady=10, sticky="w")
txtAge=Entry(entries_frame,textvariable=age, font=("Calibri",16), width=30)
txtAge.grid(row=1, column=3,padx=10,pady=10, sticky="w")

lbldoj=Label(entries_frame, text="D.O.J", font=("Calibri",16),bg="#535c68",fg="white")


lbldoj.grid(row=2, column=0,padx=10,pady=10, sticky="w")
txtDoj=Entry(entries_frame,textvariable=doj, font=("Calibri",16), width=30)
txtDoj.grid(row=2, column=1,padx=10,pady=10, sticky="w")

lblEmail=Label(entries_frame, text="Email", font=("Calibri",16),bg="#535c68",fg="white")


lblEmail.grid(row=2, column=2,padx=10,pady=10, sticky="w")
txtEmail=Entry(entries_frame,textvariable=email, font=("Calibri",16), width=30)
txtEmail.grid(row=2, column=3,padx=10,pady=10, sticky="w")

lblGender=Label(entries_frame, text="Gender", font=("Calibri",16),bg="#535c68",fg="white")


lblGender.grid(row=3, column=0,padx=10,pady=10, sticky="w")
comboGender=ttk.Combobox(entries_frame, font=("Calibri",16), width=28,textvariable=gender,
state="readonly")
comboGender['values']=("Male","Female")
comboGender.grid(row=3, column=1,padx=10, sticky="w")

lblContact=Label(entries_frame, text="Contact No", font=("Calibri",16),bg="#535c68",fg="wh


ite")
lblContact.grid(row=3, column=2,padx=10,pady=10, sticky="w")
txtContact=Entry(entries_frame,textvariable=contact, font=("Calibri",16), width=30)
txtContact.grid(row=3, column=3,padx=10, sticky="w")

lblAddress=Label(entries_frame, text="Address", font=("Calibri",16),bg="#535c68",fg="white


")
lblAddress.grid(row=4, column=0,padx=10,pady=10, sticky="w")
txtAddress=Text(entries_frame, width=85, height=5, font=("Calibri",16))
txtAddress.grid(row=5, column=0,columnspan=4,padx=10, sticky="w")

defgetData(event):
selected_row=tv.focus()
data =tv.item(selected_row)
global row
row = data["values"]
#print(row)
name.set(row[1])
age.set(row[2])
doj.set(row[3])
email.set(row[4])
gender.set(row[5])
contact.set(row[6])
txtAddress.delete(1.0, END)
txtAddress.insert(END,row[7])

defdispalyAll():
tv.delete(*tv.get_children())
for row indb.fetch():
tv.insert("", END, values=row)

defadd_employee():
iftxtName.get()==""ortxtAge.get()==""ortxtDoj.get()==""ortxtEmail.get()==""orcomboGender.g
et()==""ortxtContact.get()==""ortxtAddress.get(
1.0, END)=="":
messagebox.showerror("Erorr in Input","Please Fill All the Details")
return
db.insert(txtName.get(),txtAge.get(),txtDoj.get(),txtEmail.get(),comboGender.get(),txtCont
act.get(),txtAddress.get(
1.0, END))
messagebox.showinfo("Success","Record Inserted")
clearAll()
dispalyAll()

defupdate_employee():
iftxtName.get()==""ortxtAge.get()==""ortxtDoj.get()==""ortxtEmail.get()==""orcomboGender.g
et()==""ortxtContact.get()==""ortxtAddress.get(
1.0, END)=="":
messagebox.showerror("Erorr in Input","Please Fill All the Details")
return
db.update(row[0],txtName.get(),txtAge.get(),txtDoj.get(),txtEmail.get(),comboGender.get(),
txtContact.get(),
txtAddress.get(
1.0, END))
messagebox.showinfo("Success","Record Update")
clearAll()
dispalyAll()

defdelete_employee():
db.remove(row[0])
clearAll()
dispalyAll()

defclearAll():
name.set("")
age.set("")
doj.set("")
gender.set("")
email.set("")
contact.set("")
txtAddress.delete(1.0, END)

btn_frame=Frame(entries_frame,bg="#535c68")
btn_frame.grid(row=6, column=0,columnspan=4,padx=10,pady=10, sticky="w")
btnAdd=Button(btn_frame, command=add_employee, text="Add Details", width=15, font=("Calibr
i",16,"bold"),fg="white",
bg="#16a085", bd=0).grid(row=0, column=0)
btnEdit=Button(btn_frame, command=update_employee, text="Update Details", width=15, font=(
"Calibri",16,"bold"),
fg="white",bg="#2980b9",
bd=0).grid(row=0, column=1,padx=10)
btnDelete=Button(btn_frame, command=delete_employee, text="Delete Details", width=15, font
=("Calibri",16,"bold"),
fg="white",bg="#c0392b",
bd=0).grid(row=0, column=2,padx=10)
btnClear=Button(btn_frame, command=clearAll, text="Clear Details", width=15, font=("Calibr
i",16,"bold"),fg="white",
bg="#f39c12",
bd=0).grid(row=0, column=3,padx=10)

# Table Frame
tree_frame=Frame(root,bg="#ecf0f1")
tree_frame.place(x=0, y=480, width=1980, height=520)
style =ttk.Style()
style.configure("mystyle.Treeview", font=('Calibri',18),
rowheight=50)# Modify the font of the body
style.configure("mystyle.Treeview.Heading", font=('Calibri',18))# Modify the font of the h
eadings
tv =ttk.Treeview(tree_frame, columns=(1,2,3,4,5,6,7,8), style="mystyle.Treeview")
tv.heading("1", text="ID")
tv.column("1", width=5)
tv.heading("2", text="Name")
tv.heading("3", text="Age")
tv.column("3", width=5)
tv.heading("4", text="D.O.B")
tv.column("4", width=10)
tv.heading("5", text="Email")
tv.heading("6", text="Gender")
tv.column("6", width=10)
tv.heading("7", text="Contact")
tv.heading("8", text="Address")
tv['show']='headings'
tv.bind("<ButtonRelease-1>",getData)
tv.pack(fill=X)

dispalyAll()
root.mainloop()

db.py
import sqlite3

class Database:
def__init__(self,db):
self.con= sqlite3.connect(db)
self.cur=self.con.cursor()
sql="""
CREATE TABLE IF NOT EXISTS employees(
id Integer Primary Key,
name text,
age text,
doj text,
email text,
gender text,
contact text,
address text
)
"""
self.cur.execute(sql)
self.con.commit()

# Insert Function
definsert(self, name, age,doj, email, gender, contact, address):
self.cur.execute("insert into employees values (NULL,?,?,?,?,?,?,?)",
(name, age,doj, email, gender, contact, address))
self.con.commit()

# Fetch All Data from DB


def fetch(self):
self.cur.execute("SELECT * from employees")
rows =self.cur.fetchall()
# print(rows)
return rows

# Delete a Record in DB
defremove(self,id):
self.cur.execute("delete from employees where id=?",(id,))
self.con.commit()

# Update a Record in DB
defupdate(self,id, name, age,doj, email, gender, contact, address):
self.cur.execute(
"update employees set name=?, age=?, doj=?, email=?, gender=?, contact=?, address=? where
id=?",
(name, age,doj, email, gender, contact, address,id))
self.con.commit()

import time
import tkinter.messagebox
from tkinterimport *

root = Tk()
root.title("Employee Payment System")
root.geometry('1370x720+0+0')
root.maxsize(width=1370, height=720)
root.minsize(width=1370, height=720)
root.configure(background="dark gray")

Tops = Frame(root, width=1350, height=50, bd=8, bg="dark blue")


Tops.pack(side=TOP)

f1 = Frame(root, width=600, height=600, bd=8, bg="dark gray")


f1.pack(side=LEFT)
f2 = Frame(root, width=300, height=700, bd=8, bg="dark blue")
f2.pack(side=RIGHT)

fla = Frame(f1, width=600, height=200, bd=8, bg="dark blue")


fla.pack(side=TOP)
flb = Frame(f1, width=300, height=600, bd=8, bg="dark blue")
flb.pack(side=TOP)

lbl_information = Label(Tops, font=('arial', 45, 'bold'), text="Employee Payment


Management System ", relief=GROOVE, bd=10, bg="Dark Gray", fg="Black")
lbl_information.grid(row=0, column=0)

def Exit():
wayOut = tkinter.messagebox.askyesno("Employee Payment System", "Do you want to
exit the system")
if wayOut>0:
root.destroy()
return

def Reset():
FullName.set("")
Address.set("")
Wrk_Hrs.set("")
Hrs_Wage.set("")
Payable.set("")
Taxable.set("")
NetPayable.set("")
GrossPayable.set("")
OverTimeBonus.set("")
CompanyAgency.set("")
PhoneNumber.set("")
txtPaymentSlip.delete("1.0", END)

def InformationEntry():
txtPaymentSlip.delete("1.0", END)
txtPaymentSlip.insert(END, "\t\tPay Slip\n\n")
txtPaymentSlip.insert(END, "Full Name :\t\t" + FullName.get() + "\n\n")
txtPaymentSlip.insert(END, "Home Address :\t\t" + Address.get() + "\n\n")
txtPaymentSlip.insert(END, "Company/Agency :\t\t" + CompanyAgency.get() + "\n\n")
txtPaymentSlip.insert(END, "Phone Number :\t\t" + PhoneNumber.get() + "\n\n")
txtPaymentSlip.insert(END, "Hours Worked :\t\t" + Wrk_Hrs.get() + "\n\n")
txtPaymentSlip.insert(END, "Net Payable :\t\t" + NetPayable.get() + "\n\n")
txtPaymentSlip.insert(END, "Wages per hour :\t\t" + Hrs_Wage.get() + "\n\n")
txtPaymentSlip.insert(END, "Tax Paid :\t\t" + Taxable.get() + "\n\n")
txtPaymentSlip.insert(END, "Payable :\t\t" + Payable.get() + "\n\n")

def WagesForWeekly():
txtPaymentSlip.delete("1.0", END)
hrs_wrk_per_wek = float(Wrk_Hrs.get())
hrs_per_wgs = float(Hrs_Wage.get())

DuePayment = hrs_per_wgs * hrs_wrk_per_wek


PaymentDue = "P" + str('%.2f' % DuePayment)
Payable.set(PaymentDue)

tax = DuePayment * 0.12


taxable = "P" + str('%.2f' % tax)
Taxable.set(taxable)

PaymentNet = DuePayment - tax


NetPayments = "P" + str('%.2f' % PaymentNet)
NetPayable.set(NetPayments)

if hrs_wrk_per_wek>40:
HoursTimeOver = (hrs_wrk_per_wek - 40) + hrs_per_wgs * 1.5
OverTime = "P" + str('%.2f' % HoursTimeOver)
OverTimeBonus.set(OverTime)
elifhrs_wrk_per_wek<= 40:
PaymentOverTime = (hrs_wrk_per_wek - 40) + hrs_per_wgs * 1.5
HoursOverTime = "P" + str('%.2f' % PaymentOverTime)
OverTimeBonus.set(HoursOverTime)
return

# Variables
FullName = StringVar()
Address = StringVar()
Hrs_Wage = StringVar()
Wrk_Hrs = StringVar()
Payable = StringVar()
Taxable = StringVar()
NetPayable = StringVar()
GrossPayable = StringVar()
OverTimeBonus = StringVar()
CompanyAgency = StringVar()
PhoneNumber = StringVar()
TimeOfOrder = StringVar()
DateOfOrder = StringVar()
DateOfOrder.set(time.strftime("%d/%m/%Y"))

# Label Widget

labelFirstName = Label(fla, text="Full Name", font=('arial', 16, 'bold'), bd=20,


fg="white", bg="dark blue").grid(row=0, column=0)

labelAddress = Label(fla, text="Home Address", font=('arial', 16, 'bold'), bd=20,


fg="white", bg="dark blue").grid(row=0, column=2)

labelCompanyAgency = Label(fla, text="Company/Agency", font=('arial', 16, 'bold'),


bd=20, fg="white", bg="dark blue").grid(row=1,
column=0)
labelPhoneNumber = Label(fla, text="Phone Number", font=('arial', 16, 'bold'),
bd=20, fg="white", bg="dark blue").grid(row=1,
column=2)
labelHoursWorked = Label(fla, text="Hours Worked", font=('arial', 16, 'bold'),
bd=20, fg="white", bg="dark blue").grid(
row=2, column=0)
labelHourlyRate = Label(fla, text="Hourly Rate", font=('arial', 16, 'bold'),
bd=20, fg="white", bg="dark blue").grid(
row=2, column=2)
labelTax = Label(fla, text="Tax", font=('arial', 16, 'bold'), bd=20, anchor='w',
fg="white", bg="dark blue").grid(row=3,
column=0)
labelOverTime = Label(fla, text="OverTime", font=('arial', 16, 'bold'), bd=20,
fg="white", bg="dark blue").grid(row=3,
column=2)
labelGrossPay = Label(fla, text="GrossPay", font=('arial', 16, 'bold'), bd=20,
fg="white", bg="dark blue").grid(row=4,
column=0)
labelNetPay = Label(fla, text="Net Pay", font=('arial', 16, 'bold'), bd=20,
fg="white", bg="dark blue").grid(row=4,
column=2)

# Entry Widget

txtFullname = Entry(fla, textvariable=FullName, font=('arial', 16, 'bold'), bd=16,


width=22, justify='left')
txtFullname.grid(row=0, column=1)

txtAddress = Entry(fla, textvariable=Address, font=('arial', 16, 'bold'), bd=16,


width=22, justify='left')
txtAddress.grid(row=0, column=3)

txtCompanyAgency = Entry(fla, textvariable=CompanyAgency, font=('arial', 16,


'bold'), bd=16, width=22, justify='left')
txtCompanyAgency.grid(row=1, column=1)

txtWrk_hrs = Entry(fla, textvariable=Wrk_Hrs, font=('arial', 16, 'bold'), bd=16,


width=22, justify='left')
txtWrk_hrs.grid(row=2, column=1)

txtHrs_Wages = Entry(fla, textvariable=Hrs_Wage, font=('arial', 16, 'bold'),


bd=16, width=22, justify='left')
txtHrs_Wages.grid(row=2, column=3)

txtPhoneNumber = Entry(fla, textvariable=PhoneNumber, font=('arial', 16, 'bold'),


bd=16, width=22, justify='left')
txtPhoneNumber.grid(row=1, column=3)

txtGrossPayment = Entry(fla, textvariable=Payable, font=('arial', 16, 'bold'),


bd=16, width=22, justify='left')
txtGrossPayment.grid(row=4, column=1)

txtNetPayable = Entry(fla, textvariable=NetPayable, font=('arial', 16, 'bold'),


bd=16, width=22, justify='left')
txtNetPayable.grid(row=4, column=3)

txtTaxable = Entry(fla, textvariable=Taxable, font=('arial', 16, 'bold'), bd=16,


width=22, justify='left')
txtTaxable.grid(row=3, column=1)

txtOverTimeBonus = Entry(fla, textvariable=OverTimeBonus, font=('arial', 16,


'bold'), bd=16, width=22, justify='left')
txtOverTimeBonus.grid(row=3, column=3)

# Text Widget

payslip = Label(f2, textvariable=DateOfOrder, font=('arial', 21, 'bold'),


fg="white", bg="dark blue").grid(row=0,
column=0)
txtPaymentSlip = Text(f2, height=22, width=34, bd=16, font=('arial', 13, 'bold'),
fg="black", bg="white")
txtPaymentSlip.grid(row=1, column=0)

# buttons

ButtonSalary = Button(flb, text='Weekly Salary', padx=16, pady=16, bd=15,


font=('arial', 16, 'bold'), relief="groove", width=14, fg="black",
bg="dark gray", command=WagesForWeekly).grid(row=0, column=0)

ButtonReset = Button(flb, text='Reset', padx=16, pady=16, bd=15, font=('arial',


16, 'bold'), relief="groove", width=14, command=Reset,
fg="black", bg="dark gray").grid(row=0, column=1)

ButtonPaySlip = Button(flb, text='View Payslip', padx=16, pady=16, bd=15,


font=('arial', 16, 'bold'), relief="groove", width=14,
command=InformationEntry, fg="black", bg="dark gray").grid(row=0, column=2)

ButtonExit = Button(flb, text='Exit System', padx=16, pady=16, bd=15,


font=('arial', 16, 'bold'), relief="groove", width=14, command=Exit,
fg="black", bg="dark gray").grid(row=0, column=3)

root.mainloop()
8.Input and Output Screen Design (Snapshots)

15/06/2024
I NAME Age D.O.B Email.id
D
1 NEELESH PATEL 20 09/07/2003 Patelneeleshpatel8
0553@gmail.com
2 PRADEEP KUMAR 21 09/10/2002 Pv906321@gmail.c
VERMA om

3 NEERAJ KUMAR 20 01/01/2003 Patelneeraj610@g


PATEL mail.com

4 PRAMIS SAHU 20 20/02/2004 sahupramis@gmai


l.com
15/06/2024
10. Methodology used for testing
The completion of a system will be achieved only after it has been thoroughly tested. Though this
gives a feel the project is completed, there cannot be any project without going through this stage.
Hence in this stage it is decided whether the project can undergo the real time environment
execution without any break downs, therefore a package can be rejected even at this stage.

10.1 Testing methods

Software testing methods are traditionally divided into black box testing and white box testing.
These two approaches are used to describe the point of view that a test engineer takes when
designing test cases.

1) Black box testing - Black box testing treats the software as a "black box," without any
knowledge of internal implementation. Black box testing methods include: equivalence
partitioning, boundary value analysis, all-pairs testing, fuzz testing, model-based testing,
traceability matrix, exploratory testing and specification-based testing.
2) White box testing - White box testing, by contrast to black box testing, is when the tester
has access to the internal data structures and algorithms (and the code that implement
these).White box testing methods can also be used to evaluate the completeness of a test
suite that was created with black box testing methods. This allows the software team to
examine parts of a system that are rarely tested and ensures that the most important
function points have been tested.
3) Grey Box Testing - Grey box testing involves having access to internal data structures
and algorithms for purposes of designing the test cases, but testing at the user, or black-
box level. Manipulating input data and formatting output do not qualify as "grey box,"
because the input and output are clearly outside of the "black-box" that we are calling the
system under test. This distinction is particularly important when conducting integration
testing between two modules of code written by two different developers, where only the
interfaces are exposed for test. Grey box testing may also include reverse engineering to
determine, for instance, boundary values or error messages.

4) Acceptance testing - Acceptance testing can mean one of two things:

1. A smoke test is used as an acceptance test prior to introducing a build to the main testing
process.
2. Acceptance testing performed by the customer is known as user acceptance testing (UAT).

5) Regression Testing - Regression testing is any type of software testing that seeks to
uncover software regressions. Such regression occurs whenever software functionality that
was previously working correctly stops working as intended. Typically regressions occur
as an unintended consequence of program changes. Common methods of regression
testing include re-running previously run tests and checking whether previously fixed
faults have re-emerged.
6) Non Functional Software Testing - Special methods exist to test non-functional aspects
of software.

• Performance testing checks to see if the software can handle large quantities of data or
users. This is generally referred to as software scalability. This activity of Non Functional
Software Testing is often times referred to as Load Testing.
• Stability testing checks to see if the software can continuously function well in or above an
acceptable period. This activity of Non Functional Software Testing is often times referred
to as indurations test.
• Usability testing is needed to check if the user interface is easy to use and understand.
• Security testing is essential for software which processes confidential data and to prevent
system intrusion by hackers.
• Internationalization and localization is needed to test these aspects of software, for which a
pseudo localization method can be used.

 Advantages

 Saves hr department time


 Easy to access the system anywhere and anytime.

 Limitation
 Requires an active internet connection.

 Application
 This application can be used by companies.
12. Future Enhancements

This project is used by any college/school for complete Employee management system to
improve the paper less working process as well as increase working speed.

13. Conclusion
Its help to save the time & expenses and improve our working quality, efficiency mostly save
paper. When institute properly use this project then they organized data in proper way and
record only on single cl

14. References

 Reference
 https://shsu-ir.tdl.org/shsu-
ir/bitstream/handle/20.500.11875/1164/0781.pdf?sequence=1
 https://ieeexplore.ieee.org/document/6208293/
 https://ieeexplore.ieee.org/document/4679

You might also like