· 8 years ago · Jan 15, 2018, 10:18 PM
1from tkinter import *
2import tkinter as tk
3import sqlite3
4import time
5import random
6
7Conn = sqlite3.connect('Account Register.db')
8Curs = Conn.cursor()
9
10def create_Table():
11 Curs.execute('CREATE TABLE IF NOT EXISTS Log_Details(username TEXT, password TEXT, Type TEXT)')
12
13create_Table()
14
15numOfQuest = ''
16
17account_Type = ''
18
19
20def closeWin():
21 root.quit()
22
23
24class Login():
25 def __init__(self, master):
26
27 self.master = master
28 self.master.title("Log in screen")
29 self.master.geometry("650x300")
30 self.master.configure(background="#00ffff")
31
32 self.titleLab = Label(self.master, text="Enter your username \
33and password to login", font=("none", 16),bg="#00ffff")
34 self.titleLab.pack()
35
36 self.username = Label(self.master, text="Username", bg="#00ffff")
37 self.username.pack()
38
39 self.entryUser = Entry(self.master)
40 self.entryUser.pack()
41
42 self.password = Label(self.master, text="Password", bg="#00ffff")
43 self.password.pack()
44 self.entryPass = Entry(self.master)
45 self.entryPass.pack()
46
47 self.userType = Label(self.master, text = 'Enter your user type', bg = '#00ffff')
48 self.userType.pack()
49
50 self.entryType = Entry(self.master)
51 self.entryType.pack()
52
53
54 self.loginButton = Button(self.master, text="Login", bg="white", command=self.grant_Access)
55 self.loginButton.pack(padx=8,pady=8)
56
57 self.createButton = Button(self.master, text='Create account', bg = 'white', command = self.create_User)
58 self.createButton.pack() #Create user button. Function defined below, command defined here.
59
60
61
62
63 def grant_Access(self):
64 userUsername = self.entryUser.get()
65 userPass = self.entryPass.get()
66 userType = self.entryType.get()
67 print(userUsername)
68 print(userPass)
69
70 verify_Login = ('SELECT * FROM Log_Details WHERE username = ? AND password = ?')
71 Curs.execute(verify_Login,[userUsername,userPass])
72 Results = Curs.fetchall()
73
74 if Results:
75 if userType == 'teacher':
76 messagebox.showinfo('Log in successful','Welcome ' +userUsername) ## teacher window opens
77 ## haven't tested this
78 self.entryUser.delete(0, END)
79 self.entryPass.delete(0, END)
80 self.entryType.delete(0, END)
81 closeWin()
82 self.admin_Window()
83 elif userType == 'student':
84 messagebox.showinfo('Log in successful','Welcome ' +userUsername)
85 self.entryUser.delete(0, END)
86 self.entryPass.delete(0, END)
87 self.entryType.delete(0, END)
88 self.destroy()
89 self.admin_Window()
90 else:
91 messagebox.showinfo('Log in Failed','Invalid user type')
92 else:
93 messagebox.showwarning("Failed Login", "Login Failed")
94
95 def closeWin(self):
96 self.master.destroy()
97
98#def log_In(self):
99#self.closeWin()
100#self.grant_Acess()
101
102
103 def create_User(self): # Button name to open new window
104 self.newWindow = tk.Toplevel(self.master)
105 self.userPassScreen = Create_Acc(self.newWindow)
106
107 def admin_Window(self): # Button name to open new window
108 self.newWindow = tk.Toplevel(self.master)
109 self.userPassScreen = Teacher_Screen(self.newWindow)
110
111
112
113
114class Create_Acc():
115 def __init__(self, master):
116 self.master = master
117 self.master.title = ('create account screen')
118 self.master.geometry("650x300")
119 self.master.configure(background="#00ffff")
120
121 self.titleLab = Label(self.master, text="Create your account", font=("none", 16),bg="#00ffff")
122 self.titleLab.pack()
123
124 self.user = Label(self.master, text = 'Enter a Username', bg = '#00ffff',)
125 self.user.pack()
126 self.userEntry = Entry(self.master)
127 self.userEntry.pack()
128
129 self.key = Label(window.master, text = 'Enter a Password', bg = '#00ffff',)
130 self.key.pack()
131 self.passEntry = Entry(self.master)
132 self.passEntry.pack()
133
134 self.keyConf = Label(self.master, text = 'Confirm Password', bg = '#00ffff',)
135 self.keyConf.pack()
136 self.keyEntry = Entry(self.master)
137 self.keyEntry.pack()
138
139 self.userType = Label(self.master, text = 'Enter your user type', bg = '#00ffff')
140 self.userType.pack()
141 self.typeEntry = Entry(self.master)
142 self.typeEntry.pack()
143
144 self.confirm = Button(self.master, text = 'Confirm', bg = 'white', command = self.create_Account)
145 self.confirm.pack()
146 self.close = Button(self.master, text = 'Quit', bg = 'white', command = self.close_Window)
147 self.close.pack()
148
149
150#pass Create account window through functions close window and
151 def close_Window(self):
152 self.master.destroy()
153
154
155 def confirm(self):
156 self.newWin = tk.Toplevel(self.master)
157 self.createAccScreen = pageThree(self.newWin)
158
159 def create_Account(self):
160 userName = self.userEntry.get()
161 passWord = self.passEntry.get()
162 confirm_Pass = self.keyEntry.get()
163 user_Type = self.typeEntry.get()
164
165 username_Check = ('SELECT * FROM Log_Details WHERE username = ?')
166 Curs.execute(username_Check,[userName])
167 username_Results = Curs.fetchall()
168
169 if username_Results: #This
170 self.titleLab.configure(text="This username has already been taken.",)
171 self.userEntry.delete(0, END)
172 self.passEntry.delete(0, END)
173 self.keyEntry.delete(0,END)
174 else:
175 if len(userName) !=0 and len(passWord) !=0 and len(confirm_Pass) !=0 and len(user_Type)!=0:
176 if passWord == confirm_Pass and user_Type == 'teacher' :
177 Curs.execute ('INSERT INTO Log_Details(username, password, Type) VALUES(?,?,?)',(userName, passWord, user_Type))
178 Conn.commit()
179 messagebox.showinfo('Success!','Your account has successfully been created. \nYour account type is: Teacher')
180
181 elif passWord == confirm_Pass and user_Type == 'student' :
182 Curs.execute ('INSERT INTO Log_Details(username, password, Type) VALUES(?,?,?)',(userName, passWord, user_Type))
183 Conn.commit()
184 messagebox.showinfo('#Success!','Your account has successfully been created. \nYour account type is: Student')
185
186 elif passWord != confirm_Pass:
187 self.titleLab.configure(text="Your passwords did not match, try again",)
188 self.userEntry.delete(0, END)
189 self.passEntry.delete(0, END)
190 self.keyEntry.delete(0,END)
191 else:
192 self.titleLab.configure(text="Please fill out all entry fields",)
193
194
195
196
197 #if userName == True and passWord == confirm_Pass:
198 #if userName == '': # LOGIC ERROR WHEN PUT ALL 3 STATEMENTS TOGETHER, REMEMBER THIS.
199 #window.titleLab.configure(text="You did not fill all entry fields, please fill them in.",)
200 #window.userEntry.delete(0, END)
201 #if passWord == '':
202 #window.titleLab.configure(text="You did not fill all entry fields, please fill them in.",)
203 #if confirm_Pass == '':
204 #window.titleLab.configure(text="You did not fill all entry fields, please fill them in.",)
205
206
207
208class Teacher_Screen():
209 def __init__(self,master):
210 self.master = master
211 self.master.title("Log in screen")
212 self.master.geometry("650x300")
213 self.master.configure(background="silver")
214
215 self.titleLab = Label(self.master, text="Enter your username \
216and password to login", font=("none", 16),bg="silver")
217 self.titleLab.pack()
218
219 self.TestButton = Button(self.master, text="Create Test", bg="white", command = self.create_Test)
220 self.TestButton.pack()
221
222 self.ViewButton = Button(self.master, text="View created tests", bg="white")
223 self.ViewButton.pack()
224
225 self.DeleteButton = Button(self.master, text="Delete tests", bg="white")
226 self.DeleteButton.pack()
227
228 def create_Test(self): # Button name to open new window
229 self.newWindow = tk.Toplevel(self.master)
230 self.userPassScreen = Test_Creation(self.newWindow)
231
232
233
234class Test_Creation():
235 def __init__(self,master):
236 self.master = master
237 self.master.title("test screen")
238 self.master.geometry("400x175")
239 self.master.configure(background="silver")
240
241 self.testName = Label(self.master, text = 'Input test name:', bg = 'silver',)
242 self.testName.pack()
243 self.testEntry = Entry(self.master)
244 self.testEntry.pack()
245
246 self.numOfQuest = Label(self.master, text = 'Input number of questions', bg = 'silver',)
247 self.numOfQuest.pack()
248 self.numOfQuestEntry = Entry(self.master)
249 self.numOfQuestEntry.pack()
250
251 global numOfQuest
252 numOfQuest = self.numOfQuestEntry.get()
253
254
255
256class Confirmation():
257 def __init__(self,master):
258 self.master = master
259 self.master.title = ('Confirmation')
260 self.master.geometry('250x100')
261 self.master.configure(background = 'green yellow')
262
263 self.titleLab=Label(self.master, text = 'Your account has successfully \n been created', font=('none',12), bg='green yellow')
264 self.titleLab.pack()
265
266 self.quitButton = Button(self.master, text = 'OK', bg = 'white', command= self.close_Window)
267 self.quitButton.pack()
268
269 def close_Window(self):
270 self.master.destroy()
271
272
273root = Tk()
274userPassScreen = Login(root)
275root.mainloop()