0% found this document useful (0 votes)
136 views60 pages

Staff Management System PDF

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
136 views60 pages

Staff Management System PDF

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 60

SMT.

SUSHILADEVI DESHMUKH COLLEGE OF ARTS,

SCIENCE AND COMMERCE, Airoli, Sector-4, Navi Mumbai-400 708

“Staff Management System”


A Project Report

Submitted in partial fulfilment of the


Requirement for the award of the Degree of

BACHELOR OF SCIENCE ( COMPUTER SCIENCE )

By

Shruti Arvind Sarvade

( BACHELOR OF COMPUTER SCIENCE )

5TH SEM

Under the Guidance of

DR.PRAKASH NAIK
Department Of Computer Science
SMT. SUSHILADEVI DESHMUKH COLLEGE OF ARTS,SCIENCE &
COMMERCE

AIROLI, NAVI MUMBAI 400 708

MAHARASHTRA

YEAR 2024-25

(Affiliated to University of Mumbai)

1
CANDIDATE’S DECLARATION

I hereby declare that the project work being presented in this report
entitled “Staff Management System” submitted in the department of Computer
Science, Faculty of Technology, Smt.Sushiladevi Deshmukh College of Arts,
Science & Commerce work is the authentic carried out by me under the guidance
of
Dr.Prakash Naik, Department of Bachelor of Science Computer Science.

2
SMT. SUSHILADEVI DESHMUKH COLLEGE OF ARTS,

SCIENCE AND COMMERCE, Airoli, Sector-4, Navi Mumbai-400 708

Date:

CERTIFICATE

This is to Certify that Ms.Shruti A Sarvade seat no.________ of TYBSC CS


Semester V has completed the project work in the subject of “Project
Management” during the academic year 2024-25 under the guidance of
Dr.Prakash Naik being the partial requirement for the fulfilment of the
curriculum of Degree of Bachelor of Computer Science, University of Mumbai.

Signature of Internal Guide Signature of HOD

Signature of External Principal

College Seal

3
ACKNOWLEDGEMENT

A project is a job of great enormity and it can't be accomplished by an individual


all by them. Eventually, we are grateful to several individuals whose professional
guidance, assistance and encouragement have made it a pleasant endeavour to
undertake this project.

It gives us great pleasure in expressing our deep sense of gratitude for having
provided us with great infrastructure and well-furnished labs.

We take this opportunity to express our profound gratitude to our respected


Principal DR.SHALINI VERMANI for his support. We are grateful to the Head
of the Department Dr.PRAKASH NAIK, for his unfailing encouragement and
suggestion given to us during our project work.

Guidance and deadlines play a very important role in successful completion of


the project on time. We also convey our gratitude to our internal project guide,

DR. PRAKASH NAIK, for having constantly guided and the development of the
project.

Finally, a note of thanks to the Department of Computer Science, both teaching


and non-teaching staff for their co-operation extended to us. We thank our parents
for their constant support and encouragement. Last, but not the least, we would
like to thank our peers and friends.

4
TABLE OF CONTENTS
SR NO. CONTENTS PAGE NO.

1 Chapter-1

1.1 Introduction 7

1.2 Objective 7

1.3 Technologies used 8

1.4 Benefits 8

1.5 Target industries 9

1.6 Applicability 10

2 Chapter-2

2.1 Product requirements 11-13

2.2 Features 14-15

2.3 Advantages 16

2.4 Disadvantages 17

2.5 Problem statement 18

3 Chapter-3

3.1 Flow charts 19

3.2 Class Diagram 20


3.3 ER diagram 21
3.4 User case diagram 22
3.5 Spiral model 21

23

4 Modules 24-25

5 Gantt Chart 26

5
6 Chapter-4

4.1 Frontend 27

4.2 Backend 28

4.3 Code 29-51

7 Result 52-53

8 Testing 54

9 Chapter-5

5.1 Conclusion 55-56

5.2 Future scope 57-59

5.3 References 60

6
Chapter-1

Introduction

The Staff Management System is a comprehensive software solution designed


to simplify and automate the process of managing an organization’s employees.
In today’s fast-paced business environment, efficient management of staff is
crucial for maintaining productivity and ensuring smooth operations. This
system provides a centralized platform to handle various human resource tasks
such as employee data management, attendance tracking, leave requests,
performance monitoring, and more.
By automating routine HR processes, the Staff Management System reduces
manual effort and minimizes errors, making operations more efficient. It allows
organizations to maintain detailed records of each employee, including personal
details, job roles, etc.
In summary, the Staff Management System is an essential tool for organizations
looking to optimize their HR processes, improve employee satisfaction, and
achieve higher efficiency in staff management.

Objective

Due too many data and paperwork that needed to record the employee data
could consume a lot of space in the filling cabinet. The retrieval of data can time
consuming because it must be searched from the filling cabinet.
This will cause waste of resource in term of time and money. In addition, it
would also cause inconvenience and ineffectiveness in daily work. Plus, the
manger will face difficulties when need to update employee working schedule,
report and leave request

7
Technologies Used

1. Python (Tkinter): Tkinter is used for building the GUI, allowing users to
interact with the system through forms and tables.
2. MySQL: MySQL is employed as the relational database management
system (RDBMS) to store staff information.
3. MySQL Workbench: This is used for creating the database and managing
the schema.

Benefits

• This system will reduce the complexity of employee management.

• By using this system we can easily maintain all the records about every
employee.

• It will reduce searching time.

• It can be easily handled by the person who have elementary knowledge of


computer because it provides a user friendly environment.

• Reduces administrative costs by minimizing manual errors and


streamlining HR tasks.

• Stores sensitive employee data securely, protecting it from unauthorized


access.

8
Target Industries:

• Corporate Offices
• Healthcare Organizations
• Retail and Hospitality
• Educational Institutions
• Non-Profits and NGOs

9
Applicability

A staff management system is essential for various organizations and industries,


