Wa0012.
Wa0012.
Wa0012.
Submitted By
VIDHYA B (622019104077)
SWEATHASHREE V (622019104069)
BACHELOR OF ENGINEERING
IN
JUNE – 2022
BONAFIDE CERTIFICATE
SIGNATURE SIGNATURE
ABSTRACT
LIST OF ABBREVATION
1. INTRODUCTION 1
2. SYSTEM ANALYSIS 5
3. FEASIBILITY STUDY 8
5. SOFTWARE DESCRIPTION 10
6. SYSTEM DESIGN&DEVELOPMENT 13
7. PROJECT DESCRIPTION 14
7.1.1 LOGIN
7.1.3 SELECTION
7.1.4 UPDATE
7.1.5 VIEW
7.1.6 CANCEL
8. CONCLUSION & FUTURE ENHANCEMENT 18
8.1 CONCLUSION
9. APPENDIX 20
9.2 SCREENSHOTS
10. REFERENCES 25
LIST OF ABBREVATION
SL - STUDENT LOGIN
OD - ON DUTY
INTRODUCTION
Although it may seem simple, there are many things that can go
wrong with it. Manual tracking of employee attendance and leave is
undoubtedly one of the most tedious and cumbersome tasks. Manual
attendance tracking leads to delays and accounting errors, making
employees dissatisfied and dissatisfied.
Cost may not be a big problem for larger companies but for smaller
companies, it can definitely be a major concern. There are many costs
associated with online leave management systems such as acquisition
costs and maintenance costs. If they do not fit into the budget of these
companies, then they may have to settle for substandard software.
1) Technical Feasibility:
The system can be implemented using computer software & hardware.
An economic discussion on the selected alternative and how it meets
the established objectives and the functional requirements are
discussed further in detail.
2) Operational Feasibility:
The system efficiently operates & reduces manual computation and
time of processing, reducing cost of paperwork and human
errors. Discussion on technological capabilities of developing the
selected alternative and the operational impact of the system on the
current environment is addressed as well.
CHAPTER - 5
SOFTWARE DESCRIPTION
5.1 BACK END
5.1.1 PYTHON 3.10
Software Requirements
Hardware Requirements
Architecture Design
PROJECT DESCRIPTION
• A Selection form is a list of fields that a user will input data and
submit to a company or an individual.
• There are many reasons why you would want a person to select
out a selection form.
• Companies use selection forms to select the customers details,
services, or other programs or plans.
• A View form is a list of fields that a user will input data and
submit to a company or an individual.
• There are many reasons why you would want a person to select
out a View form.
• Companies use view forms to see the student details, programs
or plans.
CHAPTER - 8
8.1 CONCLUSION
It also helps those students who regularly attend the classes but due
manual system., they get marked as absent on the other hand most of
the students who are not attending classes usually get attendance
because of the drawbacks of the existing system.
Thus, Students will not be able to cheat and this application helps to
take action against those students who usually are missing lectures.
Faculties will also have relaxation from the proposal as all hustling and
bustling of maintaining records gets almost eliminated. Overall,
will bring an ease to the life of studying students, parents and teachers.
APPENDIX
import sqlite3
import tkinter
import tkinter.messagebox as tk
import random
conn = sqlite3.connect('leaveDb.db')
cur = conn.cursor()
def AdminLogin():
field = []
adminwindow()
else:
def EmployeeLogin():
field = []
global login
login = field[0]
f=1
print("Success")
EmployeeLoginWindow()
break
if not f:
print("Invalid")
def Employeelogout():
global login
login = -1
LoginWindow.destroy()
def EmployeeLeaveStatus():
global leaveStatus
leaveStatus = []
leaveStatus = i
WindowStatus()
def EmployeeAllStatus():
allStatus = Toplevel()
txt = Text(allStatus)
txt.insert(INSERT, i)
txt.insert(INSERT, '\n')
txt.pack()
def EmployeeInformationWindow():
employeeInformation = Toplevel()
txt = Text(employeeInformation)
txt.insert(INSERT, i)
txt.insert(INSERT, '\n')
txt.pack()
def EmployeeAllInformationWindow():
allEmployeeInformation = Toplevel()
txt = Text(allEmployeeInformation)
txt.insert(INSERT, i)
txt.insert(INSERT, '\n')
txt.pack()
def WindowStatus():
StatusWindow = Toplevel()
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 = []
balanced = i
WindowBalance()
def WindowBalance():
balanceWindow = Toplevel()
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():
fieldValues = []
fieldValues = multenterbox(message, title, fieldNames)
conn.execute("INSERT INTO
status(leave_id,employee_id,leave,Date1,Date2,days,status) VALUES
(?,?,?,?,?,?,?)",
conn.commit()
def LeaveApproval():
fieldNames = ["Leave_id"]
fieldValues = []
message1 = "Approve/Deny"
title1 = "leave approval"
conn.commit()
if choice == 'approve':
print(0)
row = cur.fetchall()
col = row
print(2)
exampleId = row[0]
print(2)
exampleDays = row[0]
for row in conn.execute("SELECT sickleave from balance where
employee_id=?", (exampleId,)):
balance = row[0]
print(balance)
balance1 = row[0]
print(balance1)
balance2 = row[0]
print(balance2)
if (col[0] == ('sickleave',)):
print(3)
if (col[0] == ('maternityleave',)):
print(3)
print(3)
def leavelist():
leavelistwindow = Toplevel()
txt = Text(leavelistwindow)
txt.insert(INSERT, i)
txt.insert(INSERT, '\n')
txt.pack()
def registration():
title = "Registration"
fieldValues = []
while 1 :
if fieldValues == None:
errmsg = ""
for i in range(len(fieldNames)):
if fieldValues[i].strip() == "":
break
if errmsg == "":
conn.execute("INSERT INTO
employee(employee_id,Name,ContactNumber,Password) VALUES (?,?,?,?)",
conn.execute("INSERT INTO
balance(employee_id,sickleave,maternityleave,emergencyleave) VALUES
(?,?,?,?)", (fieldValues[0], 12, 12, 50))
conn.commit()
break
def EmployeeLoginWindow():
global LoginWindow
LoginWindow = Toplevel()
LoginWindow.wm_attributes('-fullscreen', '1')
Background_Label = Label(LoginWindow, image=filename)
informationEmployee['font'] = BtnFont
informationEmployee.pack(fill=X)
submit['font'] = BtnFont
submit.pack(fill=X)
LeaveBalance['font'] = BtnFont
LeaveBalance.pack(fill=X)
LeaveApplicationStatus['font'] = BtnFont
LeaveApplicationStatus.pack(fill=X)
AllLeaveStatus['font'] = BtnFont
AllLeaveStatus.pack(fill=X)
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')
informationEmployee['font'] = BtnFont
informationEmployee.pack(fill=X)
LeaveListButton['font'] = BtnFont
LeaveListButton.pack(fill=X)
ApprovalButton['font'] = BtnFont
ApprovalButton.pack(fill=X)
bg="#ffffb3",
LogoutBtn['font'] = BtnFont
LogoutBtn.pack(fill=X)
informationEmployee.pack()
LeaveListButton.pack()
ApprovalButton.pack()
ExitBtn.pack()
root = Tk()
root.wm_attributes('-fullscreen', '1')
root.iconbitmap(default='leavelogo.ico')
filename = PhotoImage(file="background.gif")
MainLabel.pack(fill=X)
im = PhotoImage(file='login.gif')
AdminLgnBtn['font'] = BtnFont
AdminLgnBtn.pack(fill=X)
LoginBtn['font'] = BtnFont
LoginBtn.pack(fill=X)
EmployeeRegistration.pack(fill=X)
ExitBtn['font'] = BtnFont
ExitBtn.pack(fill=X)
MainLabel.pack()
AdminLgnBtn.pack()
LoginBtn.pack()
EmployeeRegistration.pack()
ExitBtn.pack()
root.mainloop()
9.2 SCREEN SHOTS
CHAPTER – 10
REFERENCE