diff --git a/.idea/kotlinc.xml b/.idea/kotlinc.xml new file mode 100644 index 0000000..3c50bd3 --- /dev/null +++ b/.idea/kotlinc.xml @@ -0,0 +1,10 @@ + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/KotlinJavaRuntime.xml b/.idea/libraries/KotlinJavaRuntime.xml new file mode 100644 index 0000000..1a7265d --- /dev/null +++ b/.idea/libraries/KotlinJavaRuntime.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..0548357 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..776ab40 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..94a25f7 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/workspace.xml b/.idea/workspace.xml new file mode 100644 index 0000000..fd65e99 --- /dev/null +++ b/.idea/workspace.xml @@ -0,0 +1,577 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1539624568600 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + No facets are configured + + + + + + + + + + + + + + + 1.8 + + + + + + + + cecs343 + + + + + + + + KotlinJavaRuntime + + + + + + + + \ No newline at end of file diff --git a/cecs343.iml b/cecs343.iml new file mode 100644 index 0000000..973b2cb --- /dev/null +++ b/cecs343.iml @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/lib/mysql-connector-java-8.0.11.jar b/lib/mysql-connector-java-8.0.11.jar new file mode 100644 index 0000000..c8b8b3f Binary files /dev/null and b/lib/mysql-connector-java-8.0.11.jar differ diff --git a/out/production/cecs343/GUI$Companion.class b/out/production/cecs343/GUI$Companion.class new file mode 100644 index 0000000..0895f7e Binary files /dev/null and b/out/production/cecs343/GUI$Companion.class differ diff --git a/out/production/cecs343/GUI.class b/out/production/cecs343/GUI.class new file mode 100644 index 0000000..bc24a8a Binary files /dev/null and b/out/production/cecs343/GUI.class differ diff --git a/out/production/cecs343/GUIFont.class b/out/production/cecs343/GUIFont.class new file mode 100644 index 0000000..dc3b4ae Binary files /dev/null and b/out/production/cecs343/GUIFont.class differ diff --git a/out/production/cecs343/Logger$scene$2.class b/out/production/cecs343/Logger$scene$2.class new file mode 100644 index 0000000..9850d12 Binary files /dev/null and b/out/production/cecs343/Logger$scene$2.class differ diff --git a/out/production/cecs343/Logger$scene$3.class b/out/production/cecs343/Logger$scene$3.class new file mode 100644 index 0000000..daa3a5f Binary files /dev/null and b/out/production/cecs343/Logger$scene$3.class differ diff --git a/out/production/cecs343/Logger$scene$4.class b/out/production/cecs343/Logger$scene$4.class new file mode 100644 index 0000000..401729a Binary files /dev/null and b/out/production/cecs343/Logger$scene$4.class differ diff --git a/out/production/cecs343/Logger.class b/out/production/cecs343/Logger.class new file mode 100644 index 0000000..f9ceb7f Binary files /dev/null and b/out/production/cecs343/Logger.class differ diff --git a/out/production/cecs343/META-INF/cecs343.kotlin_module b/out/production/cecs343/META-INF/cecs343.kotlin_module new file mode 100644 index 0000000..add62bc Binary files /dev/null and b/out/production/cecs343/META-INF/cecs343.kotlin_module differ diff --git a/out/production/cecs343/Registrar$scene$2.class b/out/production/cecs343/Registrar$scene$2.class new file mode 100644 index 0000000..75c672a Binary files /dev/null and b/out/production/cecs343/Registrar$scene$2.class differ diff --git a/out/production/cecs343/Registrar$scene$3.class b/out/production/cecs343/Registrar$scene$3.class new file mode 100644 index 0000000..a4bfcb5 Binary files /dev/null and b/out/production/cecs343/Registrar$scene$3.class differ diff --git a/out/production/cecs343/Registrar$scene$4.class b/out/production/cecs343/Registrar$scene$4.class new file mode 100644 index 0000000..e4673a9 Binary files /dev/null and b/out/production/cecs343/Registrar$scene$4.class differ diff --git a/out/production/cecs343/Registrar.class b/out/production/cecs343/Registrar.class new file mode 100644 index 0000000..d0e95d9 Binary files /dev/null and b/out/production/cecs343/Registrar.class differ diff --git a/out/production/cecs343/SourceKt.class b/out/production/cecs343/SourceKt.class new file mode 100644 index 0000000..b43fcc5 Binary files /dev/null and b/out/production/cecs343/SourceKt.class differ diff --git a/out/production/cecs343/Welcome$User.class b/out/production/cecs343/Welcome$User.class new file mode 100644 index 0000000..110740c Binary files /dev/null and b/out/production/cecs343/Welcome$User.class differ diff --git a/out/production/cecs343/Welcome$scene$2.class b/out/production/cecs343/Welcome$scene$2.class new file mode 100644 index 0000000..01d9362 Binary files /dev/null and b/out/production/cecs343/Welcome$scene$2.class differ diff --git a/out/production/cecs343/Welcome.class b/out/production/cecs343/Welcome.class new file mode 100644 index 0000000..32e2f88 Binary files /dev/null and b/out/production/cecs343/Welcome.class differ diff --git a/resources/fonts/SF-Pro-Text-Bold.otf b/resources/fonts/SF-Pro-Text-Bold.otf new file mode 100644 index 0000000..26ad259 Binary files /dev/null and b/resources/fonts/SF-Pro-Text-Bold.otf differ diff --git a/resources/fonts/SF-Pro-Text-BoldItalic.otf b/resources/fonts/SF-Pro-Text-BoldItalic.otf new file mode 100644 index 0000000..11e67d6 Binary files /dev/null and b/resources/fonts/SF-Pro-Text-BoldItalic.otf differ diff --git a/resources/fonts/SF-Pro-Text-Heavy.otf b/resources/fonts/SF-Pro-Text-Heavy.otf new file mode 100644 index 0000000..5247fbf Binary files /dev/null and b/resources/fonts/SF-Pro-Text-Heavy.otf differ diff --git a/resources/fonts/SF-Pro-Text-HeavyItalic.otf b/resources/fonts/SF-Pro-Text-HeavyItalic.otf new file mode 100644 index 0000000..b81d875 Binary files /dev/null and b/resources/fonts/SF-Pro-Text-HeavyItalic.otf differ diff --git a/resources/fonts/SF-Pro-Text-Light.otf b/resources/fonts/SF-Pro-Text-Light.otf new file mode 100644 index 0000000..df26fee Binary files /dev/null and b/resources/fonts/SF-Pro-Text-Light.otf differ diff --git a/resources/fonts/SF-Pro-Text-LightItalic.otf b/resources/fonts/SF-Pro-Text-LightItalic.otf new file mode 100644 index 0000000..938d34e Binary files /dev/null and b/resources/fonts/SF-Pro-Text-LightItalic.otf differ diff --git a/resources/fonts/SF-Pro-Text-Medium.otf b/resources/fonts/SF-Pro-Text-Medium.otf new file mode 100644 index 0000000..acd85e4 Binary files /dev/null and b/resources/fonts/SF-Pro-Text-Medium.otf differ diff --git a/resources/fonts/SF-Pro-Text-MediumItalic.otf b/resources/fonts/SF-Pro-Text-MediumItalic.otf new file mode 100644 index 0000000..af02a41 Binary files /dev/null and b/resources/fonts/SF-Pro-Text-MediumItalic.otf differ diff --git a/resources/fonts/SF-Pro-Text-Regular.otf b/resources/fonts/SF-Pro-Text-Regular.otf new file mode 100644 index 0000000..b802390 Binary files /dev/null and b/resources/fonts/SF-Pro-Text-Regular.otf differ diff --git a/resources/fonts/SF-Pro-Text-RegularItalic.otf b/resources/fonts/SF-Pro-Text-RegularItalic.otf new file mode 100644 index 0000000..37c19c8 Binary files /dev/null and b/resources/fonts/SF-Pro-Text-RegularItalic.otf differ diff --git a/resources/fonts/SF-Pro-Text-Semibold.otf b/resources/fonts/SF-Pro-Text-Semibold.otf new file mode 100644 index 0000000..48ed582 Binary files /dev/null and b/resources/fonts/SF-Pro-Text-Semibold.otf differ diff --git a/resources/fonts/SF-Pro-Text-SemiboldItalic.otf b/resources/fonts/SF-Pro-Text-SemiboldItalic.otf new file mode 100644 index 0000000..10637cb Binary files /dev/null and b/resources/fonts/SF-Pro-Text-SemiboldItalic.otf differ diff --git a/src/Logger.kt b/src/Logger.kt new file mode 100644 index 0000000..303ad01 --- /dev/null +++ b/src/Logger.kt @@ -0,0 +1,58 @@ +import javafx.geometry.Insets +import javafx.geometry.Pos +import javafx.scene.Scene +import javafx.scene.control.Button +import javafx.scene.control.Label +import javafx.scene.control.PasswordField +import javafx.scene.control.TextField +import javafx.scene.layout.GridPane +import javafx.scene.layout.HBox +import javafx.scene.layout.VBox + +// Login to user account +object Logger { + val scene by lazy { scene() } + + private fun scene(): Scene { + + val gridPane = GridPane() + gridPane.alignment = Pos.CENTER + gridPane.hgap = 10.0 + gridPane.vgap = 10.0 + gridPane.padding = Insets(25.0, 25.0, 25.0, 25.0) + + val text = Label("Login") + text.font = GUIFont.heavy + gridPane.add(text, 0, 0) + + val email = TextField() + email.promptText = "Email" + email.font = GUIFont.regular + + val password = PasswordField() + password.promptText = "Password" + password.font = GUIFont.regular + + val vbox = VBox(10.0) + vbox.children.addAll(email, password) + gridPane.add(vbox, 0, 1) + + val signIn = Button("Sign in") + signIn.font = GUIFont.medium + signIn.setOnAction { + _ -> + Welcome.user = Welcome.User(email.text, password.text) + window.scene = Welcome.scene + } + + val signUp = Button("Sign up") + signUp.font = GUIFont.medium + signUp.setOnAction { _ -> window.scene = Registrar.scene } + + val hbox = HBox(10.0) + hbox.children.addAll(signIn, signUp) + gridPane.add(hbox, 0, 2) + + return Scene(gridPane, 250.0, 150.0) + } +} \ No newline at end of file diff --git a/src/Registrar.kt b/src/Registrar.kt new file mode 100644 index 0000000..91a63d9 --- /dev/null +++ b/src/Registrar.kt @@ -0,0 +1,71 @@ +import javafx.geometry.Insets +import javafx.geometry.Pos +import javafx.scene.Scene +import javafx.scene.control.Button +import javafx.scene.control.Label +import javafx.scene.control.PasswordField +import javafx.scene.control.TextField +import javafx.scene.layout.GridPane +import javafx.scene.layout.HBox +import javafx.scene.layout.VBox + +// Create User Account +object Registrar { + val scene by lazy { scene() } + + private fun scene(): Scene { + + val gridPane = GridPane() + gridPane.alignment = Pos.CENTER + gridPane.hgap = 10.0 + gridPane.vgap = 10.0 + gridPane.padding = Insets(25.0, 25.0, 25.0, 25.0) + + val text = Label("Register") + text.font = GUIFont.heavy + gridPane.add(text, 0, 0) + + val email = TextField() + email.promptText = "Email" + email.font = GUIFont.regular + + val password = PasswordField() + password.promptText = "Password" + password.font = GUIFont.regular + + val retypePassword = PasswordField() + retypePassword.promptText = "Retype Password" + retypePassword.font = GUIFont.regular + + val vbox = VBox(10.0) + vbox.children.addAll(email, password, retypePassword) + gridPane.add(vbox, 0, 1) + + val register = Button("Register") + register.font = GUIFont.medium + register.setOnAction { + _ -> + // Check if email address already exists + // - Connect to database + // - Check database for instances of email-address + // - If found + // - Display warning that email address already exists in the system + // - Check if password matches retype password + // - If matches + // - Display warning that passwords don't match + // Else execute a query that adds email address and password to database + println("An email has been sent confirming your account.") + window.scene = Logger.scene + } + + val back = Button("Go back") + back.font = GUIFont.medium + back.setOnAction { _ -> window.scene = Logger.scene } + + val hbox = HBox(10.0) + hbox.children.addAll(register, back) + gridPane.add(hbox, 0, 2) + + return Scene(gridPane, 250.0, 200.0) + } +} diff --git a/src/Source.kt b/src/Source.kt new file mode 100644 index 0000000..5015f00 --- /dev/null +++ b/src/Source.kt @@ -0,0 +1,41 @@ +import javafx.application.Application +import javafx.scene.text.Font +import javafx.stage.Stage + +object GUIFont { + val bold = Font.loadFont("file:resources/fonts/SF-Pro-Text-Bold.otf", 20.0)!! + val boldItalic = Font.loadFont("file:resources/fonts/SF-Pro-Text-BoldItalic.otf", 20.0)!! + val heavy = Font.loadFont("file:resources/fonts/SF-Pro-Text-Heavy.otf", 20.0)!! + val heavyItalic = Font.loadFont("file:resources/fonts/SF-Pro-Text-HeavyItalic.otf", 20.0)!! + val light = Font.loadFont("file:resources/fonts/SF-Pro-Text-Light.otf", 20.0)!! + val lightItalic = Font.loadFont("file:resources/fonts/SF-Pro-Text-LightItalic.otf", 20.0)!! + val medium = Font.loadFont("file:resources/fonts/SF-Pro-Text-Medium.otf", 12.0)!! + val mediumItalic = Font.loadFont("file:resources/fonts/SF-Pro-Text-MediumItalic.otf", 20.0)!! + val regular = Font.loadFont("file:resources/fonts/SF-Pro-Text-Regular.otf", 12.0)!! + val regularItalic = Font.loadFont("file:resources/fonts/SF-Pro-Text-RegularItalic.otf", 20.0)!! + val semibold = Font.loadFont("file:resources/fonts/SF-Pro-Text-Semibold.otf", 20.0)!! + val semibolditalic = Font.loadFont("file:resources/fonts/SF-Pro-Text-SemiboldItalic.otf", 20.0)!! +} + +lateinit var window: Stage + +class GUI : Application() { + + val url = "jdbc:mysql://localhost:3306/" + val database = "scheduler" + + override fun start(primaryStage: Stage) { + window = primaryStage + + window.scene = Logger.scene + window.title = "Vision" + window.show() + } + + companion object { + @JvmStatic + fun main(args: Array) { + launch(GUI::class.java) + } + } +} \ No newline at end of file diff --git a/src/Welcome.kt b/src/Welcome.kt new file mode 100644 index 0000000..c356313 --- /dev/null +++ b/src/Welcome.kt @@ -0,0 +1,34 @@ +import javafx.geometry.Insets +import javafx.geometry.Pos +import javafx.scene.Scene +import javafx.scene.layout.GridPane +import javafx.scene.text.Text + +// Main menu: +// Modify user account data +// Menu bar include account, appointment, setting, and help +object Welcome { + data class User(val email: String, val password: String) {} + lateinit var user: User + + val scene by lazy { scene() } + + private fun scene(): Scene { + + val gridPane = GridPane() + gridPane.alignment = Pos.CENTER + gridPane.hgap = 10.0 + gridPane.vgap = 10.0 + gridPane.padding = Insets(25.0, 25.0, 25.0, 25.0) + + val email = Text(user.email) + email.font = GUIFont.bold + gridPane.add(email, 0, 0) + + val password = Text(user.password) + password.font = GUIFont.bold + gridPane.add(password, 1, 0) + + return Scene(gridPane, 150.0, 50.0) + } +} \ No newline at end of file