streamlining processes related to employee management. Here are some key
areas where it can be applied:
1. Human Resources Management:
o Centralizes employee records, including personal information,
performance reviews, and training records.
o Automates recruitment processes, from job postings to candidate
tracking.
2. Performance Management:
o Facilitates regular performance evaluations and feedback.
o Helps set and track employee goals, enhancing overall
productivity.
3. Training and Development:
o Manages employee training programs, tracking participation and
progress.
o Identifies skill gaps and supports professional development
initiatives.
4. Employee Engagement:
o Provides platforms for feedback and communication between staff
and management.
o Supports initiatives aimed at improving employee satisfaction and
retention.
5. Remote Work Management:
o Facilitates tracking and management of remote employees,
ensuring productivity and accountability.
o Provides tools for collaboration and communication among remote
teams.

10
Chapter-2

Product requirements

When developing a staff management system, several product requirements


must be considered to ensure it meets the needs of the organization and
functions effectively. These requirements can be categorized into functional,
non-functional, and technical requirements:
1. Functional Requirements
• Employee Database Management: The system should store and manage
employee information, including personal details, job roles, contact
information, and employment history.
• Attendance Tracking: The system must record employee attendance,
including clock-in/clock-out times, overtime, and leaves. It should also
integrate with biometric or RFID systems if necessary.
• Shift and Schedule Management: The system should allow managers to
create, assign, and adjust work schedules while ensuring fair and conflict-
free distribution of shifts among employees.
• Leave Management: Employees should be able to request time off, and
the system should track and manage leave balances, approvals, and
history.
• Payroll Management: Integration with payroll systems to calculate
salaries, overtime, bonuses, and deductions based on attendance and leave
data.
• Performance Monitoring: The system should include tools to monitor and
evaluate employee performance through metrics like productivity, task
completion, or periodic reviews.
• Employee Self-Service: Employees should have a portal to view their
schedule, attendance, leave balance, payslips, and performance data, as
well as request time off or shift changes.
• Compliance Tracking: The system must adhere to labor laws and
regulations, ensuring that employee working hours, overtime, and breaks
comply with relevant laws.
11
• Task Management: Managers should be able to assign and track tasks to
individual employees or teams, ensuring that workloads are balanced and
deadlines are met.
• Reporting and Analytics: The system should generate reports on various
metrics like attendance, leave usage, payroll, employee performance, and
labor costs for better decision-making.
2. Non-Functional Requirements
• Scalability: The system must be scalable to accommodate the growth of
the workforce, allowing the addition of new users, departments, and
functionalities as needed.
• Security: Strong authentication, encryption, and access control
mechanisms must be in place to protect sensitive employee data from
unauthorized access or data breaches.
• Usability: The system must be user-friendly with an intuitive interface for
both administrators and employees, reducing the learning curve and
promoting adoption.
• Reliability: The system must ensure high uptime and be reliable in
tracking critical employee data such as attendance and payroll without
errors or data loss.
• Performance: The system should be optimized for performance, allowing
it to handle multiple users simultaneously without significant delays or
slowdowns.
• Mobile Access: The system should offer mobile-friendly versions or
apps, enabling employees and managers to access functionalities on
smartphones or tablets.
• Compliance with Data Privacy Regulations: Ensure that the system
adheres to data privacy laws like GDPR, securing employee information
and maintaining data confidentiality.
3. Technical Requirements
• Database: The system should be backed by a robust relational database
(e.g., MySQL, SQL Server, or PostgreSQL) capable of handling large
volumes of employee data efficiently.

12
• Integration: The system must support integration with existing payroll
systems, HR tools, and time-tracking hardware like biometric or RFID
systems.
• Cloud-Based or On-Premises: The system should offer the flexibility to
be hosted either in the cloud or on-premises, depending on the
organization’s preferences and infrastructure.
• APIs for Third-Party Tools: To allow seamless communication between
different business tools (like payroll or task management), the system
should provide APIs for integration.
• Customization: The system should offer customization options to tailor
workflows, reports, and features to the specific needs of the organization.
• Backup and Recovery: The system should have built-in mechanisms for
regular data backups and easy recovery in case of failure or data
corruption.

By ensuring these product requirements are addressed, a staff management


system can effectively streamline workforce operations, improve employee
satisfaction, and reduce administrative burdens.

13
Features

A staff management system typically includes a variety of features that enhance


efficiency and simplify HR processes. Here are some key features:

1. Employee Information Management


• Centralizes all employee-related data, including personal details, job
roles, contact information, and employment history. This allows for easy
access and updating of employee records in real-time.
2. Attendance and Time Tracking
• Automates attendance recording, including clock-in/clock-out times,
overtime, and break durations. This feature ensures accurate tracking of
employee work hours and integrates with payroll systems to streamline
salary calculations.
3. Scheduling and Shift Management
• Allows managers to create, assign, and manage employee schedules
based on availability, workload, and labor laws. It helps avoid scheduling
conflicts and ensures the optimal distribution of staff.
4. Leave Management
• Tracks leave requests, approvals, and balances (e.g., vacation, sick leave)
in real-time. It provides transparency and ensures compliance with
organizational policies and labor laws, preventing overuse or underuse of
leave entitlements.
5. Payroll Integration
• Connects attendance data with payroll systems to automate salary
calculations, ensuring accuracy in compensation, bonuses, overtime, and
deductions. This feature helps avoid manual errors and reduces payroll
processing time.
6. Performance Management
• Tracks employee performance through regular reviews, feedback, and
goal-setting. It helps managers identify high performers, track progress,
and support professional development.

14
7. Employee Self-Service Portal
• Empowers employees to access and manage their own information, such
as viewing schedules, requesting time off, updating personal details, and
checking payslips, reducing the administrative burden on HR staff.
8. Reporting and Analytics
• Provides detailed reports on various metrics such as attendance, employee
turnover, performance, and labor costs. Data analytics enable managers to
make informed decisions and forecast staffing needs.
9. Compliance and Regulatory Features
• Helps ensure compliance with labor laws, tax regulations, and health and
safety standards. It tracks employee work hours, overtime, and leaves,
helping organizations adhere to legal requirements and avoid penalties.
10. Mobile Accessibility
• Many modern staff management systems are mobile-friendly, allowing
employees and managers to access the system from any device,
facilitating real-time updates and greater flexibility.
11. Task and Project Assignment
• Some systems also allow for the assignment and tracking of specific tasks
or projects, enabling better workforce allocation and productivity
tracking.

