Animesh Employee Management System Project Report in Python 2022
Animesh Employee Management System Project Report in Python 2022
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:
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.
• 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
Python : -
Features of PyCharm :-
Code Completion :-
Package Management :-
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.
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.
Advantages :-
Disadvantages :-
HTML can only create static web pages. For dynamic web pages,
other languages have to be used.
<h1>This is a heading</h1>
<p>This is a paragraph.</p>
Bootstrap :-
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.
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 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.
1. Evaluating the first prototype in terms of its strengths, weakness, and risks.
• 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 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.
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 .=
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
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
Database Designing
Form Designing
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
ADMIN
Data Storage
Admin
Staff Staff
UI Screens
Student
Student
Parent
Parent
Campus Information System
User Home
Open Login Enter Check
Page
form Student Id Student Id
Login
Admin
Students info
Enter details
Update
Admin Login Id
Password
Faculty info.
Notification
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
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")
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()
# 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")
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())
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
# Entry Widget
# Text Widget
# buttons
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
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.
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
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