Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions Control.py
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ def ROOTUSER(email):
def signUp(email, password, name, techInterest):
"""
sign up to be an OU, if password field leave blank, to be a GU
:rtype:
:param email:
:param password:
:return:
Expand Down
36 changes: 36 additions & 0 deletions GUI/Controller.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
import sys
from PyQt5 import QtCore, QtWidgets
from GUI.login import Login
from GUI.Signup import Signup


class Controller:

def __init__(self):
pass

def show_login(self):
self.login = Login()
if self.login.signup_event():
self.login.switch_window.connect(self.show_signup)

else:
print("not a new accont")
self.login.show()

def show_signup(self):
self.login.email_field.setText("")
self.login.password_field.setText("")
self.window = Signup()
self.window.show()


def main():
app = QtWidgets.QApplication(sys.argv)
controller = Controller()
controller.show_login()
sys.exit(app.exec_())


if __name__ == '__main__':
main()
116 changes: 116 additions & 0 deletions GUI/Signup.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,116 @@
from PyQt5 import QtCore, QtWidgets
from PyQt5.QtCore import QSize
from PyQt5.QtGui import QImage, QPalette, QBrush
import Control
class Signup(QtWidgets.QWidget):
switch_window = QtCore.pyqtSignal()

def __init__(self):
QtWidgets.QWidget.__init__(self)
self.setWindowTitle('Signup Page')
oImage = QImage("images/signup_image.jpeg")
sImage = oImage.scaled(QSize(605, 458)) # resize Image to widgets size
palette = QPalette()
palette.setBrush(10, QBrush(sImage)) # 10 = Windowrole
self.setPalette(palette)
self.resize(605, 458)
self.setMinimumSize(QtCore.QSize(605, 458))
self.setMaximumSize(QtCore.QSize(605, 458))
self.setBaseSize(QtCore.QSize(605, 358))

self.signup_button = QtWidgets.QPushButton(self)
self.signup_button.setGeometry(QtCore.QRect(230, 410, 93, 28))
self.signup_button.setObjectName("signup_button")
################################# signup button event ###########
self.signup_button.clicked.connect(self.signup_event)
#################################################################
self.formLayoutWidget_2 = QtWidgets.QWidget(self)
self.formLayoutWidget_2.setGeometry(QtCore.QRect(20, 240, 411, 173))
self.formLayoutWidget_2.setObjectName("formLayoutWidget_2")
self.formLayout_2 = QtWidgets.QFormLayout(self.formLayoutWidget_2)
self.formLayout_2.setContentsMargins(0, 0, 0, 0)
self.formLayout_2.setObjectName("formLayout_2")
self.label_2 = QtWidgets.QLabel(self.formLayoutWidget_2)
self.label_2.setObjectName("label_2")
self.formLayout_2.setWidget(0, QtWidgets.QFormLayout.LabelRole, self.label_2)
self.label_4 = QtWidgets.QLabel(self.formLayoutWidget_2)
self.label_4.setObjectName("label_4")
self.formLayout_2.setWidget(1, QtWidgets.QFormLayout.LabelRole, self.label_4)
self.name_field = QtWidgets.QLineEdit(self.formLayoutWidget_2)
self.name_field.setObjectName("name_field")
self.name_field.setPlaceholderText("Enter your name")
self.formLayout_2.setWidget(1, QtWidgets.QFormLayout.FieldRole, self.name_field)
self.label_5 = QtWidgets.QLabel(self.formLayoutWidget_2)
self.label_5.setObjectName("label_5")
self.formLayout_2.setWidget(2, QtWidgets.QFormLayout.LabelRole, self.label_5)
self.interest_field = QtWidgets.QLineEdit(self.formLayoutWidget_2)
self.interest_field.setObjectName("interest_field")
self.interest_field.setPlaceholderText("Enter your interest")
self.formLayout_2.setWidget(2, QtWidgets.QFormLayout.FieldRole, self.interest_field)
self.label_3 = QtWidgets.QLabel(self.formLayoutWidget_2)
self.label_3.setObjectName("label_3")
self.formLayout_2.setWidget(3, QtWidgets.QFormLayout.LabelRole, self.label_3)
self.password_field = QtWidgets.QLineEdit(self.formLayoutWidget_2)
self.password_field.setEchoMode(QtWidgets.QLineEdit.PasswordEchoOnEdit)
self.password_field.setObjectName("password_field")
self.password_field.setPlaceholderText("Create a password")
self.formLayout_2.setWidget(3, QtWidgets.QFormLayout.FieldRole, self.password_field)
self.label = QtWidgets.QLabel(self.formLayoutWidget_2)
self.label.setObjectName("label")
self.formLayout_2.setWidget(4, QtWidgets.QFormLayout.LabelRole, self.label)
self.confirm_password_field = QtWidgets.QLineEdit(self.formLayoutWidget_2)
self.confirm_password_field.setEchoMode(QtWidgets.QLineEdit.PasswordEchoOnEdit)
self.confirm_password_field.setDragEnabled(False)
self.confirm_password_field.setObjectName("confirm_password_field")
self.confirm_password_field.setPlaceholderText("Confirm your password")
self.formLayout_2.setWidget(4, QtWidgets.QFormLayout.FieldRole, self.confirm_password_field)
self.email_field = QtWidgets.QLineEdit(self.formLayoutWidget_2)
self.email_field.setText("")
self.email_field.setObjectName("email_field")
self.email_field.setPlaceholderText("Enter your email")
self.formLayout_2.setWidget(0, QtWidgets.QFormLayout.FieldRole, self.email_field)

self.retranslateUi(self)
QtCore.QMetaObject.connectSlotsByName(self)

def retranslateUi(self, Dialog):
_translate = QtCore.QCoreApplication.translate
Dialog.setWindowTitle(_translate("Dialog", "Dialog"))
self.signup_button.setText(_translate("Dialog", "Sign Up"))
self.label_2.setText(_translate("Dialog", "Email:"))
self.label_4.setText(_translate("Dialog", "Name:"))
self.label_5.setText(_translate("Dialog", "Technical Interests:"))
self.label_3.setText(_translate("Dialog", "Password:"))
self.label.setText(_translate("Dialog", "Confirm Your Password:"))
self.email_field.setWhatsThis(_translate("Dialog", "<html><head/><body><p>sadsad</p></body></html>"))

def signup_event(self):
print("sign up button is pressed")
# sign up successful
if (Control.signUp(str(self.email_field), str(self.email_field), str(self.name_field), str(self.interest_field)) == 1):
em = QtWidgets.QMessageBox()
em.setText("Sign Up Successfully")
em.setStandardButtons(QtWidgets.QMessageBox.Ok)
em.exec_()
if QtWidgets.QMessageBox.Ok:
self.close()
return 1


# guest user registered
elif (Control.signUp(str(self.email_field), str(self.email_field), str(self.name_field),str(self.interest_field)) == 0):
em = QtWidgets.QMessageBox()
em.setText("Guest User Registered")
em.setStandardButtons(QtWidgets.QMessageBox.Ok)
em.exec_()
return 0

# account existed, go back to login page
else:
em = QtWidgets.QMessageBox()
em.setIcon(QtWidgets.QMessageBox.Warning)
em.setText("User already existed, please login")
em.setStandardButtons(QtWidgets.QMessageBox.Ok)
em.exec_()
return -1

Binary file added GUI/__pycache__/Signup_1.cpython-37.pyc
Binary file not shown.
Binary file added GUI/__pycache__/login.cpython-37.pyc
Binary file not shown.
Binary file added GUI/__pycache__/login_1.cpython-37.pyc
Binary file not shown.
Binary file added GUI/__pycache__/signup.cpython-37.pyc
Binary file not shown.
37 changes: 37 additions & 0 deletions GUI/form.ui
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>Form</class>
<widget class="QWidget" name="Form">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>605</width>
<height>458</height>
</rect>
</property>
<property name="minimumSize">
<size>
<width>605</width>
<height>458</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>605</width>
<height>458</height>
</size>
</property>
<property name="baseSize">
<size>
<width>605</width>
<height>458</height>
</size>
</property>
<property name="windowTitle">
<string>Form</string>
</property>
</widget>
<resources/>
<connections/>
</ui>
Binary file added GUI/images/login_image.jpeg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added GUI/images/signup_image.jpeg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
160 changes: 79 additions & 81 deletions GUI/login.py
Original file line number Diff line number Diff line change
@@ -1,97 +1,95 @@
# -*- coding: utf-8 -*-
from PyQt5 import QtCore, QtWidgets
from PyQt5.QtCore import QSize
from PyQt5.QtGui import QImage, QPalette, QBrush
import Control

# Form implementation generated from reading ui file 'login.ui'
#
# Created by: PyQt5 UI code generator 5.11.3
#
# WARNING! All changes made in this file will be lost!
class Login(QtWidgets.QWidget):

from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QMessageBox
from signup import Ui_Signup
switch_window = QtCore.pyqtSignal()

class Ui_Dialog(object):
def __init__(self):
QtWidgets.QWidget.__init__(self)
self.setWindowTitle('Login Page')
oImage = QImage("images/login_image.jpeg")
sImage = oImage.scaled(QSize(605,458)) # resize Image to widgets size
palette = QPalette()
palette.setBrush(10, QBrush(sImage)) # 10 = Windowrole
self.setPalette(palette)
self.resize(605, 458)
self.setMinimumSize(QtCore.QSize(605, 458))
self.setMaximumSize(QtCore.QSize(605, 458))
self.setBaseSize(QtCore.QSize(605, 358))

# event handler for signup button
def signup_check(self):
print("signup button is clicked")

self.signupWindow = QtWidgets.QDialog()
self.ui = Ui_Signup()
self.ui.setupUi(self.signupWindow)
self.signupWindow.show()

def setupUi(self, Dialog):
Dialog.setObjectName("Dialog")
Dialog.resize(637, 477)
Dialog.setStyleSheet("QDialog{\n"
" background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 rgba(255, 170, 0, 255), stop:1 rgba(255, 255, 255, 255))\n"
"}\n"
"QPushButton{\n"
" background-color:rgb(255, 255, 255)\n"
" border: none;\n"
"}")
self.label_2 = QtWidgets.QLabel(Dialog)
self.label_2.setGeometry(QtCore.QRect(160, 170, 91, 21))
self.login_button = QtWidgets.QPushButton(self)
self.login_button.setGeometry(QtCore.QRect(300, 390, 93, 28))
#########################3 Login button event ########################
self.login_button.clicked.connect(self.login_event)
#######################################################################
self.signup_button = QtWidgets.QPushButton(self)
self.signup_button.setGeometry(QtCore.QRect(200, 390, 93, 31))
#########################3 Signup button event ########################
self.signup_button.clicked.connect(self.signup_event)
#######################################################################
self.formLayoutWidget = QtWidgets.QWidget(self)
self.formLayoutWidget.setGeometry(QtCore.QRect(140, 300, 291, 81))
self.formLayoutWidget.setObjectName("formLayoutWidget")
self.formLayout = QtWidgets.QFormLayout(self.formLayoutWidget)
self.formLayout.setContentsMargins(0, 0, 0, 0)
self.formLayout.setObjectName("formLayout")
self.label_2 = QtWidgets.QLabel(self.formLayoutWidget)
self.label_2.setStyleSheet("font: 13pt \".SF NS Text\";")
self.label_2.setObjectName("label_2")
self.label_3 = QtWidgets.QLabel(Dialog)
self.label_3.setGeometry(QtCore.QRect(160, 220, 91, 21))
self.label_3.setObjectName("label_3")
self.email_field = QtWidgets.QLineEdit(Dialog)
self.email_field.setGeometry(QtCore.QRect(240, 170, 201, 22))
self.email_field.setText("")
self.email_field.setObjectName("email_field")
self.password_field = QtWidgets.QLineEdit(Dialog)
self.password_field.setGeometry(QtCore.QRect(240, 220, 201, 22))
self.formLayout.setWidget(0, QtWidgets.QFormLayout.LabelRole, self.label_2)
self.password_field = QtWidgets.QLineEdit(self.formLayoutWidget)
self.password_field.setEchoMode(QtWidgets.QLineEdit.PasswordEchoOnEdit)
self.password_field.setObjectName("password_field")
self.login_button = QtWidgets.QPushButton(Dialog)
self.login_button.setGeometry(QtCore.QRect(290, 280, 93, 28))
self.login_button.setObjectName("login_button")
self.signup_button = QtWidgets.QPushButton(Dialog)
self.signup_button.setGeometry(QtCore.QRect(290, 320, 93, 28))
self.signup_button.setObjectName("signup_button")
#########################3 Signup button event ########################
self.signup_button.clicked.connect(self.signup_check)
#######################################################################
self.login_page_label = QtWidgets.QLabel(Dialog)
self.login_page_label.setGeometry(QtCore.QRect(220, 70, 211, 91))
self.login_page_label.setMinimumSize(QtCore.QSize(5, 0))
self.login_page_label.setBaseSize(QtCore.QSize(40, 16))
font = QtGui.QFont()
font.setPointSize(41)
font.setBold(False)
font.setItalic(False)
font.setUnderline(False)
font.setWeight(50)
font.setStrikeOut(False)
font.setStyleStrategy(QtGui.QFont.PreferAntialias)
self.login_page_label.setFont(font)
self.login_page_label.setFocusPolicy(QtCore.Qt.NoFocus)
self.login_page_label.setContextMenuPolicy(QtCore.Qt.NoContextMenu)
self.login_page_label.setTextFormat(QtCore.Qt.AutoText)
self.login_page_label.setAlignment(QtCore.Qt.AlignCenter)
self.login_page_label.setObjectName("login_page_label")
self.password_field.setPlaceholderText("Enter your password")
self.formLayout.setWidget(1, QtWidgets.QFormLayout.FieldRole, self.password_field)
self.email_field = QtWidgets.QLineEdit(self.formLayoutWidget)
self.email_field.setText("")
self.email_field.setObjectName("email_field")
self.email_field.setPlaceholderText("Enter your email")
self.formLayout.setWidget(0, QtWidgets.QFormLayout.FieldRole, self.email_field)
self.label = QtWidgets.QLabel(self.formLayoutWidget)
self.label.setObjectName("label")
self.formLayout.setWidget(1, QtWidgets.QFormLayout.LabelRole, self.label)

self.retranslateUi(Dialog)
QtCore.QMetaObject.connectSlotsByName(Dialog)
self.retranslateUi(self)
QtCore.QMetaObject.connectSlotsByName(self)

def retranslateUi(self, Dialog):
_translate = QtCore.QCoreApplication.translate
Dialog.setWindowTitle(_translate("Dialog", "Dialog"))
self.label_2.setText(_translate("Dialog", "Email:"))
self.label_3.setText(_translate("Dialog", "Password: "))
Dialog.setWindowTitle("Login Page")
self.login_button.setText(_translate("Dialog", "Login"))
self.signup_button.setText(_translate("Dialog", "Sign Up"))
self.login_page_label.setText(_translate("Dialog", "Login Page"))
self.label_2.setText(_translate("Dialog", "Email:"))
self.label.setText(_translate("Dialog", "Password:"))

def login_event(self):
print("login is pressed")
if (Control.signIn(str(self.email_field), str(self.password_field)) == -1):
em = QtWidgets.QMessageBox()
em.setIcon(QtWidgets.QMessageBox.Warning)
em.setText("Account not found, Please create an account")
em.setStandardButtons(QtWidgets.QMessageBox.Ok)
em.exec_()
self.signup_event()

# correct users
elif (Control.signIn(str(self.email_field), str(self.password_field)) == 1):
self.isIn_event()

# already login
elif (Control.signIn(str(self.email_field), str(self.password_field)) == 2):
em = QtWidgets.QMessageBox()
em.setIcon(QtWidgets.QMessageBox.Warning)
em.setText("Already login!")
em.setStandardButtons(QtWidgets.QMessageBox.Ok)
em.exec_()

def signup_event(self):
self.switch_window.emit()
return -1

if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
Dialog = QtWidgets.QDialog()
ui = Ui_Dialog()
ui.setupUi(Dialog)
Dialog.show()
sys.exit(app.exec_())
def isIn(self):
return 1
Loading