These features make staff management systems highly valuable for streamlining
operations, improving employee satisfaction, and ensuring compliance with
legal regulations.

15
Advantages

A staff management system offers several advantages for organizations:

1. Efficiency: Automates routine tasks such as scheduling, attendance tracking,


and payroll, reducing manual errors and saving time.
2. Improved Communication: Facilitates communication between managers and
employees, streamlining information flow and ensuring everyone is informed.
3. Employee Satisfaction: Helps in managing workload, balancing shifts, and
ensuring fair scheduling, which can boost employee morale and satisfaction.
4. Data Management: Centralizes employee data, making it easier to track
performance, training, and compliance with regulations.
5. Cost Savings: Reduces administrative costs associated with manual
scheduling, time tracking, and payroll processing.
6. Compliance and Security: Ensures adherence to labor laws and regulations,
enhancing security and confidentiality of employee information.
7. Performance Tracking: Enables performance reviews and goal setting based
on real-time data, fostering continuous improvement.
8. Scalability: Easily scales with the organization's growth, adapting to changing
workforce needs and complexities.

Overall, a well-implemented staff management system can lead to more


efficient operations, happier employees, and better decision-making for the
organization.

16
Disadvantages

While a staff management system offers many benefits, it also has some
potential disadvantages:

1. Initial Costs: Implementing a staff management system may require


significant upfront investment in software, hardware, and training.
2. Complexity: Some systems can be complex to set up and use, especially for
small businesses with limited IT expertise, leading to a steep learning curve.
3. Customization Limitations: Off-the-shelf systems may not fully meet the
unique needs of every organization, requiring additional customization or
integration, which can be time-consuming and costly.
4. Maintenance and Updates: The system may require regular updates,
maintenance, and technical support, which can add to ongoing costs.
5. Data Security Risks: Storing sensitive employee data digitally can increase
the risk of data breaches or cyberattacks if proper security measures are not in
place.
6. Resistance to Change: Employees and managers may resist adopting the new
system due to unfamiliarity or fear of change, requiring time and effort to
ensure smooth transition and adoption.
7. Dependency on Technology: Over-reliance on the system could be
problematic in case of system failures, technical glitches, or power outages,
affecting operations.
8. Privacy Concerns: Some employees may feel uncomfortable with the
increased monitoring and tracking of their activities, potentially leading to
concerns over privacy and trust.

While these disadvantages are notable, they can often be mitigated with proper
planning, training, and investment in reliable software.

17
Problem statement

Here are some potential problem statements related to a staff management


system:

1. Inefficient Time Tracking: "Manual time tracking processes lead to errors in


employee work hours, affecting payroll accuracy and increasing administrative
workload."
2. Scheduling Conflicts: "Frequent scheduling conflicts arise due to a lack of
real-time visibility into employee availability, causing operational disruptions
and employee dissatisfaction."
3. Poor Employee Engagement: "Employees feel disengaged due to a lack of
transparency in communication, feedback, and recognition, leading to decreased
productivity and higher turnover."
4. Compliance Issues: "The organization faces challenges in ensuring
compliance with labor laws and regulations due to scattered or outdated
employee data, risking penalties."
5. Inaccurate Performance Tracking: "There is no standardized way to track
employee performance, making it difficult to identify top performers, address
underperformance, or develop talent effectively."
6. Data Management Inefficiencies: "Storing employee information across
multiple platforms creates data duplication, delays in accessing information, and
potential security risks."
7. Scalability Challenges: "As the company grows, the current manual or
outdated staff management process becomes increasingly difficult to manage,
leading to operational inefficiencies."
8. Cost Overruns in Payroll Management: "Inaccuracies in attendance and leave
management are leading to cost overruns in payroll, negatively impacting the
company’s budget."

These problem statements can help identify specific challenges a staff


management system can address and guide the development of tailored
solutions.

18
Chapter-3

Flow Chart

19
Case diagram

20
ER Diagram

21
User Case Diagram

22
Spiral Model

23
Modules

A Staff Management System typically includes several key modules to help with
the efficient management of employees. Here are the common modules you might
consider for your system:
1. Employee Information Management
• Stores personal and professional details of employees (e.g., name, contact
info, job role, department).
• Provides profile view and edit options.
2. Attendance & Time Tracking
• Tracks employee attendance, leaves, and work hours.
• Offers integration with biometric systems for attendance.
• Manages holidays, shift timings, and overtime.
3. Leave Management
• Allows employees to request and track leave.
• Automates leave approval workflow.
• Provides leave balance and accrual tracking.
4. Payroll Management
• Manages salary computation, including deductions, taxes, bonuses, and
benefits.
• Generates pay slips and tax forms.
• Integrates with time tracking and attendance for automated salary
calculation.
5. Recruitment & Onboarding
• Tracks job openings, applications, and recruitment workflows.
• Manages onboarding processes, from documentation to orientation
schedules.
• Stores applicant data for future reference.
6. Performance Management

24
• Tracks employee performance, appraisals, and feedback.
• Supports goal setting, evaluations, and performance reviews.
• Provides reports on KPIs, targets, and productivity.
7. Training & Development
• Manages training schedules, modules, and certifications.
• Tracks employee participation and progress in training programs.
• Assesses training needs and outcomes.
8. Benefits and Compensation Management
• Manages employee benefits like insurance, retirement plans, and bonuses.
• Tracks eligibility, enrollment, and usage of benefits.
9. Document Management
• Stores employee documents such as contracts, NDAs, and performance
reports.
• Provides secure access to sensitive information.
10. Compliance & Legal Management
• Tracks labor laws, regulatory requirements, and compliance certifications.
• Automates the generation of compliance reports.
• Manages audits and risk assessments.
11. Self-Service Portal
• Enables employees to view personal details, attendance, payroll, and apply
for leaves.
• Facilitates access to forms, policies, and other resources.
12. Analytics and Reporting
• Generates reports on employee data, attendance, performance, and payroll.
• Offers dashboards and insights to support decision-making.

