Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Mithun Python Project

Download as pdf or txt
Download as pdf or txt
You are on page 1of 16

INDEX

1.Certificate
2.Acknowledgement
3.Additional file
4.Coding
5.ScreenShots(Output)
6.Requirement 7.Bibliography

ADDITIONAL FILE
(Libraries)

• tkinter :- For GUI designing for project.


• mysql.connector :- For connecting with mysql.
CODING
# ==============modules================
from tkinter import * import
mysql.connector as my

conn = my.connect(host="localhost", user="root", passwd="mps",


database="login_system",charset="utf8") mycursor = conn.cursor()
mycursor.execute("CREATE TABLE If NOT EXISTS UserDetail (id int
auto_increment primary key, name varchar(35), username varchar(25), phone
varchar(11), password varchar(255))")

#updation data on server def


update_user():
cname = name_upd.get() cuser = user_upd.get()
cphone = phone_upd.get() cid = c_id cuser_valid =
cname_valid = cphone_valid = False
error_list.delete(0,END) if len(cuser) > 0 and len(cname)
> 0 and len(cphone) > 0:
if len(cname) > 30:
error = "Fullname contains only 30 character"
error_list.insert(END, error) else:
cname_valid = True

if (len(cuser) >= 4 and len(cuser) < 20) == False:


error = "Username must be between 4 to 30 character long"
error_list.insert(END, error) else:
cuser_valid = True if (cphone.isdigit() and
(len(cphone) == 10)) == False:
error = "Please enter valid phone number"
error_list.insert(END, error) else:
cphone_valid = True if cname_valid ==
cuser_valid == cphone_valid:
# ============Updation code mycursor.execute("SELECT *
FROM UserDetail WHERE (username = '"+cuser+"' AND NOT id = '"+cid+"')
OR (phone = '"+cphone+"' AND NOT id =
'"+cid+"')") result =
mycursor.fetchall() if
(len(result) == 0):
name_upd.delete(0, END)
phone_upd.delete(0, END) user_upd.delete(0,
END)

query = "UPDATE UserDetail SET name = '"+cname+"' ,username =


'"+cuser+"', phone = '"+cphone+"' WHERE id = '"+cid+"' "
mycursor.execute(query)

conn.commit() if
(mycursor.rowcount > 0):
error_list.insert(END,"Successfully Registered")
else:
error_list.insert(END,"Some problem occurs during updation")
else:
error_list.insert(END, "Please enter Another username or phone number")
# ============Updation end
else:
error = "All fields are required"
error_list.insert(END, error)

#registered users def


user_form():
global frame_user frame_user = Frame(screen3) row=0
mycursor.execute("SELECT * FROM UserDetail ORDER BY id asc")

Label(frame_user,text="Id",fg="#fff",bg="#373737",pady=10,width=5,font=("Bold",1
0)).grid(row=row,column=0)

Label(frame_user,text="FullName",bg="#373737",fg="#fff",pady=10,width=15,font=(
"bold",10)).grid(row=row,column=1)

Label(frame_user,text="UserName",bg="#373737",fg="#fff",pady=10,width=20,font=
("bold",10)).grid(row=row,column=2)

