From 75a5912cce6c79f3b82c63a02dbf8bb58db73507 Mon Sep 17 00:00:00 2001 From: Arlo Filley Date: Thu, 17 Nov 2022 11:48:12 +0000 Subject: [PATCH] bug fixes and qol improvements --- src/main.rs | 6 --- src/sql.rs | 2 - website/api/api.js | 14 ++++++ website/api/user.js | 1 + website/assets/favicon/about.txt | 6 +++ .../assets/favicon/android-chrome-192x192.png | Bin 0 -> 3437 bytes .../assets/favicon/android-chrome-512x512.png | Bin 0 -> 11455 bytes website/assets/favicon/apple-touch-icon.png | Bin 0 -> 3081 bytes website/assets/favicon/favicon-16x16.png | Bin 0 -> 552 bytes website/assets/favicon/favicon-32x32.png | Bin 0 -> 968 bytes website/assets/favicon/favicon.ico | Bin 0 -> 15406 bytes website/assets/favicon/favicon_io (1).zip | Bin 0 -> 36397 bytes website/assets/favicon/site.webmanifest | 1 + website/assets/fonts/RobotoMono-Medium.ttf | Bin 0 -> 86820 bytes website/index.html | 7 +++ website/index.js | 5 ++ website/screens/endscreen.js | 23 ++++++++- website/screens/loginscreen.js | 23 +++++++++ website/screens/profilescreen.js | 46 ++++++++++++++++++ website/screens/signUpScreen.js | 23 +++++++++ website/screens/startscreen.js | 6 ++- website/ui_elements/textbox.js | 2 - 22 files changed, 153 insertions(+), 12 deletions(-) create mode 100644 website/assets/favicon/about.txt create mode 100644 website/assets/favicon/android-chrome-192x192.png create mode 100644 website/assets/favicon/android-chrome-512x512.png create mode 100644 website/assets/favicon/apple-touch-icon.png create mode 100644 website/assets/favicon/favicon-16x16.png create mode 100644 website/assets/favicon/favicon-32x32.png create mode 100644 website/assets/favicon/favicon.ico create mode 100644 website/assets/favicon/favicon_io (1).zip create mode 100644 website/assets/favicon/site.webmanifest create mode 100644 website/assets/fonts/RobotoMono-Medium.ttf create mode 100644 website/screens/profilescreen.js diff --git a/src/main.rs b/src/main.rs index e37559a..c4eab88 100644 --- a/src/main.rs +++ b/src/main.rs @@ -20,12 +20,6 @@ use crate::sql::Test; fn test() -> String { sql::create_database() .expect("couldn't create database"); - - sql::create_user("arlo", "passwod123") - .expect("couldn't create user"); - - sql::create_user("arlo","password123") - .expect("couldn't create user"); String::from("Hello World!") } diff --git a/src/sql.rs b/src/sql.rs index bdde447..80cbd36 100644 --- a/src/sql.rs +++ b/src/sql.rs @@ -168,8 +168,6 @@ pub fn get_user_tests( WHERE user_id=:user_id", )?; - let mut user_id: u32 = 0; - let test_iter = statement .query_map(&[(":user_id", &user_id.to_string())], |row| { Ok( Test { diff --git a/website/api/api.js b/website/api/api.js index 72b79c9..b5517ea 100644 --- a/website/api/api.js +++ b/website/api/api.js @@ -211,6 +211,20 @@ class API { logout() { user = new User(); + user.username = "no one"; + user.password = "none"; + user.userId = 0; + user.tests = []; localStorage.clear(); } + + getUserTests() { + let xhr = new XMLHttpRequest(); + let userId = Number(user.userId); + xhr.open('GET', `${this.url}get_user_tests/${userId}/`); + xhr.send(); + xhr.onload = () => { + user.tests = JSON.parse(xhr.response); + }; + } } \ No newline at end of file diff --git a/website/api/user.js b/website/api/user.js index c58db7d..1a0145b 100644 --- a/website/api/user.js +++ b/website/api/user.js @@ -3,5 +3,6 @@ class User { this.username = "not logged in"; this.password = "there"; this.userId = 0; + this.tests; } } \ No newline at end of file diff --git a/website/assets/favicon/about.txt b/website/assets/favicon/about.txt new file mode 100644 index 0000000..9bb2f0c --- /dev/null +++ b/website/assets/favicon/about.txt @@ -0,0 +1,6 @@ +This favicon was generated using the following font: + +- Font Title: Roboto +- Font Author: Copyright 2011 Google Inc. All Rights Reserved. +- Font Source: http://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmSU5vAx05IsDqlA.ttf +- Font License: Apache License, version 2.0 (http://www.apache.org/licenses/LICENSE-2.0.html)) diff --git a/website/assets/favicon/android-chrome-192x192.png b/website/assets/favicon/android-chrome-192x192.png new file mode 100644 index 0000000000000000000000000000000000000000..5505cf627290f3ff06993dae75eedaa67af92a34 GIT binary patch literal 3437 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 literal 0 HcmV?d00001 diff --git a/website/assets/favicon/favicon.ico b/website/assets/favicon/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..95c11d6be0ffc760fd7064177903484c4c62c6a7 GIT binary patch literal 15406 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 P48ITh|KI-#G*#d)aB1S@ literal 0 HcmV?d00001 diff --git a/website/assets/favicon/favicon_io (1).zip b/website/assets/favicon/favicon_io (1).zip new file mode 100644 index 0000000000000000000000000000000000000000..7cfaf50e93ee3a39e59704dafdfdd903713184bc GIT binary patch literal 36397 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 V`viEivVo*HfbbtMZ%OumcmQqdKl%Uw literal 0 HcmV?d00001 diff --git a/website/assets/favicon/site.webmanifest b/website/assets/favicon/site.webmanifest new file mode 100644 index 0000000..45dc8a2 --- /dev/null +++ b/website/assets/favicon/site.webmanifest @@ -0,0 +1 @@ +{"name":"","short_name":"","icons":[{"src":"/android-chrome-192x192.png","sizes":"192x192","type":"image/png"},{"src":"/android-chrome-512x512.png","sizes":"512x512","type":"image/png"}],"theme_color":"#ffffff","background_color":"#ffffff","display":"standalone"} \ No newline at end of file diff --git a/website/assets/fonts/RobotoMono-Medium.ttf b/website/assets/fonts/RobotoMono-Medium.ttf new file mode 100644 index 0000000000000000000000000000000000000000..752d0fab788b03c162f7aec80b8e39fa7711b900 GIT binary patch literal 86820 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 z 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 z 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 F{vUrGuebmJ literal 0 HcmV?d00001 diff --git a/website/index.html b/website/index.html index ed3c5dc..dfdbb45 100644 --- a/website/index.html +++ b/website/index.html @@ -6,6 +6,12 @@ Document + + + + + + @@ -24,6 +30,7 @@ + diff --git a/website/index.js b/website/index.js index fe6daef..96b7794 100644 --- a/website/index.js +++ b/website/index.js @@ -1,5 +1,9 @@ let canvas, api, screenManager, user; +function preload() { + roboto = loadFont('./assets/fonts/RobotoMono-Medium.ttf'); +} + function setup() { // Creating the canvas canvas = new Canvas(); @@ -15,6 +19,7 @@ function setup() { // will log the user in if there details are in local storage api.login(); + textFont(roboto); } // this function is called once per frame and draws all other elements diff --git a/website/screens/endscreen.js b/website/screens/endscreen.js index 1df4e6f..95131fa 100644 --- a/website/screens/endscreen.js +++ b/website/screens/endscreen.js @@ -1,6 +1,11 @@ class EndScreen { constructor() { - screenManager.textbox = new Textbox(0,0,0,0,0,false,"#000", false, "#000", "#000"); + this.buttons = [ + new Button(0,0,100,30,0,true,"#fff",false,"#000","#000","Sign Up"), + new Button(110,0,100,30,0,true,"#fff",false,"#000","#000","Login"), + new Button(220,0,100,30,0,true,"#fff",false,"#000","#000","Logout"), + new Button(330,0,100,30,0,true,"#fff",false,"#000","#000","Profile") + ] } draw() { @@ -9,6 +14,22 @@ class EndScreen { textAlign(CENTER, CENTER); fill(0); text("Test Complete\nPress enter to start another test", 0, 0, windowWidth - 100, windowHeight - 100); + this.buttons[0].draw(); + this.buttons[1].draw(); + this.buttons[2].draw(); + this.buttons[3].draw(); + this.buttons[4].draw(); + if (this.buttons[0].isPressed()) { + screenManager.setScreen(new SignUpScreen()); + } else if (this.buttons[1].isPressed()) { + screenManager.setScreen(new LoginScreen()); + } else if (this.buttons[2].isPressed()) { + api.logout(); + } else if (this.buttons[3].isPressed()) { + screenManager.setScreen(new ProfileScreen()); + } else if (this.buttons[4].isPressed()) { + screenManager.setScreen(new TestScreen()) + } } letterTyped() { diff --git a/website/screens/loginscreen.js b/website/screens/loginscreen.js index 826ac64..c86ab12 100644 --- a/website/screens/loginscreen.js +++ b/website/screens/loginscreen.js @@ -52,6 +52,12 @@ class LoginScreen { false,"#000", "#00ff00","Login" ), + + new Button(0,0,100,30,0,true,"#fff",false,"#000","#000","Sign Up"), + new Button(110,0,100,30,0,true,"#fff",false,"#000","#000","Login"), + new Button(220,0,100,30,0,true,"#fff",false,"#000","#000","Logout"), + new Button(330,0,100,30,0,true,"#fff",false,"#000","#000","Profile"), + new Button(330,0,100,30,0,true,"#fff",false,"#000","#000","Test"), ] this.activeTextBox = 0 @@ -86,6 +92,23 @@ class LoginScreen { ) screenManager.setScreen(new StartScreen()); } + + this.buttons[3].draw(); + this.buttons[4].draw(); + this.buttons[5].draw(); + this.buttons[6].draw(); + this.buttons[7].draw(); + if (this.buttons[3].isPressed()) { + screenManager.setScreen(new SignUpScreen()); + } else if (this.buttons[4].isPressed()) { + screenManager.setScreen(new LoginScreen()); + } else if (this.buttons[5].isPressed()) { + api.logout(); + } else if (this.buttons[6].isPressed()) { + screenManager.setScreen(new ProfileScreen()); + } else if (this.buttons[7].isPressed()) { + screenManager.setScreen(new TestScreen()) + } } /** diff --git a/website/screens/profilescreen.js b/website/screens/profilescreen.js new file mode 100644 index 0000000..5e91938 --- /dev/null +++ b/website/screens/profilescreen.js @@ -0,0 +1,46 @@ +class ProfileScreen { + constructor() { + this.buttons = [ + new Button(0,0,100,30,0,true,"#fff",false,"#000","#000","Sign Up"), + new Button(110,0,100,30,0,true,"#fff",false,"#000","#000","Login"), + new Button(220,0,100,30,0,true,"#fff",false,"#000","#000","Logout"), + new Button(330,0,100,30,0,true,"#fff",false,"#000","#000","Profile"), + new Button(440,0,100,30,0,true,"#fff",false,"#000","#000","Test"), + ]; + api.getUserTests(); + } + + draw() { + background("#eeeee4"); + textSize(100); + textAlign(CENTER, CENTER); + fill("#000"); + text("Profile", 0, 100, windowWidth - 100, 120); + this.buttons[0].draw(); + this.buttons[1].draw(); + this.buttons[2].draw(); + this.buttons[3].draw(); + this.buttons[4].draw(); + if (this.buttons[0].isPressed()) { + screenManager.setScreen(new SignUpScreen()); + } else if (this.buttons[1].isPressed()) { + screenManager.setScreen(new LoginScreen()); + } else if (this.buttons[2].isPressed()) { + api.logout(); + } else if (this.buttons[3].isPressed()) { + screenManager.setScreen(new ProfileScreen()); + } else if (this.buttons[4].isPressed()) { + screenManager.setScreen(new TestScreen()) + } + + textSize(20); + fill("#000"); + if (user.tests != undefined) { + for (let i = 0; i < user.tests.length; i++) { + text(`Tests ${i+1}: ${user.tests[i].wpm}wpm | Type: ${user.tests[i].test_type} | Time: ${user.tests[i].test_time} | Characters Typed: ${user.tests[i].test_length}`, 0, i*30+300, windowWidth, 30); + } + } + fill("#000"); + text(`Logged in as ${user.username}`, windowWidth-100, 15); + } +} \ No newline at end of file diff --git a/website/screens/signUpScreen.js b/website/screens/signUpScreen.js index 2d61ec1..536a286 100644 --- a/website/screens/signUpScreen.js +++ b/website/screens/signUpScreen.js @@ -52,6 +52,11 @@ class SignUpScreen { false,"#000", "#00ff00","Sign Up" ), + new Button(0,0,100,30,0,true,"#fff",false,"#000","#000","Sign Up"), + new Button(110,0,100,30,0,true,"#fff",false,"#000","#000","Login"), + new Button(220,0,100,30,0,true,"#fff",false,"#000","#000","Logout"), + new Button(330,0,100,30,0,true,"#fff",false,"#000","#000","Profile"), + new Button(330,0,100,30,0,true,"#fff",false,"#000","#000","Test"), ] this.activeTextBox = 0 @@ -72,6 +77,7 @@ class SignUpScreen { this.textboxes[i].draw(); } + fill("#000"); text("Username", 110, 175); text("Password", 110, 325); @@ -86,6 +92,23 @@ class SignUpScreen { ) screenManager.setScreen(new StartScreen()); } + + this.buttons[3].draw(); + this.buttons[4].draw(); + this.buttons[5].draw(); + this.buttons[6].draw(); + this.buttons[7].draw(); + if (this.buttons[3].isPressed()) { + screenManager.setScreen(new SignUpScreen()); + } else if (this.buttons[4].isPressed()) { + screenManager.setScreen(new LoginScreen()); + } else if (this.buttons[5].isPressed()) { + api.logout(); + } else if (this.buttons[6].isPressed()) { + screenManager.setScreen(new ProfileScreen()); + } else if (this.buttons[7].isPressed()) { + screenManager.setScreen(new TestScreen()) + } } /** diff --git a/website/screens/startscreen.js b/website/screens/startscreen.js index d9593e4..3fd9cb5 100644 --- a/website/screens/startscreen.js +++ b/website/screens/startscreen.js @@ -4,6 +4,7 @@ class StartScreen { new Button(0,0,100,30,0,true,"#fff",false,"#000","#000","Sign Up"), new Button(110,0,100,30,0,true,"#fff",false,"#000","#000","Login"), new Button(220,0,100,30,0,true,"#fff",false,"#000","#000","Logout"), + new Button(330,0,100,30,0,true,"#fff",false,"#000","#000","Profile") ] } @@ -16,13 +17,16 @@ class StartScreen { this.buttons[0].draw(); this.buttons[1].draw(); this.buttons[2].draw(); + this.buttons[3].draw(); if (this.buttons[0].isPressed()) { screenManager.setScreen(new SignUpScreen()); } else if (this.buttons[1].isPressed()) { screenManager.setScreen(new LoginScreen()); } else if (this.buttons[2].isPressed()) { api.logout(); - } + } else if (this.buttons[3].isPressed()) { + screenManager.setScreen(new ProfileScreen()); + } fill("#000"); text(`${user.username}`, windowWidth-100, 15); } diff --git a/website/ui_elements/textbox.js b/website/ui_elements/textbox.js index 1e2d2f7..5746688 100644 --- a/website/ui_elements/textbox.js +++ b/website/ui_elements/textbox.js @@ -183,8 +183,6 @@ class Textbox { fill(this.textColor); textSize(23); textAlign(LEFT); - // font needs to be monospaced for outputting text to the screen like I do - textFont('monospace'); // these variables allow me to use the values of x and y while updating them let i = this.x;