25
Gantt Chart

26
Chapter-4

Frontend

The frontend of the Staff Management System is built using Tkinter, a standard
GUI toolkit for Python. This provides a simple and intuitive interface for users
to interact with the application.
1. User Interface Design:
o The interface includes various widgets such as labels, entry fields,
buttons, and tables (using ttk.Treeview) for displaying data.
o The layout is organized in a grid format to ensure a clean and user-
friendly design.
2. User Input Forms:
o Users can enter staff details (name and department) into input
fields.
o Form validation is performed to ensure that all required fields are
filled before submission.
3. Display Data:
o Staff records are displayed in a table format, allowing users to view
all entries at a glance.
o The Treeview widget is used for this purpose, providing an
organized way to present data.
4. Interactivity:
o Buttons are provided for actions like adding staff, which trigger
backend functions to process data.
o Message boxes (e.g., messagebox.showinfo) are used to provide
feedback to users upon successful actions or errors.

27
Backend

The backend of the Staff Management System is responsible for data


management and business logic. It consists of Python scripts that interact with
the MySQL database to perform operations like inserting, retrieving, updating,
and deleting staff records.
Key Features of the Backend
1. Database Connection:
o The backend uses the mysql.connector library to establish a
connection with the MySQL database.
o Connection details such as hostname, username, password, and
database name are provided.
2. CRUD Operations:
o Create: Adding new staff records to the database.
o Read: Fetching existing staff records to display in the frontend.
o Update: Modifying existing staff information (this feature can be
added).
o Delete: Removing staff records from the database (this feature can
be added).
3. Error Handling:
o The backend handles potential errors during database operations,
ensuring that users are informed if something goes wrong (e.g.,
connection issues or SQL errors).
4. Data Validation:
o While the frontend checks for empty fields, the backend can also
validate data before executing SQL queries (e.g., checking for
duplicates).

28
Coding

from tkinter import*


from tkinter import ttk
from PIL import Image,ImageTk
import mysql.connector
from tkinter import messagebox

#Login page

def login():
username= entry1.get()
password= entry2.get()

if username== '' and password== '':


messagebox.showerror('login','Cannot be empty!')
elif username == 'Shruti' and password == '123456':
messagebox.showinfo('login','Login Success')
root.destroy()

else:
messagebox.showerror('login','Incorrect Username or Password')

root=Tk()
root.configure(bg='lightblue')

29
global entry1
global entry2

