You are on page 1of 11

PYTHON MINI PROJECT BY

8436 JEET TRIVEDI


8410 KEENAJ MEVADA

PROBLEM STATEMENT :
C.G.P.A CALCULATOR USING GUI AND DATABASE. SHOULD CONSIST OF A
LOGIN PAGE FOR STUDENT , TEACHER, ADMIN. SHOULD DISPLAY THE
POINER WHEN A STUDENT LOGS IN.
SOFTWARE : PYTHON USING SPYDER AND MYSQL XAMPP SERVER

SOURCE CODE :
import tkinter as tk
import mysql.connector

def edit_teacher():
def insert_edit_teacher():
print(e1.get()+","+e2.get())
db=mysql.connector.connect(host="localhost",user="root",passwd="",database="PDBC")
stmt=db.cursor()
stmt.execute("update user set password='"+e2.get()+"' where user_type='T' and
user_id='"+e1.get()+"'")
print("Update successful")
#print("Insert into user values('"+e1.get()+"','"+e2.get()+"','T')")
db.commit()
form1.withdraw()

print("hi")
form1=tk.Toplevel(root)
form1.geometry("600x400")
l1=tk.Label(form1,text="Previous User Name")
e1=tk.Entry(form1)
l2=tk.Label(form1,text="New Password")
e2=tk.Entry(form1,show="*")
l3=tk.Label(form1,text="Type")
l4=tk.Label(form1,text="Teacher")
button_submit=tk.Button(form1,text="Edit Password",command=insert_edit_teacher)
l1.pack()
e1.pack()
l2.pack()
e2.pack()
l3.pack()
l4.pack()
button_submit.pack()
form1.mainloop()

def edit_student():
def insert_edit_student():
print(e1.get()+","+e2.get())
db=mysql.connector.connect(host="localhost",user="root",passwd="",database="PDBC")
stmt=db.cursor()
stmt.execute("update user set password='"+e2.get()+"' where user_type='S' and
user_id='"+e1.get()+"'")
print("Update successful")
#print("Insert into user values('"+e1.get()+"','"+e2.get()+"','T')")
db.commit()
form1.withdraw()

print("hi")
form1=tk.Toplevel(root)
form1.geometry("600x400")
l1=tk.Label(form1,text="Previous User Name")
e1=tk.Entry(form1)
l2=tk.Label(form1,text="New Password")
e2=tk.Entry(form1,show="*")
l3=tk.Label(form1,text="Type")
l4=tk.Label(form1,text="Student")
button_submit=tk.Button(form1,text="Edit Password",command=insert_edit_student)
l1.pack()
e1.pack()
l2.pack()
e2.pack()
l3.pack()
l4.pack()
button_submit.pack()
form1.mainloop()

def add_teacher():
def insert_teacher():
print(e1.get()+","+e2.get())
db=mysql.connector.connect(host="localhost",user="root",passwd="",database="PDBC")
stmt=db.cursor()
stmt.execute("Insert into user values('"+e1.get()+"','"+e2.get()+"','T')")
print("Insert successful")
print("Insert into user values('"+e1.get()+"','"+e2.get()+"','T')")
db.commit()
form1.withdraw()

print("hi")
form1=tk.Toplevel(root)
form1.geometry("600x400")
l1=tk.Label(form1,text="User Name")
e1=tk.Entry(form1)
l2=tk.Label(form1,text="Password")
e2=tk.Entry(form1,show="*")
l3=tk.Label(form1,text="Type")
l4=tk.Label(form1,text="Teacher")
button_submit=tk.Button(form1,text="Add Teacher",command=insert_teacher)
l1.pack()
e1.pack()
l2.pack()
e2.pack()
l3.pack()
l4.pack()
button_submit.pack()
form1.mainloop()

def add_student():
def insert_student():
print(e1.get()+","+e2.get())
db=mysql.connector.connect(host="localhost",user="root",passwd="",database="PDBC")
stmt=db.cursor()
stmt.execute("Insert into user values('"+e1.get()+"','"+e2.get()+"','S')")
print("Insert successful")
#print("Insert into user values('"+e1.get()+"','"+e2.get()+"','S')")
db.commit()
form1.withdraw()

print("hi")
form1=tk.Toplevel(root)
form1.geometry("600x400")
l1=tk.Label(form1,text="User Name")
e1=tk.Entry(form1)
l2=tk.Label(form1,text="Password")
e2=tk.Entry(form1,show="*")
l3=tk.Label(form1,text="Type")
l4=tk.Label(form1,text="Student")
button_submit=tk.Button(form1,text="Add Student",command=insert_student)
l1.pack()
e1.pack()
l2.pack()
e2.pack()
l3.pack()
l4.pack()
button_submit.pack()
form1.mainloop()
def add_subject():
def insert_subject():
print(e1.get()+","+e2.get())
db=mysql.connector.connect(host="localhost",user="root",passwd="",database="PDBC")
stmt=db.cursor()
stmt.execute("Insert into subject values('"+e1.get()+"','"+e2.get()+"',"+e3.get()+","+e4.get()
+","+e5.get()+","+e6.get()+",'3','IT')")
print("Insert successful")
#print("Insert into user values('"+e1.get()+"','"+e2.get()+"','S')")
db.commit()
form1.withdraw()
form1=tk.Toplevel(root)
form1.geometry("600x400")
l1=tk.Label(form1,text="SUBJECT NAME")
e1=tk.Entry(form1)
l2=tk.Label(form1,text="SUBJECT CODE")
e2=tk.Entry(form1)
l3=tk.Label(form1,text="MAX THEORY")
e3=tk.Entry(form1)
l4=tk.Label(form1,text="MAX VIVA")
e4=tk.Entry(form1)
l5=tk.Label(form1,text="MAX UT")
e5=tk.Entry(form1)
l6=tk.Label(form1,text="MAX TW")
e6=tk.Entry(form1)
button_submit=tk.Button(form1,text="Add Subject",command=insert_subject)
l1.pack()
e1.pack()
l2.pack()
e2.pack()
l3.pack()
e3.pack()
l4.pack()
e4.pack()
l5.pack()
e5.pack()
l6.pack()
e6.pack()
button_submit.pack()
form1.mainloop()
def add_marks():
def insert_marks():
print(e1.get()+","+e2.get())
db=mysql.connector.connect(host="localhost",user="root",passwd="",database="PDBC")
stmt=db.cursor()
stmt.execute("Insert into marks values('"+e1.get()+"','"+e2.get()+"',"+e3.get()+","+e4.get()
+","+e5.get()+","+e6.get()+")")
print("Insert successful")
#print("Insert into user values('"+e1.get()+"','"+e2.get()+"','S')")
db.commit()
form1.withdraw()
form1=tk.Toplevel(root)
form1.geometry("600x400")
l1=tk.Label(form1,text="USER ID")
e1=tk.Entry(form1)
l2=tk.Label(form1,text="SUBJECT CODE")
e2=tk.Entry(form1)
l3=tk.Label(form1,text="THEORY")
e3=tk.Entry(form1)
l4=tk.Label(form1,text="VIVA")
e4=tk.Entry(form1)
l5=tk.Label(form1,text="UT")
e5=tk.Entry(form1)
l6=tk.Label(form1,text="TW")
e6=tk.Entry(form1)

button_submit=tk.Button(form1,text="Add Marks",command=insert_marks)
l1.pack()
e1.pack()
l2.pack()
e2.pack()
l3.pack()
e3.pack()
l4.pack()
e4.pack()
l5.pack()
e5.pack()
l6.pack()
e6.pack()
button_submit.pack()
form1.mainloop()
#def edit_marks():
#s def insert_edit_marks():

def login():
print("Login details",e1.get(),",",e2.get()+",",v.get())
if v.get()=="STUDENT":
print("STUDENT")
db=mysql.connector.connect(host="localhost",user="root",passwd="",database="PDBC")
stmt=db.cursor()

student_page=tk.Toplevel(root)
student_page.geometry("600x400")

label=tk.Label(student_page,text="YOUR POINTER IS")


label.pack()
fail=0
ptr=0.00
print(ptr)
stmt.execute("select theory from marks where user_id='"+e1.get()+"' and subjcode='01'")
pool=stmt.fetchall()
amt=int(pool[0][0])
if amt<32:
fail=1
stmt.execute("select UT from marks where user_id='"+e1.get()+"'and subjcode='01'")
pool=stmt.fetchall()
amut=int(pool[0][0])
if amut<8:
fail=1
amt=amt+int(pool[0][0])
if amt>=80:
ptr=ptr+5
elif amt>=75:
ptr=ptr+4.5
elif amt>=70:
ptr=ptr+4
elif amt>=60:
ptr=ptr+3.5
elif amt>=50:
ptr=ptr+3
elif amt>=45:
ptr=ptr+2.5
elif amt>=40:
ptr=ptr+2.0
print(ptr)
stmt.execute("select theory from marks where user_id='"+e1.get()+"'and subjcode='02'")
pool=stmt.fetchall()
dsat=int(pool[0][0])
if dsat<32:
fail=1
stmt.execute("select UT from marks where user_id='"+e1.get()+"' and subjcode='02'")
pool=stmt.fetchall()
amut=int(pool[0][0])
if amut<8:
fail=1
dsat=dsat+int(pool[0][0])
if dsat>=80:
ptr=ptr+4
elif dsat>=75:
ptr=ptr+3.6
elif dsat>=70:
ptr=ptr+3.2
elif dsat>=60:
ptr=ptr+2.8
elif dsat>=50:
ptr=ptr+2.4
elif dsat>=45:
ptr=ptr+2.0
elif dsat>=40:
ptr=ptr+1.6

print(ptr)
stmt.execute("select viva from marks where user_id='"+e1.get()+"' and subjcode='02'")
pool=stmt.fetchall()
dsatw=int(pool[0][0])
if dsatw<10:
fail=1
stmt.execute("select TW from marks where user_id='"+e1.get()+"' and subjcode='02'")
pool=stmt.fetchall()
dsattw=int(pool[0][0])
if dsattw<10:
fail=1
dsatw=dsatw+int(pool[0][0])
if dsatw>=40:
ptr=ptr+1
elif dsatw>=37.5:
ptr=ptr+0.9
elif dsatw>=35:
ptr=ptr+0.8
elif dsatw>=30:
ptr=ptr+0.7
elif dsatw>=25:
ptr=ptr+0.6
elif dsatw>=22.5:
ptr=ptr+0.5
elif dsatw>=20:
ptr=ptr+0.4
print(ptr)
stmt.execute("select theory from marks where user_id='"+e1.get()+"' and subjcode='03'")
pool=stmt.fetchall()
dsat=int(pool[0][0])
if dsat<32:
fail=1
stmt.execute("select UT from marks where user_id='"+e1.get()+"' and subjcode='03'")
pool=stmt.fetchall()
amut=int(pool[0][0])
if amut<8:
fail=1
dsat=dsat+int(pool[0][0])
if dsat>=80:
ptr=ptr+4
elif dsat>=75:
ptr=ptr+3.6
elif dsat>=70:
ptr=ptr+3.2
elif dsat>=60:
ptr=ptr+2.8
elif dsat>=50:
ptr=ptr+2.4
elif dsat>=45:
ptr=ptr+2.0
elif dsat>=40:
ptr=ptr+1.6
print(ptr)
stmt.execute("select viva from marks where user_id='"+e1.get()+"' and subjcode='03'")
pool=stmt.fetchall()
dsatw=int(pool[0][0])
if dsatw<10:
fail=1
stmt.execute("select TW from marks where user_id='"+e1.get()+"' and subjcode='03'")
pool=stmt.fetchall()
dsattw=int(pool[0][0])
if dsattw<10:
fail=1
dsatw=dsatw+int(pool[0][0])
if dsatw>=40:
ptr=ptr+1
elif dsatw>=37.5:
ptr=ptr+0.9
elif dsatw>=35:
ptr=ptr+0.8
elif dsatw>=30:
ptr=ptr+0.7
elif dsatw>=25:
ptr=ptr+0.6
elif dsatw>=22.5:
ptr=ptr+0.5
elif dsatw>=20:
ptr=ptr+0.4
print(ptr)
stmt.execute("select theory from marks where user_id='"+e1.get()+"' and subjcode='04'")
pool=stmt.fetchall()
dsat=int(pool[0][0])
if dsat<32:
fail=1
stmt.execute("select UT from marks where user_id='"+e1.get()+"' and subjcode='04'")
pool=stmt.fetchall()
amut=int(pool[0][0])
if amut<8:
fail=1
dsat=dsat+int(pool[0][0])
if dsat>=80:
ptr=ptr+4
elif dsat>=75:
ptr=ptr+3.6
elif dsat>=70:
ptr=ptr+3.2
elif dsat>=60:
ptr=ptr+2.8
elif dsat>=50:
ptr=ptr+2.4
elif dsat>=45:
ptr=ptr+2.0
elif dsat>=40:
ptr=ptr+1.6
print(ptr)
stmt.execute("select viva from marks where user_id='"+e1.get()+"' and subjcode='04'")
pool=stmt.fetchall()
dsatw=int(pool[0][0])
if dsatw<10:
fail=1
stmt.execute("select TW from marks where user_id='"+e1.get()+"' and subjcode='04'")
pool=stmt.fetchall()
dsattw=int(pool[0][0])
if dsattw<10:
fail=1
dsatw=dsatw+int(pool[0][0])
if dsatw>=40:
ptr=ptr+1
elif dsatw>=37.5:
ptr=ptr+0.9
elif dsatw>=35:
ptr=ptr+0.8
elif dsatw>=30:
ptr=ptr+0.7
elif dsatw>=25:
ptr=ptr+0.6
elif dsatw>=22.5:
ptr=ptr+0.5
elif dsatw>=20:
ptr=ptr+0.4
print(ptr)
stmt.execute("select viva from marks where user_id='"+e1.get()+"' and subjcode='05'")
pool=stmt.fetchall()
dsat=int(pool[0][0])
if dsat<20:
fail=1
stmt.execute("select TW from marks where user_id='"+e1.get()+"' and subjcode='05'")
pool=stmt.fetchall()
dsattw=int(pool[0][0])
if dsattw<20:
fail=1
dsat=dsat+int(pool[0][0])
if dsat>=80:
ptr=ptr+2
elif dsat>=75:
ptr=ptr+1.8
elif dsat>=70:
ptr=ptr+1.6
elif dsat>=60:
ptr=ptr+1.4
elif dsat>=50:
ptr=ptr+1.2
elif dsat>=45:
ptr=ptr+1.0
elif dsat>=40:
ptr=ptr+0.8
print(ptr)
stmt.execute("select theory from marks where user_id='"+e1.get()+"' and subjcode='06'")
pool=stmt.fetchall()
dsat=int(pool[0][0])
if dsat<32:
fail=1
stmt.execute("select UT from marks where user_id='"+e1.get()+"' and subjcode='06'")
pool=stmt.fetchall()
amut=int(pool[0][0])
if amut<8:
fail=1
dsat=dsat+int(pool[0][0])
if dsat>=80:
ptr=ptr+4
elif dsat>=75:
ptr=ptr+3.6
elif dsat>=70:
ptr=ptr+3.2
elif dsat>=60:
ptr=ptr+2.8
elif dsat>=50:
ptr=ptr+2.4
elif dsat>=45:
ptr=ptr+2.0
elif dsat>=40:
ptr=ptr+1.6
print(ptr)
ptr=ptr/26.0
ptr=ptr*10

if fail==0:
print(ptr)
labelptr=tk.Label(student_page,text=str(round(ptr,2)))
labelptr.pack()
else:
print("FAIL")
labelfail=tk.Label(student_page,text="F")
labelfail.pack()

student_page.mainloop()

if v.get()=="TEACHER":
print("teacher")
db=mysql.connector.connect(host="localhost",user="root",passwd="",database="PDBC")
stmt=db.cursor()
stmt.execute("select * from user where user_id='"+e1.get()+"' and password='"+e2.get()+"' and
user_type='T'")
pool=stmt.fetchall()
if len(pool)==0:
tk.messagebox.showinfo("INVALID CREDENTIALS")
else:
teacher_page=tk.Toplevel(root)
teacher_page.geometry("250x50")
button_addm=tk.Button(teacher_page, text="Add Marks",command=add_marks)
#button_showm=tk.Button(teacher_page, text="Show Marks", command="")
button_addm.grid(row=0,column=0)
#button_showm.grid(row=0,column=1)
teacher_page.mainloop()
####################################28/03
if v.get()=="ADMIN":
db=mysql.connector.connect(host="localhost",user="root",passwd="",database="PDBC")
stmt=db.cursor()
stmt.execute("select * from user where user_id='"+e1.get()+"' and password='"+e2.get()+"' and
user_type='A'")
pool=stmt.fetchall()
if len(pool)==0:
tk.messagebox.showinfo("INVALID CREDENTIALS")
else:
admin_page=tk.Toplevel(root)
admin_page.geometry("250x50")
button_addt=tk.Button(admin_page, text="Add Teacher",command=add_teacher)
button_adds=tk.Button(admin_page, text="Add Student", command=add_student)

button_addsub=tk.Button(admin_page,command=add_subject, text="Add Subject")


button_editt=tk.Button(admin_page,command=edit_teacher, text="Edit Teacher")
button_edits=tk.Button(admin_page,command=edit_student, text="Edit Student")

button_addt.grid(row=0,column=0)
button_adds.grid(row=0,column=1)
button_addsub.grid(row=0,column=2)
button_editt.grid(row=1,column=0)
button_edits.grid(row=1,column=1)

admin_page.mainloop()
root=tk.Tk()
root.geometry("640x480")
root.title("LOGIN")
l1=tk.Label(root,text="username")
l1.place(anchor=tk.CENTER,relx=0.3,rely=0.3)
e1=tk.Entry(root)
e1.place(anchor=tk.CENTER,relx=0.5,rely=0.3)
l2=tk.Label(root,text="password")
l2.place(anchor=tk.CENTER,relx=0.3,rely=0.4)
e2=tk.Entry(root,show="*")
#e2.grid(row=1,column=2)
e2.place(anchor=tk.CENTER,relx=0.5,rely=0.4)
v=tk.StringVar()
v.set("TYPE")
dm=tk.OptionMenu(root,v,"ADMIN","TEACHER","STUDENT")
dm.place(anchor=tk.CENTER,relx=0.4,rely=0.5)
login=tk.Button(root,text="Login",command=login)
login.place(anchor=tk.CENTER,relx=0.5,rely=0.5)
root.mainloop()

OUTPUT :

You might also like