Label(frame_user,text="Phone",bg="#373737",fg="#fff",pady=10,width=15,font=("bo
ld",10)).grid(row=row,column=3)
Label(frame_user, width=15, font=("bold", 10)).grid(row=0, column=4)
row=row+1 results = mycursor.fetchall()
for result in results:
id=str(result[0]) if
row%2==0:
bg="#fff"
fg="#999" else:
bg="#999"
fg="#fff"
Label(frame_user, text=id, bg=bg, fg=fg, width=5, pady=10, font=("bolder",
10)).grid(row=row, column=0)
Label(frame_user, text=result[1], bg=bg, fg=fg, width=15, pady=10, font=("bold",
10)).grid(row=row, column=1)
Label(frame_user, text=result[2], bg=bg, fg=fg, width=20, pady=10, font=("bold",
10)).grid(row=row, column=2)
Label(frame_user, text=result[3], bg=bg, fg=fg, width=15, pady=10, font=("bold",
10)).grid(row=row, column=3)
Button(frame_user,text="UPDATE" ,bg="green",
fg="#fff",font=("bold",10),command=lambda
upd=id:update(upd)).grid(row=row,column=4)
Button(frame_user, text="DELETE", bg="#d9534f", fg="#f9f9f9",font=("bold",
10),command=lambda det=id:delete(det)).grid(row=row, column=5)
row = row+1 if len(results) == 0:
Label(frame_user,text="No User existed",fg="#969696",font=("dancing
script",15)).grid(row=row,column=0,columnspan=5) try:
screen3.destroy()
except: pass
frame_user.place(x=100,y=150)

#update user data form def


update(id):
global upd_screen1,name_upd,user_upd, phone_upd, c_id, error_list
c_id=id mycursor.execute("SELECT * FROM UserDetail WHERE id =
'"+id+"'") result = mycursor.fetchall() name_val = result[0][1]
user_val = result[0][2] phone_val = result[0][3] screen3.destroy()
upd_screen1 = Toplevel(screen) upd_screen1.title("Update detail of
"+user_val) upd_screen1.geometry("700x1000") upd_screen =
Frame(upd_screen1,width=100) name = StringVar() phone =
StringVar() username = StringVar()
Label(upd_screen, text="Enter Fullname
*",padx=100,pady=20).grid(row=1,column=0) name_upd =
Entry(upd_screen, textvariable=name, bg="#eee")
name_upd.grid(row=1,column=1)
Label(upd_screen, text="Enter Username *",pady=20).grid(row=2,column=0)
user_upd = Entry(upd_screen,textvariable=username, bg="#eee")
user_upd.grid(row=2,column=1)
Label(upd_screen, text="Enter Phone number *",pady=20).grid(row=3,column=0)
phone_upd = Entry(upd_screen, textvariable=phone, bg="#eee")
phone_upd.grid(row=3,column=1)
Label(upd_screen).grid(row=4,column=0)

Button(upd_screen, text="Update", bg="green", fg="#fff", width="20", height="1",


font=("arial", 10),command=update_user).grid(row=5,column=0,columnspan=2)
Button(upd_screen, text="Back", width="12", bg="#d9534f", fg="#f9f9f9",
font=("bold", 10),command=welcome).grid(row=6,column=0,columnspan=2)
name_upd.insert(END,name_val) user_upd.insert(END,user_val)
phone_upd.insert(END,phone_val) frame = Frame(upd_screen) scroll =
Scrollbar(frame, bg="#efefef", activebackground="#999", width='15')
scroll.pack(side=RIGHT, fill=Y) error_list = Listbox(frame, bg="#ddd",
fg="#000", border=0, width='55',height='4', yscrollcommand=scroll.set)
error_list.pack(side=LEFT) scroll.config(command=error_list.yview)
frame.grid(row=8,column=0,columnspan=2) upd_screen.place(x=100,y=50)

#delete user function def


delete(id):
mycursor.execute("SELECT * FROM UserDetail WHERE id = '"+id+"'")
result=mycursor.fetchall() if(len(result) > 0):
mycursor.execute("delete from userdetail where id='"+id+"'")
frame_user.destroy() print("hello") user_form()

#welcome page def


welcome():
global screen3 try:
screen1.destroy()
except: try:
upd_screen1.destroy()
except:
pass
screen3 = Toplevel(screen)
screen3.geometry("1000x1000")
Button(screen3, text="LogOut", bg="#d9534f", fg="#f9f9f9", width='10',
font=("bold", 10), command=screen3.destroy).place(x=800,y=0)
#Label(screen3, text="Welcome " + data[0][1] + ", its a very nice meeting of
you", width=40, fg="#262626", font=("dancing script", 10)).place(x=15, y=90)
user_form()

#login user function def login_user():


global data user = username.get()
passcode = password.get()
error_list.delete(0, END) if len(user)
> 0 and len(passcode) > 0:
user_field.delete(0, END) pass_field.delete(0, END)
mycursor.execute('SELECT * FROM UserDetail WHERE username ="' + user +
'"')
data = mycursor.fetchall()
if (len(data) == 1):
if (data[0][4] == passcode):
for i in range(5): if (i
== 0):
error_list.insert(END, "WELCOME " + data[0][1])
welcome() else:
error_list.insert(END, "Please input valid password")
else:
error_list.insert(END, "Username not found")

else:
error = "Please input Your username and password"
error_list.insert(END, error)

#registor user function def


register_user():
user = username.get() passcode = password.get() fullname = name.get()
number = phone.get() error_list.delete(0, END) user_valid = passcode_valid =
fullname_valid = number_valid = False if len(user) > 0 and len(passcode) > 0
and len(fullname) > 0 and len(number) > 0: if len(fullname) > 30:
error = "Fullname contains only 30 character"
error_list.insert(END, error)
else:
fullname_valid = True if (len(user) >=
4 and len(user) < 20) == False:
error = "Username must be between 4 to 30 character long"
error_list.insert(END, error) else:
user_valid = True if (number.isdigit() and
(len(number) == 10)) == False:
error = "Please enter valid phone number"
error_list.insert(END, error) else:
number_valid = True
if len(passcode) < 6:
error = "Password must be atleast 6 character long"
error_list.insert(END, error) else:
passcode_valid = True if fullname_valid == user_valid ==
passcode_valid == number_valid:
# ============Insertion code mycursor.execute("SELECT *
FROM UserDetail WHERE username =%s OR phone=%s", (user, number))
result = mycursor.fetchall()
if (len(result) == 0):
user_registor_field.delete(0, END)
phone_registor_field.delete(0, END)
name_registor_field.delete(0, END)
password_registor_field.delete(0, END) query = "INSERT INTO
UserDetail(name,username,phone,password) VALUES(%s,%s,%s,%s)"

values = (fullname, user, number, passcode)


mycursor.execute(query, values)
conn.commit() if (mycursor.rowcount > 0):
error_list.insert(END, "Successfully Registered")
else:
error_list.insert(END, "Some problem occurs during registration")
else:
error_list.insert(END, "Please enter Another username or phone number")
else:
error = "All fields are required"
error_list.insert(END, error)
#login form def
login():
global username, password, screen1, user_field, pass_field, error_list
screen1 = Toplevel(screen) screen1.geometry("700x800")
screen1.title("Login") logScr= Frame(screen1)
Label(logScr, text="Enter following detail to login", bg="#fe51ad",padx=120,
fg="#fff", font=("dancing script",
14)).grid(row=0,column=0,columnspan=2) username = StringVar()
password = StringVar()
Label(logScr, text="Enter Username *",padx=100,pady=20).grid(row=1,column=0)
user_field = Entry(logScr, textvariable=username, bg="#eee")
user_field.grid(row=1,column=1)
Label(logScr, text="Enter Password *",pady=20).grid(row=2,column=0)
pass_field = Entry(logScr, textvariable=password, show="*", bg="#eee")
pass_field.grid(row=2,column=1)
Label(logScr).grid(row=3,column=0)
Button(logScr, text="LOGIN", bg="#fe51ab", fg="#fff", width="20", height="1",
font=("arial", 10),
command=login_user).grid(row=4,column=0,columnspan=2)
Button(logScr, text="Back", width=12, bg="#d9534f", fg="#f9f9f9", font=("bold",
10), command= screen1.destroy).grid(row=5, column=0,columnspan=2)
Label(logScr).grid(row=6,column=0) frame = Frame(logScr,
width=250) error_list = Listbox(frame, border=0, width='75',
bg="#ddd", fg="#ff9494",font=(7)) error_list.pack(side=LEFT)
frame.grid(row=7,column=0,columnspan=2) logScr.place(x=0,y=0)

#registor form def


register():
global screen2, name, phone, username, password, error_list, user_registor_field,
name_registor_field, phone_registor_field, password_registor_field screen2 =
Toplevel(screen) screen2.geometry("700x800") screen2.title("Register
yourself") regScr= Frame(screen2)
Label(regScr, text="Enter following detail to be with us", bg="#fe51ad", fg="#fff",
padx=120, font=("dancing script", 14)).grid(row=0,column=0,columnspan=2)
name = StringVar() phone = StringVar() username = StringVar() password =
StringVar()
Label(regScr, text="Enter Fullname *",padx=100,pady=20).grid(row=1,column=0)
name_registor_field = Entry(regScr, textvariable=name, bg="#eee")
name_registor_field.grid(row=1,column=1)

Label(regScr, text="Enter Username *",pady=20).grid(row=2,column=0)


user_registor_field = Entry(regScr, textvariable=username, bg="#eee")
user_registor_field.grid(row=2,column=1)
Label(regScr, text="Enter Phone number *",pady=20).grid(row=3,column=0)
phone_registor_field = Entry(regScr, textvariable=phone, bg="#eee")
phone_registor_field.grid(row=3,column=1)
Label(regScr, text="Enter Password *",pady=20).grid(row=4,column=0)
password_registor_field = Entry(regScr, textvariable=password, bg="#eee")
password_registor_field.grid(row=4,column=1)
Label(regScr).grid(row=5,column=0)
Button(regScr, text="PROCEDE", bg="#fe51ab", fg="#fff", width="20", height="1",
font=("arial", 10),
command=register_user).grid(row=6,column=0,columnspan=2)
Button(regScr, text="Back", width="12", bg="#d9534f", fg="#f9f9f9", font=("bold",
10),
command=screen2.destroy).grid(row=7,column=0,columnspan=2)
Label(regScr).grid(row=8,column=0,columnspan=2)
# ===========================
frame = Frame(regScr)
scroll = Scrollbar(frame, bg="#efefef", activebackground="#999", width=15)
scroll.pack(side=RIGHT, fill=Y) error_list = Listbox(frame, bg="#ddd",
fg="#ff9494", border=0, width='75',font=(7), yscrollcommand=scroll.set)
error_list.pack(side=LEFT) scroll.config(command=error_list.yview)
frame.grid(row=9,column=0,columnspan=2) regScr.place(x=0,y=0)

def home():
global screen
screen = Tk()
screen.title("WELCOME TO SCHOOL MANAGEMENT SYSTEM")
screen.geometry("1000x1000")
Label(screen, text="WELCOME TO SCHOOL MANAGEMENT SYSTEM",
bg="#fe51ad", width=1000, height=2, fg="#fff", font=("dancing script",
15)).pack()
Label().pack()
Button(text="Login", height=3, width=40, bg="green", fg="#fff", font=("Arial", 12),
command=login).pack()
Label().pack()
Button(text="Register", height=3, width=40, bg="gold", fg="#fff", font=("arial",
12), command=register).pack()
Label().pack()
Label().pack()
Button(text="EXIT", width=20, bg="#d9534f", fg="#f9f9f9", font=("bold", 10),
command=screen.destroy).pack()
screen.mainloop()

home()
ScreenShots (Output)
Requirement

❖ Hard Disk :- 500GB


❖ RAM :- 1GB
❖ PyCharm IDE :-A python editor/IDE
❖ Processor :- Intel i3 7th Generation
❖ Printer
Bibliography

1. Https://youtube.com
2. Https://google.com
3. NCERT Textbook
4. Self Learning
5. Self Analyzing

You might also like