label1= Label(root, text='Staff Management


System',bg='cyan4',fg='black',font=('palatino linotype',35))
label1.place(x=0, y=0,width=1400,height=100)

label0= Label(root, text='Welcome To User


Login',bg='lightblue',fg='black',font=('palatino linotype',20))
label0.place(x=500, y=160)

label2= Label(root, text='Username :',font=('palatino


linotype',20),bg='lightblue',fg='black')
label2.place(x=420,y=240)

label3= Label(root, text='Password :',font=('palatino


linotype',20),bg='lightblue',fg='black')
label3.place(x=420,y=340)

entry1= Entry(root,font=('palatino linotype', 18))


entry1.place(x=600,y=245)

entry2= Entry(root,font=('palatino linotype',18),show='*')


entry2.place(x=600,y=345)

button= Button(root, text='Login',bg='grey',fg='black',font=('palatino


linotype',20),bd=5,command=login)

30
button.place(x=630, y=420)

root.mainloop()

class Staff:
def __init__(self,root):
self.dep=StringVar()
self.root=root
self.root.geometry("1530x790+0+0")
self.root.title('Staff Management System')

#Variables
self.var_dep=StringVar()
self.var_name=StringVar()
self.var_desig=StringVar()
self.var_doj=StringVar()
self.var_sal=StringVar()
self.var_gen=StringVar()
self.var_dob=StringVar()
self.var_phone=StringVar()
self.var_email=StringVar()
self.var_idprooftype=StringVar()
self.var_idproof=StringVar()

31
self.var_add=StringVar()
self.var_maritial=StringVar()
self.var_country=StringVar()

lbl_title=Label(self.root,text='STAFF MANAGEMENT
SYSTEM',font=('times new roman',37,'bold'),fg='black',bg='lightgray')
lbl_title.place(x=0,y=0,width=1400,height=50)

#LOGO
img_logo=Image.open('photos/staffimg.jpg')
img_logo=img_logo.resize((50,50),Image.Resampling.LANCZOS)
self.photo_logo=ImageTk.PhotoImage(img_logo)

self.logo=Label(self.root,image=self.photo_logo)
self.logo.place(x=270,y=0,width=50,height=50)

#Imageframe
img_frame=Frame(self.root,bd=2,relief=RIDGE,bg='black')
img_frame.place(x=0,y=50,width=1275,height=104)

#1ST img
img1=Image.open('photos/imgg.jpeg')
img1=img1.resize((540,100),Image.Resampling.LANCZOS)
self.photo1=ImageTk.PhotoImage(img1)

self.img_1=Label(img_frame,image=self.photo1)
32
self.img_1.place(x=700,y=0,width=700,height=100)

#2ND img
img2=Image.open('photos/imgg.jpeg')
img2=img2.resize((540,100),Image.Resampling.LANCZOS)
self.photo2=ImageTk.PhotoImage(img2)

self.img_2=Label(img_frame,image=self.photo2)
self.img_2.place(x=0,y=0,width=500,height=100)

#3rd img
img3=Image.open('photos/imgg.jpeg')
img3=img3.resize((540,100),Image.Resampling.LANCZOS)
self.photo3=ImageTk.PhotoImage(img3)

self.img_3=Label(img_frame,image=self.photo3)
self.img_3.place(x=500,y=0,width=500,height=100)

#Main frame
main_frame=Frame(self.root,bd=2,relief=RIDGE,bg='white')
main_frame.place(x=5,y=160,width=1260,height=475)

33
#Upper frame
upper_frame=LabelFrame(main_frame,bd=3,relief=RIDGE,bg='white',text
='Staff Information',font=('times new roman',15,'bold'),fg='teal')
upper_frame.place(x=7,y=0,width=1240,height=245)

#Department
lbl_dep=Label(upper_frame,text='Department',font=('palatino
linotype',12,'bold'),bg='white')
lbl_dep.grid(row=0,column=0,padx=2)

combo_dep=ttk.Combobox(upper_frame,textvariable=self.var_dep,font=('
palatino linotype',12,'bold'),width=18,state='readonly')
combo_dep['value']=('Select
Department','Design','Finance','HR','IT','Maintenance','Marketing','Operations','P
roduction','Sales')
combo_dep.current(0)
combo_dep.grid(row=0,column=1,padx=2,pady=7)

#Name
lbl_name=Label(upper_frame,font=('palatino
linotype',12,'bold'),text='Name :',bg='white')
lbl_name.grid(row=1,column=0,padx=2,pady=7)

txt_name=ttk.Entry(upper_frame,textvariable=self.var_name,width=18,fon
t=('palatino linotype',12,'bold'))
txt_name.grid(row=1,column=1,padx=2,pady=7)

34
#Designition
lbl_designition=Label(upper_frame,font=('palatino
linotype',12,'bold'),text='Designition :',bg='white')
lbl_designition.grid(row=2,column=0,padx=2,pady=7)

txt_designition=ttk.Entry(upper_frame,textvariable=self.var_desig,width=
18,font=('palatino linotype',12,'bold'))
txt_designition.grid(row=2,column=1,padx=2,pady=7)

#Email
lbl_email=Label(upper_frame,font=('palatino
linotype',12,'bold'),text='Email :',bg='white')
lbl_email.grid(row=3,column=2,padx=2,pady=7)

txt_email=ttk.Entry(upper_frame,textvariable=self.var_email,width=18,fon
t=('palatino linotype',12,'bold'))
txt_email.grid(row=3,column=3,padx=2,pady=7)

#Address
lbl_address=Label(upper_frame,font=('palatino
linotype',12,'bold'),text='Address :',bg='white')
lbl_address.grid(row=0,column=4,padx=2,pady=7)

txt_address=ttk.Entry(upper_frame,textvariable=self.var_add,width=18,fon
t=('palatino linotype',12,'bold'))
txt_address.grid(row=0,column=5,padx=2,pady=7)

35
#marriage status
lbl_status=Label(upper_frame,text='Maritial Status',font=('palatino
linotype',12,'bold'),bg='white')
lbl_status.grid(row=1,column=4,padx=2,pady=7)

combo_status=ttk.Combobox(upper_frame,textvariable=self.var_maritial,f
ont=('palatino linotype',12,'bold'),width=18,state='readonly')
combo_status['value']=('Select Status','Single','Married')
combo_status.current(0)
combo_status.grid(row=1,column=5,padx=2,pady=7)

#DOB
lbl_address=Label(upper_frame,font=('palatino
linotype',12,'bold'),text='Date Of Birth :',bg='white')
lbl_address.grid(row=1,column=2,padx=2,pady=7)

txt_address=ttk.Entry(upper_frame,textvariable=self.var_dob,width=18,fo
nt=('palatino linotype',12,'bold'))
txt_address.grid(row=1,column=3,padx=2,pady=7)

#DOJ
lbl_address=Label(upper_frame,font=('palatino
linotype',12,'bold'),text='Date Of Joining :',bg='white')
lbl_address.grid(row=3,column=0,padx=2,pady=7)

txt_address=ttk.Entry(upper_frame,textvariable=self.var_doj,width=18,fon
t=('palatino linotype',12,'bold'))

36
txt_address.grid(row=3,column=1,padx=2,pady=7)

#ID proof
com_txt_proof=ttk.Combobox(upper_frame,textvariable=self.var_idprooft
ype,state='readonly',font=('palatino linotype',12,'bold'),width=18)
com_txt_proof['value']=('Select ID Proof','Aadhar Card','Pan Card','Driving
License')
com_txt_proof.current(0)
com_txt_proof.grid(row=4,column=2,padx=2,pady=7)

txt_proof=ttk.Entry(upper_frame,textvariable=self.var_idproof,width=22,f
ont=('palatino linotype',12,'bold'))
txt_proof.grid(row=4,column=3,padx=2,pady=7)

#gender
lbl_gender=Label(upper_frame,text='Gender',font=('palatino
linotype',12,'bold'),bg='white')
lbl_gender.grid(row=0,column=2,padx=2,pady=7)

combo_gender=ttk.Combobox(upper_frame,textvariable=self.var_gen,font
=('palatino linotype',12,'bold'),width=18,state='readonly')
combo_gender['value']=('Select Gender','Male','Female','Other')
combo_gender.current(0)
combo_gender.grid(row=0,column=3,padx=2,pady=7)

#phone

37
lbl_phone=Label(upper_frame,font=('palatino
linotype',12,'bold'),text='Phone No :',bg='white')
lbl_phone.grid(row=2,column=2,padx=2,pady=7)

txt_phone=ttk.Entry(upper_frame,textvariable=self.var_phone,width=18,fo
nt=('palatino linotype',12,'bold'))
txt_phone.grid(row=2,column=3,padx=2,pady=7)

#Country
lbl_con=Label(upper_frame,font=('palatino
linotype',12,'bold'),text='Country :',bg='white')
lbl_con.grid(row=2,column=4,padx=2,pady=7)

txt_con=ttk.Entry(upper_frame,textvariable=self.var_country,width=18,fo
nt=('palatino linotype',12,'bold'))
txt_con.grid(row=2,column=5,padx=2,pady=7)

#CTC
lbl_ctc=Label(upper_frame,font=('palatino linotype',12,'bold'),text='Salary
(CTC) :',bg='white')
lbl_ctc.grid(row=4,column=0,padx=2,pady=7)

txt_ctc=ttk.Entry(upper_frame,textvariable=self.var_sal,width=18,font=('p
alatino linotype',12,'bold'))
txt_ctc.grid(row=4,column=1,padx=2,pady=7)

38
#button frame
button_frame=Frame(upper_frame,bd=5,relief=RIDGE,bg='lightgrey')
button_frame.place(x=980,y=0,width=230,height=207)

btn_add=Button(button_frame,text="Save",command=self.add_data,font=(
'palatino linotype',12,'bold'),width=15,bg='lightblue',fg='black')
btn_add.grid(row=0,column=0,padx=32,pady=5)

btn_add=Button(button_frame,text="Update",command=self.update_data,f
ont=('palatino linotype',12,'bold'),width=15,bg='lightblue',fg='black')
btn_add.grid(row=1,column=0,padx=32,pady=5)

btn_add=Button(button_frame,text="Delete",command=self.delete_data,fo
nt=('palatino linotype',12,'bold'),width=15,bg='lightblue',fg='black')
btn_add.grid(row=2,column=0,padx=32,pady=5)

btn_add=Button(button_frame,text="Clear",command=self.reset_data,font
=('palatino linotype',12,'bold'),width=15,bg='lightblue',fg='black')
btn_add.grid(row=3,column=0,padx=32,pady=5)

#down frame
down_frame=LabelFrame(main_frame,bd=2,relief=RIDGE,bg='white',text
='Staff Information Table',font=('times new roman',15,'bold'),fg='teal')
down_frame.place(x=7,y=245,width=1240,height=215)

#search frame
search_frame=LabelFrame(down_frame,bd=3,relief=RIDGE,bg='lightgrey
',text='Search Staff Information',font=('times new roman',10,'bold'),fg='black')
search_frame.place(x=2,y=0,width=1230,height=55)

39
#search
self.var_com_search=StringVar()
com_txt_search=ttk.Combobox(search_frame,textvariable=self.var_com_s
earch,state='readonly',font=('platino linotype',11,),width=10)

com_txt_search['value']=('Search By','Phone No','ID proof')


com_txt_search.current(0)
com_txt_search.grid(row=0,column=1,padx=5,pady=4)

self.var_search=StringVar()
txt_search=ttk.Entry(search_frame,textvariable=self.var_search,font=('plati
no linotype',11,'bold'),width=25)
txt_search.grid(row=0,column=2,padx=7,pady=4)

btn_search=Button(search_frame,text='Search',command=self.search_data,
font=('platino linotype',11,'bold'),width=14,bg='lightblue')
btn_search.grid(row=0,column=3,padx=5)

btn_search=Button(search_frame,text='Show
All',command=self.fetch_data,font=('platino
linotype',11,'bold'),width=14,bg='lightblue')
btn_search.grid(row=0,column=4,padx=5)

40
#===========================STAFF
TABLE=======================

#table frame
table_frame=Frame(down_frame,bd=3,relief=RIDGE,bg='lightgrey')
table_frame.place(x=2,y=60,width=1230,height=135)

scroll_x=ttk.Scrollbar(table_frame,orient=HORIZONTAL)
scroll_y=ttk.Scrollbar(table_frame,orient=VERTICAL)

self.staff_table=ttk.Treeview(table_frame,column=('1','2','3','4','5','6','7','8','9','1
0','11','12','13','14'),xscrollcommand=scroll_x.set,yscrollcommand=scroll_y.set)

scroll_x.pack(side=BOTTOM,fill=X)
scroll_y.pack(side=RIGHT,fill=Y)

scroll_x.config(command=self.staff_table.xview)
scroll_y.config(command=self.staff_table.yview)

self.staff_table.heading('1',text='Department')
self.staff_table.heading('2',text='Name')
self.staff_table.heading('3',text='Designition')
self.staff_table.heading('4',text='Date Of Joining')
self.staff_table.heading('5',text='Salary(CTC)')
self.staff_table.heading('6',text='Gender')
self.staff_table.heading('7',text='Date Of Birth')
self.staff_table.heading('8',text='Phone No')

41
self.staff_table.heading('9',text='E-mail')
self.staff_table.heading('10',text='ID Proof Type')
self.staff_table.heading('11',text='ID Proof')
self.staff_table.heading('12',text='Address')
self.staff_table.heading('13',text='Maritial Status')
self.staff_table.heading('14',text='Country')

self.staff_table['show']='headings'

self.staff_table.column('1',width=100)
self.staff_table.column('2',width=100)
self.staff_table.column('3',width=100)
self.staff_table.column('4',width=100)
self.staff_table.column('5',width=100)
self.staff_table.column('6',width=100)
self.staff_table.column('7',width=100)
self.staff_table.column('8',width=100)
self.staff_table.column('9',width=100)
self.staff_table.column('10',width=100)
self.staff_table.column('11',width=100)
self.staff_table.column('12',width=100)
self.staff_table.column('13',width=100)
self.staff_table.column('14',width=100)

self.staff_table.pack(fill=BOTH,expand=1)
self.staff_table.bind("<ButtonRelease>",self.get_cursor)

42
self.fetch_data()

#================================function
declaration=========================

def add_data(self):
if self.dep.get()==" " or self.var_email.get()=="":
messagebox.showerror('Error','All fields are required')
else:
try:
conn=mysql.connector.connect(host='localhost',username='root',pass
word='Shruti@3100',database='staffmanager')
my_cursor=conn.cursor()
my_cursor.execute('insert into staff
values(%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)',(

self.var_dep
.get(),
self.var_na
me.get(),
self.var_des
ig.get(),
self.var_doj
.get(),
self.var_sal.
get(),
self.var_gen
.get(),

43
self.var_dob
.get(),
self.var_pho
ne.get(),
self.var_em
ail.get(),
self.var_idp
rooftype.get(),
self.var_idp
roof.get(),
self.var_add
.get(),
self.var_ma
ritial.get(),
self.var_cou
ntry.get(),
))

conn.commit()
self.fetch_data()
conn.close()
messagebox.showinfo('Success','Staff has been
added!',parent=self.root)
except Exception as es:
messagebox.showerror('Error',f'Due to:{str(es)}',parent=self.root)

#fetch data
def fetch_data(self):
conn=mysql.connector.connect(host='localhost',username='root',password
='Shruti@3100',database='staffmanager')
44
my_cursor=conn.cursor()
my_cursor.execute('select * from staff')
data=my_cursor.fetchall()
if len(data)!=0:
self.staff_table.delete(*self.staff_table.get_children())
for i in data:
self.staff_table.insert("",END,values=i)
conn.commit()
conn.close()

#Get cursor

def get_cursor(self,event=""):
cursor_row=self.staff_table.focus()
content=self.staff_table.item(cursor_row)
data=content['values']

self.var_dep.set(data[0])
self.var_name.set(data[1])
self.var_desig.set(data[2])
self.var_doj.set(data[3])
self.var_sal.set(data[4])
self.var_gen.set(data[5])
self.var_dob.set(data[6])
self.var_phone.set(data[7])

45
self.var_email.set(data[8])
self.var_idprooftype.set(data[9])
self.var_idproof.set(data[10])
self.var_add.set(data[11])
self.var_maritial.set(data[12])
self.var_country.set(data[13])

def update_data(self):
if self.dep.get()==" " or self.var_email.get()=="":
messagebox.showerror('Error','All fields are required')
else:
try:
update=messagebox.askyesno('Update','Are you sure to update data?')
if update>0:
conn=mysql.connector.connect(host='localhost',username='root',pa
ssword='Shruti@3100',database='staffmanager')
my_cursor=conn.cursor()
my_cursor.execute('update staff SET
Department=%s,Name=%s,Designition=%s,Date_Of_Joining=%s,Salary(CTC)
=%s,Gender=%s,Date_Of_Birth=%s,Phone_No=%s,Email=%s,Id_Proof_Type
=%s,Address=%s,Maritial_Status=%s,Country=%s, where idproof=%s',(

sel
f.var_dep.get(),

sel
f.var_name.get(),

46
sel
f.var_desig.get(),

sel
f.var_doj.get(),

sel
f.var_sal.get(),

sel
f.var_gen.get(),

sel
f.var_dob.get(),

sel
f.var_phone.get(),

sel
f.var_email.get(),

sel
f.var_idprooftype.get(),

sel
f.var_add.get(),

sel
f.var_maritial.get(),

sel
f.var_country.get(),
47
sel
f.var_idproof.get()

))

else:
if not update:
return
conn.commit()
self.fetch_data()
conn.close()
messagebox.showinfo('Success','Staff Successfully
Updated',parent=self.root)
except Exception as es:
messagebox.showerror('Error',f'Due to:{str(es)}',parent=self.root)

#delete
def delete_data(self):
if self.var_idproof.get()=="":
messagebox.showerror('Error',"All fields are required")
else:
try:
Delete=messagebox.askyesno('Delete','Are you
sure?',parent=self.root)
if Delete>0:
conn=mysql.connector.connect(host='localhost',username='root',pa
ssword='Shruti@3100',database='staffmanager')

48
my_cursor=conn.cursor()
sql='delete from staff where idproof=%s'
value=(self.idproof.get(),)
my_cursor.execute(sql,value)
else:
if not Delete:
return
conn.commit()
self.fetch_data()
conn.close()
messagebox.showinfo('Delete','Staff Successfully
Deleted',parent=self.root)
except Exception as es:
messagebox.showerror('Error',f'Due to:{str(es)}',parent=self.root)

#reset
def reset_data(self):
self.var_dep.set("Select Department")
self.var_name.set("")
self.var_desig.set("")
self.var_doj.set("")
self.var_sal.set("")
self.var_gen.set("")
self.var_dob.set("")
self.var_phone.set("")
self.var_email.set("")
self.var_idprooftype.set("Select Id Proof")
self.var_idproof.set("")
49
self.var_add.set("")
self.var_maritial.set("Maritial Status")
self.var_country.set("")

#search
def search_data(self):
if self.var_com_search.get()=='' or self.var_search.get()=='':
messagebox.showerror('Error','Please select an option')
else:
try:
conn=mysql.connector.connect(host='localhost',username='root',pass
word='Shruti@3100',database='staffmanager')
my_cursor=conn.cursor()
my_cursor.execute('select * from staff where '
+str(self.var_com_search.get())+"LIKE'%"+str(self.var_search.get()+"%'"))
rows=my_cursor.fetchall()
if len(rows)!=0:
self.staff_table.delete(*self.staff_table.get_children())
for i in rows:
self.staff_table.insert("",END,values=i)
conn.commit()
conn.close()
except Exception as es:
messagebox.showerror('Error',f'Due to:{str(es)}',parent=self.root)

if __name__=="__main__":
root=Tk()
50
obj=Staff(root)
root.mainloop()

51
Results

Login Page

Main Page

52
Database

53
Testing

In the development of a Staff Management System , several testing phases are


essential to ensure the system works as intended.
Unit testing, integration testing, and system acceptance testing are critical parts
of the quality assurance process.

1.Unit Testing : To validate the correctness of individual components (units) of


the staff management system in isolation.
Test Case: For instance, a unit test might check whether a password meets the
required complexity, ensuring it contains upper-case, lower-case letters,
numbers, and symbols.

2. Integration Testing : To test the interaction between different modules or


components of the password management system to ensure they work together
properly.
Test Case: Multiple units or modules that have been combined into a subsystem.

3. System Testing : To verify the overall functionality of the entire password


management system against the specified requirements. It ensures that the
system works end-to-end.
Test Case: The entire staff management system as a whole, including all
modules and components (add staff information ,update ,delete etc.).

4. Acceptance testing : To validate the system against business requirements


and ensure it is ready for release to end users.
Test Case: Acceptance testing is the final phase of testing and is focused on
ensuring that the system meets the expectations of stakeholders and users.

54
Chapter-5

Conclusion

A staff management system is a critical tool for enhancing the efficiency,


organization, and overall effectiveness of workforce management within
businesses. By automating tasks like attendance tracking, scheduling, payroll
management, and performance evaluation, it simplifies traditionally labor-
intensive processes. This allows organizations to reduce errors, save time, and
minimize the administrative burden on HR teams, freeing them to focus on
strategic decision-making and employee development.
One of the primary benefits of a staff management system is centralized data
management. By housing all employee-related information in a unified system,
it eliminates redundancies and inconsistencies often seen in manual record-
keeping. This not only improves accuracy but also enhances data accessibility,
ensuring that managers can retrieve real-time information for decision-making.
Moreover, it provides better insights into employee performance and operational
trends, facilitating more effective workforce planning and performance
evaluations.
Employee satisfaction is another area where staff management systems excel.
Automating scheduling and leave management ensures fairness and transparency,
reducing potential conflicts between employees and managers. It also promotes
work-life balance by avoiding over-scheduling and enabling employees to have
more control over their work schedules through self-service options. As a result,
employee engagement and retention are often positively impacted.
Despite these advantages, implementing a staff management system can come
with certain challenges, such as high initial setup costs and the need for ongoing
system maintenance and updates. Additionally, organizations need to ensure that
they address data security concerns, as these systems store sensitive employee
information. However, these challenges can be mitigated through careful
planning, investment in the right technology, and proper training for users.
As technology continues to evolve, the future of staff management systems looks
even more promising. Integrating advanced technologies like artificial
intelligence (AI), machine learning, and predictive analytics will enable even
more sophisticated workforce management capabilities, such as forecasting

55
staffing needs, identifying potential skill gaps, and proactively managing
employee wellness and engagement. Furthermore, the shift towards cloud-based
and mobile-friendly systems will offer organizations greater flexibility and
scalability, allowing them to manage their staff remotely and more efficiently.
In conclusion, a well-implemented staff management system is an indispensable
tool for modern organizations. It not only optimizes administrative tasks but also
enhances employee satisfaction and organizational performance. As businesses
continue to grow and the workforce becomes more dynamic, these systems will
play an increasingly vital role in managing staff effectively, contributing to long-
term organizational success.

56
Future Scope

The future scope of a staff management system is promising, with evolving


technology and workforce management needs shaping its trajectory. Here are
some key areas where future staff management systems may evolve:

1. AI and Machine Learning Integration


• Predictive Analytics: AI-powered systems can predict future staffing
needs, optimize scheduling, and identify potential workforce challenges
before they arise.
• Automated Decision-Making: Machine learning algorithms can suggest
ideal shift patterns, task assignments, or even predict employee burnout
based on historical data.
2. Advanced Employee Analytics
• Personalized Insights: Future systems may provide detailed insights into
individual employee performance, behavior, and engagement levels,
helping managers tailor training and development plans.
• Real-Time Monitoring: Systems can track employee performance and
well-being in real-time, offering instant feedback and support to improve
productivity and job satisfaction.
3. Cloud-Based and Mobile Solutions
• Mobile Accessibility: Cloud-based, mobile-friendly solutions will allow
employees and managers to access the system from anywhere, improving
communication and flexibility.
• Scalability: Cloud platforms offer easy scalability, allowing companies
to manage a growing workforce without significant infrastructure
changes.
4. Employee Self-Service
• Enhanced Self-Management: Employees may have more autonomy
with tools that allow them to manage their schedules, request time off, or
provide feedback in real-time through mobile apps.

57
• Automated Assistance: Virtual assistants or chatbots could provide
employees with instant answers to HR-related questions, reducing the
load on HR staff.
5. Integration with Other Business Tools
• Unified Platforms: Future staff management systems will likely integrate
seamlessly with other business tools (e.g., payroll, CRM, project
management), creating a holistic approach to managing operations.
• Cross-Department Collaboration: Enhanced integration across
departments can improve resource planning, performance reviews, and
collaboration between HR, finance, and operations.
6. Enhanced Security and Compliance
• Blockchain for Data Security: Blockchain technology may be integrated
to ensure secure, tamper-proof records of employee data, ensuring data
integrity and compliance with privacy regulations.
• Global Compliance Management: Systems will evolve to manage
compliance with international labor laws as businesses expand globally,
providing automated updates on regulatory changes.
7. Employee Wellness and Mental Health Tracking
• Health and Well-being Monitoring: Systems could incorporate features
to track employee mental health and well-being, integrating wearable
technology data (e.g., fitness trackers) to monitor stress levels and
productivity.
• Preventive Measures: Early identification of stress or burnout through
analytics will help HR take proactive measures to support employee
wellness.
8. Remote and Hybrid Work Management
• Remote Team Optimization: As remote and hybrid work models grow,
staff management systems will focus on managing distributed teams,
offering tools for virtual collaboration, time tracking, and performance
monitoring.
• Flexibility and Customization: Systems will evolve to support flexible
working hours and shifts, allowing organizations to adapt to diverse
working patterns in real-time.
9. Employee Engagement and Retention Tools
58
• Gamification: Future systems may include gamified elements to enhance
employee engagement, using incentives and rewards for achieving
performance milestones.
• Retention Analytics: Advanced analytics will predict employee turnover
risks, helping HR proactively address retention issues by improving job
satisfaction and career growth opportunities.
10. Sustainability and Green HR
• Eco-Friendly Initiatives: Staff management systems could integrate
sustainability tracking by helping organizations monitor and reduce their
carbon footprint, for instance by optimizing work schedules to reduce
energy use.
• Paperless Operations: Fully digital systems will further reduce the
reliance on paper, contributing to environmentally friendly business
practices.
The future scope of staff management systems is poised to be highly adaptable
and intelligent, empowering organizations to not only streamline their
operations but also enhance employee experience and engagement, all while
leveraging emerging technologies.

59
References

www.google.com
python.org
https://code.visualstudio.com/insiders/
www.youtube.com

60

You might also like