The Leave Management System Project In Python is a fully functional desktop application developed in Python that covers all of the features that IT students and computer-related courses will require for their college projects or assignments.
This Leave Management System has all the features that can be helpful if you are struggling with managing the leave of your employees. This system can produce well-organized data.
This Leave Management System In Python is quite useful, and the concept and logic of the project are simple to grasp. The source code is open source and free to use.
Simply scroll down and click the download option.
Leave Management System Project In Python: Project Output
What Is a Leave Management System Project In Python?
The Leave Management System Using Python is a system that allows employees to seek time off and for managers to accept those requests.
Previously, keeping track of how much leave time staff had available was done manually using sheets of paper.
Benefits Of Leave Management System
- Getting rid of processes that are done by hand and on paper – The main functions of employee absence management are automated with a leave management system, which provides more functionality than spreadsheets and outdated time and attendance systems. All time and attendance operations are managed through a central platform accessible to managers, employees, and HR. You may finally say goodbye to manual absence monitoring because time off requests and reporting are now done in the cloud.
- Monitoring of Leave in Real-Time – A leave management system allows you full access to all employee leave data, including accruals, leave balances, and information on unusual situations such when employees borrow against future accruals. Furthermore, having real-time access to employee leave data lets you to know who is approaching their leave limit and who has yet to take any leave and may require encouragement. You can also take efforts to organize shift coverage and temporary staff replacements if you have full visibility into which employees have time off planned in the future.
- Regulatory leave requirements and collective bargaining agreements must be followed – Managing your employees necessitates a thorough understanding of both current leave regulations and your obligations under any existing collective bargaining agreements. You can use a leave management system to manage leave for all employees, whether they are hourly or salaried, unionized and working under a collective bargaining agreement, or working in different locations.
- Requests for leave are aligned with organizational policies – You won’t have to keep track of carryover rules and policies for leave exceptions manually if you use a good leave management system. Instead, you can incorporate your leave policies within the software. As a result, managers don’t have to worry about approving requests that aren’t in line with the policy, and you don’t have to worry about whether accruals have been applied correctly.
- Leave Management Made Easier with Automated Notifications – Notifications can be customized to notify you when employees request time off, when requests are approved, and when employees are approaching their time off limitations. You may also set up the program to notify managers when a new request has to be addressed. You may address requests and take swift action when there are exceptions that require immediate attention, rather than letting them fall through the gaps or waiting too long for a response.
- Managerial and employee communication is better – Employees don’t have to worry about chasing down their manager to take time off when they have an easy-to-use portal for requesting time off and viewing their balances. Managers can also enjoy a stress-free procedure for handling future planned leave requests thanks to leave bidding tools and the opportunity to place requests on standby. Managers also have access to their team’s historical time off data, allowing them to see who is taking time off and who is not. Managers can use this information to talk to employees one-on-one on how to make the most of their vacation time and avoid burnout.
About the Project: Leave Management System Project In Python With Source Code
The Leave Management System Python Project is a desktop application written and designed in the Python programming language.
The project is open source, and it was made for novices who wish to learn Python. This Employee Leave Management System Project In Python keeps track of the employee’s information as well as the type of leave he or she is taking.
Employees can request leave and wait to see if they are authorized by their boss. SQLite3 is the database utilized in this project.
The system is simple to use. You just need to login in order to access the system. The password is inside of the source code.
All the things that you need are answerable, and the user interface is pretty smooth and elegant. I hope this project can help you in your journey as a Python developer.
Project Details and Technology: Leave Management System Project In Python
Project Name: | Leave Management System Project In Python |
Abstract: | This Leave Management System Project In Python is a simple Python project made to help IT students with their projects or homework, as well as developers who want to use this project as a guide for the full development of the project. |
Language/s Used: | Python (GUI Based) |
Python version (Recommended): | 3.8 or 3.9 |
Type: | Desktop Application |
Developer: | Source Code Hero |
Updates: | 0 |
The code given below is the full source code on the Leave Management System Project In Python
Installed Libraries!
import sqlite3 import tkinter import tkinter.messagebox as tk from tkinter.font import Font from easygui import * from tkinter import * from turtle import * import randoimport sqlite3 import tkinter import tkinter.messagebox as tk from tkinter.font import Font from easygui import * from tkinter import * from turtle import * import randomm
Complete Source Code!
import sqlite3 import tkinter import tkinter.messagebox as tk from tkinter.font import Font from easygui import * from tkinter import * from turtle import * import random conn = sqlite3.connect('leaveDb.db') cur = conn.cursor() #conn.execute("CREATE TABLE balance (employee_id text,sickleave int,maternityleave int,emergencyleave int)") #conn.execute("CREATE TABLE status (leave_id int,employee_id text,leave text,Date1 text,Date2 text,days int,status text)") #conn.execute('''CREATE TABLE employee (employee_id text,Name text,ContactNumber text,Password text)''') def AdminLogin(): message = "Enter Username and Password" title = "Admin Login" fieldnames = ["Username", "Password"] field = [] field = multpasswordbox(message, title, fieldnames) if field[0] == 'admin' and field[1] == 'admin': tkinter.messagebox.showinfo("Admin Login", "Login Successfully") adminwindow() else: tk.showerror("Error info", "Incorrect username or password") def EmployeeLogin(): message = "Enter Employee ID and Password" title = "Employee Login" fieldnames = ["Employee ID", "Password"] field = [] field = multpasswordbox(message, title, fieldnames) for row in conn.execute('SELECT * FROM employee'): if field[0] == row[0] and field[1] == row[3]: global login login = field[0] f = 1 print("Success") tkinter.messagebox.showinfo("Employee Login", "Login Successfully") EmployeeLoginWindow() break if not f: print("Invalid") tk.showerror("Error info", "Incorrect employee id or password") def Employeelogout(): global login login = -1 LoginWindow.destroy() def EmployeeLeaveStatus(): global leaveStatus leaveStatus = [] for i in conn.execute('SELECT * FROM status where employee_id=?', login): leaveStatus = i WindowStatus() def EmployeeAllStatus(): allStatus = Toplevel() txt = Text(allStatus) for i in conn.execute('SELECT * FROM status where employee_id=?', login): txt.insert(INSERT, i) txt.insert(INSERT, '\n') txt.pack() def EmployeeInformationWindow(): employeeInformation = Toplevel() txt = Text(employeeInformation) for i in conn.execute('SELECT employee_id,Name,ContactNumber FROM employee where employee_id=?', login): txt.insert(INSERT, i) txt.insert(INSERT, '\n') txt.pack() def EmployeeAllInformationWindow(): allEmployeeInformation = Toplevel() txt = Text(allEmployeeInformation) for i in conn.execute('SELECT employee_id,Name,ContactNumber FROM employee'): txt.insert(INSERT, i) txt.insert(INSERT, '\n') txt.pack() def WindowStatus(): StatusWindow = Toplevel() label_1 = Label(StatusWindow, text="Employee ID=", fg="blue", justify=LEFT, font=("Calibri", 16)) label_2 = Label(StatusWindow, text=leaveStatus[1], font=("Calibri", 16)) label_3 = Label(StatusWindow, text="Type=", fg="blue", font=("Calibri", 16), justify=LEFT) label_4 = Label(StatusWindow, text=leaveStatus[2], font=("Calibri", 16)) label_5 = Label(StatusWindow, text="start=", fg="blue", font=("Calibri", 16), justify=LEFT) label_6 = Label(StatusWindow, text=leaveStatus[3], font=("Calibri", 16)) label_7 = Label(StatusWindow, text="end=", fg="blue", font=("Calibri", 16), justify=LEFT) label_8 = Label(StatusWindow, text=leaveStatus[4], font=("Calibri", 16)) label_9 = Label(StatusWindow, text="Status:", fg="blue", font=("Calibri", 16), justify=LEFT) label_10 = Label(StatusWindow, text=leaveStatus[6], font=("Calibri", 16)) label_11 = Label(StatusWindow, text="leave_id:", fg="blue", font=("Calibri", 16), justify=LEFT) label_12 = Label(StatusWindow, text=leaveStatus[0], font=("Calibri", 16)) label_11.grid(row=0, column=0) label_12.grid(row=0, column=1) label_1.grid(row=1, column=0) label_2.grid(row=1, column=1) label_3.grid(row=2, column=0) label_4.grid(row=2, column=1) label_5.grid(row=3, column=0) label_6.grid(row=3, column=1) label_7.grid(row=4, column=0) label_8.grid(row=4, column=1) label_9.grid(row=5, column=0) label_10.grid(row=5, column=1) def balance(): global login check = (login,) global balanced balanced = [] for i in conn.execute('SELECT * FROM balance WHERE employee_id = ?', check): balanced = i WindowBalance() def WindowBalance(): balanceWindow = Toplevel() label_1 = Label(balanceWindow, text="Employee ID=", fg="blue", justify=LEFT, font=("Calibri", 16)) label_2 = Label(balanceWindow, text=balanced[0], font=("Calibri", 16)) label_3 = Label(balanceWindow, text="Sick Leave=", fg="blue", font=("Calibri", 16), justify=LEFT) label_4 = Label(balanceWindow, text=balanced[1], font=("Calibri", 16)) label_5 = Label(balanceWindow, text="Maternity Leave=", fg="blue", font=("Calibri", 16), justify=LEFT) label_6 = Label(balanceWindow, text=balanced[2], font=("Calibri", 16)) label_7 = Label(balanceWindow, text="Emergency Leave=", fg="blue", font=("Calibri", 16), justify=LEFT) label_8 = Label(balanceWindow, text=balanced[3], font=("Calibri", 16)) label_1.grid(row=0, column=0) label_2.grid(row=0, column=1) label_3.grid(row=1, column=0) label_4.grid(row=1, column=1) label_5.grid(row=2, column=0) label_6.grid(row=2, column=1) label_7.grid(row=3, column=0) label_8.grid(row=3, column=1) def apply(): message = "Enter the following details " title = "Leave Apply" fieldNames = ["Employee ID", "From", "To", "days"] fieldValues = [] fieldValues = multenterbox(message, title, fieldNames) message1 = "Select type of leave" title1 = "Type of leave" choices = ["Sick leave", "Maternity leave", "Emergency leave"] choice = choicebox(message1, title1, choices) leaveid = random.randint(1, 1000) conn.execute("INSERT INTO status(leave_id,employee_id,leave,Date1,Date2,days,status) VALUES (?,?,?,?,?,?,?)", (leaveid, fieldValues[0], choice, fieldValues[1], fieldValues[2], fieldValues[3], "Pending")) conn.commit() def LeaveApproval(): message = "Enter leave_id" title = "leave approval" fieldNames = ["Leave_id"] fieldValues = [] fieldValues = multenterbox(message, title, fieldNames) message1 = "Approve/Deny" title1 = "leave approval" choices = ["approve", "deny"] choice = choicebox(message1, title1, choices) conn.execute("UPDATE status SET status = ? WHERE leave_id= ?", (choice, fieldValues[0])) conn.commit() if choice == 'approve': print(0) cur.execute("SELECT leave FROM status WHERE leave_id=?", (fieldValues[0],)) row = cur.fetchall() col = row for row in conn.execute("SELECT employee_id FROM status WHERE leave_id=?", (fieldValues[0],)): print(2) exampleId = row[0] for row in conn.execute("SELECT days FROM status WHERE leave_id=?", (fieldValues[0],)): print(2) exampleDays = row[0] for row in conn.execute("SELECT sickleave from balance where employee_id=?", (exampleId,)): balance = row[0] print(balance) for row in conn.execute("SELECT maternityleave from balance where employee_id=?", (exampleId,)): balance1 = row[0] print(balance1) for row in conn.execute("SELECT emergencyleave from balance where employee_id=?", (exampleId,)): balance2 = row[0] print(balance2) if (col[0] == ('sickleave',)): print(3) conn.execute("UPDATE balance SET sickleave =? WHERE employee_id= ?", ((balance - exampleDays), (exampleId))) if (col[0] == ('maternityleave',)): print(3) conn.execute("UPDATE balance SET maternityleave =? WHERE employee_id= ?", ((balance1 - exampleDays), (exampleId))) if (col[0] == ('emergencyleave',)): print(3) conn.execute("UPDATE balance SET emergencyleave =? WHERE employee_id= ?", ((balance2 - exampleDays), (exampleId))) def leavelist(): leavelistwindow = Toplevel() txt = Text(leavelistwindow) for i in conn.execute('SELECT * FROM status'): txt.insert(INSERT, i) txt.insert(INSERT, '\n') txt.pack() def registration(): message = "Enter Details of Employee" title = "Registration" fieldNames = ["Employee ID", "Name", "Contact Number", "Password"] fieldValues = [] fieldValues = multpasswordbox(message, title, fieldNames) while 1: if fieldValues == None: break errmsg = "" for i in range(len(fieldNames)): if fieldValues[i].strip() == "": errmsg = errmsg + ('"%s" is a required field.\n\n' % fieldNames[i]) if errmsg == "": break fieldValues = multpasswordbox(errmsg, title, fieldNames, fieldValues) conn.execute("INSERT INTO employee(employee_id,Name,ContactNumber,Password) VALUES (?,?,?,?)", (fieldValues[0], fieldValues[1], fieldValues[2], fieldValues[3])) conn.execute("INSERT INTO balance(employee_id,sickleave,maternityleave,emergencyleave) VALUES (?,?,?,?)", (fieldValues[0], 12, 12, 50)) conn.commit() def EmployeeLoginWindow(): # employee login window after successful login global LoginWindow LoginWindow = Toplevel() LoginWindow.wm_attributes('-fullscreen', '1') Background_Label = Label(LoginWindow, image=filename) Background_Label.place(x=0, y=0, relwidth=1, relheight=1) informationEmployee = Button(LoginWindow, text='Employee information', command=EmployeeInformationWindow, bd=12, relief=GROOVE, fg="blue", bg="#ffffb3", font=("Calibri", 36, "bold"), pady=3) informationEmployee['font'] = BtnFont informationEmployee.pack(fill=X) submit = Button(LoginWindow, text='Submit Leave', command=apply, bd=12, relief=GROOVE, fg="blue", bg="#ffffb3", font=("Calibri", 36, "bold"), pady=3) submit['font'] = BtnFont submit.pack(fill=X) LeaveBalance = Button(LoginWindow, text='Leave Balance', command=balance, bd=12, relief=GROOVE, fg="blue", bg="#ffffb3", font=("Calibri", 36, "bold"), pady=3) LeaveBalance['font'] = BtnFont LeaveBalance.pack(fill=X) LeaveApplicationStatus = Button(LoginWindow, text='Last leave status', command=EmployeeLeaveStatus, bd=12, relief=GROOVE, fg="blue", bg="#ffffb3", font=("Calibri", 36, "bold"), pady=3) LeaveApplicationStatus['font'] = BtnFont LeaveApplicationStatus.pack(fill=X) AllLeaveStatus = Button(LoginWindow, text='All leave status', command=EmployeeAllStatus, bd=12, relief=GROOVE, fg="blue", bg="#ffffb3", font=("Calibri", 36, "bold"), pady=3) AllLeaveStatus['font'] = BtnFont AllLeaveStatus.pack(fill=X) LogoutBtn = Button(LoginWindow, text='Logout', bd=12, relief=GROOVE, fg="red", bg="#ffffb3", font=("Calibri", 36, "bold"), pady=3, command=Employeelogout) LogoutBtn['font'] = BtnFont LogoutBtn.pack(fill=X) informationEmployee.pack() submit.pack() LeaveBalance.pack() LeaveApplicationStatus.pack() AllLeaveStatus.pack() LogoutBtn.pack() ExitBtn.pack() def adminwindow(): adminmainwindow = Toplevel() adminmainwindow.wm_attributes('-fullscreen', '1') Background_Label = Label(adminmainwindow, image=filename) Background_Label.place(x=0, y=0, relwidth=1, relheight=1) informationEmployee = Button(adminmainwindow, text='All Employee information', command=EmployeeAllInformationWindow, bd=12, relief=GROOVE, fg="blue", bg="#ffffb3", font=("Calibri", 36, "bold"), pady=3) informationEmployee['font'] = BtnFont informationEmployee.pack(fill=X) LeaveListButton = Button(adminmainwindow, text='Leave approval list', command=leavelist, bd=12, relief=GROOVE, fg="blue", bg="#ffffb3", font=("Calibri", 36, "bold"), pady=3) LeaveListButton['font'] = BtnFont LeaveListButton.pack(fill=X) ApprovalButton = Button(adminmainwindow, text='Approve leave', command=LeaveApproval, bd=12, relief=GROOVE, fg="blue", bg="#ffffb3", font=("Calibri", 36, "bold"), pady=3) ApprovalButton['font'] = BtnFont ApprovalButton.pack(fill=X) LogoutBtn = Button(adminmainwindow, text='Logout', command=adminmainwindow.destroy, bd=12, relief=GROOVE, fg="red", bg="#ffffb3", font=("Calibri", 36, "bold"), pady=3) LogoutBtn['font'] = BtnFont LogoutBtn.pack(fill=X) informationEmployee.pack() LeaveListButton.pack() ApprovalButton.pack() ExitBtn.pack() root = Tk() root.wm_attributes('-fullscreen', '1') root.title("Leave Management System") root.iconbitmap(default='leavelogo.ico') filename = PhotoImage(file="background.gif") background_label = Label(root, image=filename) background_label.place(x=0, y=0, relwidth=1, relheight=1) BtnFont = Font(family='Calibri(Body)', size=20) MainLabel = Label(root, text="Leave Management System", bd=12, relief=GROOVE, fg="White", bg="blue", font=("Calibri", 36, "bold"), pady=3) MainLabel.pack(fill=X) im = PhotoImage(file='login.gif') AdminLgnBtn = Button(root, text='Admin login', bd=12, relief=GROOVE, fg="blue", bg="#ffffb3", font=("Calibri", 36, "bold"), pady=3, command=AdminLogin) AdminLgnBtn['font'] = BtnFont AdminLgnBtn.pack(fill=X) LoginBtn = Button(root, text='Employee login', bd=12, relief=GROOVE, fg="blue", bg="#ffffb3", font=("Calibri", 36, "bold"), pady=3, command=EmployeeLogin) LoginBtn['font'] = BtnFont LoginBtn.pack(fill=X) EmployeeRegistration = Button(root, text='Employee registration', command=registration, bd=12, relief=GROOVE, fg="blue", bg="#ffffb3", font=("Calibri", 36, "bold"), pady=3) EmployeeRegistration['font'] = BtnFont EmployeeRegistration.pack(fill=X) ExitBtn = Button(root, text='Exit', command=root.destroy, bd=12, relief=GROOVE, fg="red", bg="#ffffb3", font=("Calibri", 36, "bold"), pady=3) ExitBtn['font'] = BtnFont ExitBtn.pack(fill=X) MainLabel.pack() AdminLgnBtn.pack() LoginBtn.pack() EmployeeRegistration.pack() ExitBtn.pack() root.mainloop()
This Leave Management System Project In Python also includes a downloadable Project With Source Code for free, just find the downloadable source code below and click to start downloading.
By the way, if you are new to Python programming and you don’t have any idea what Python IDE to use, I have here a list of the Best Python IDE for Windows, Linux, and Mac OS for you.
I also have here How to Download and Install the Latest Version of Python on Windows.
To start executing a Leave Management System Project In Python, make sure that you have installed Python on your computer.
Leave Management System Project In Python: Steps on how to run the project
Time needed: 5 minutes
These are the steps on how to run a Leave Management System Project In Python
- Step 1: Download Source Code
First, find the downloadable source code below and click to start downloading the source code file.
- Step 2: Extract File
Next, after finished to download the file, go to the file location right-click the file and click extract.
- Step 3: Open Project Path and Open CMD (Command Prompt).
For you to run the project, you just need to open the project path and type CMD. The first thing you need to do is type py main.py in the command prompt.
After that, just wait for a few seconds to load the system.
Download the Source Code below!
Summary
This article is a way to enhance and develop our skills and logic ideas which is important in practicing the python programming language which is the most well-known and most usable programming language in many companies.
Related Articles
- Online Leave Management System Project in Django with Source Code
- Leave Management System In PHP With Source Code
- Leave Management System Project In C++ With Source Code
Inquiries
If you have any questions or suggestions about the Leave Management System Project In Python, please feel free to leave a comment below.