From 2ba36d3cd42201f93ebdf3175e9aa28364fb28c8 Mon Sep 17 00:00:00 2001 From: Modo <yashlaxman@gmail.com> Date: Tue, 17 Oct 2023 23:44:10 +0530 Subject: [PATCH] Add error message to login, Fix Internal Error 500 Yeah i touched the rest api and fixed the internal favicon error :P Cleaned up the pages and linked the error messages --- backend/rest_api.py | 10 +- backend/static/favicon.ico | Bin 0 -> 67646 bytes frontend/arrow.svg | 1 + frontend/dashboard.html | 2 +- frontend/download.svg | 4 + frontend/index.css | 2 +- frontend/index.js | 25 +--- frontend/register.css | 285 ++++++++++++++++++++++++------------- frontend/register.html | 10 +- 9 files changed, 214 insertions(+), 125 deletions(-) create mode 100644 backend/static/favicon.ico create mode 100644 frontend/arrow.svg create mode 100644 frontend/download.svg diff --git a/backend/rest_api.py b/backend/rest_api.py index 2dbd4a1..c0dcf32 100644 --- a/backend/rest_api.py +++ b/backend/rest_api.py @@ -13,7 +13,7 @@ def handle_first_launched(): folder_path: str = appdirs.user_data_dir(appname="Unnamed_Password_Manager") if not path.exists(folder_path): mkdir(folder_path) - + @app.get("/") @app.get("/<url_path>") @@ -99,3 +99,11 @@ class QueryHandler: ) return Response(status=200) + +import os +from os import path + +@app.route('/favicon.ico') +def favicon(): + favicon_path = os.path.join(app.root_path, 'static', 'favicon.ico') + return send_file(favicon_path, mimetype='image/vnd.microsoft.icon') \ No newline at end of file diff --git a/backend/static/favicon.ico b/backend/static/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..40dd7f5cd69f8a36d476c77784f1b78eb9453f44 GIT binary patch literal 67646 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 Py?wQ~Cu-o|rh)$lKYBv+ literal 0 HcmV?d00001 diff --git a/frontend/arrow.svg b/frontend/arrow.svg new file mode 100644 index 0000000..cbd2be9 --- /dev/null +++ b/frontend/arrow.svg @@ -0,0 +1 @@ +<?xml version="1.0" ?><!DOCTYPE svg PUBLIC '-//W3C//DTD SVG 1.1//EN' 'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'><svg height="512px" id="Layer_1" style="enable-background:new 0 0 512 512;" version="1.1" viewBox="0 0 512 512" width="512px" xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><polygon points="352,128.4 319.7,96 160,256 160,256 160,256 319.7,416 352,383.6 224.7,256 "/></svg> \ No newline at end of file diff --git a/frontend/dashboard.html b/frontend/dashboard.html index a740708..093fe20 100644 --- a/frontend/dashboard.html +++ b/frontend/dashboard.html @@ -12,7 +12,7 @@ </div> </div> - <script src="index.js"></script> + <script src=""></script> </body> <footer><p>© 2023 Password Manager</p></footer> diff --git a/frontend/download.svg b/frontend/download.svg new file mode 100644 index 0000000..8877e84 --- /dev/null +++ b/frontend/download.svg @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="utf-8"?> +<svg viewBox="0 0 500 500" xmlns="http://www.w3.org/2000/svg"> + <polygon points="360.098 116.492 319.471 85.615 118.599 238.096 118.599 238.096 118.599 238.096 319.471 390.577 360.098 359.7 199.979 238.096" style="fill: rgb(255, 255, 255);" transform="matrix(1.0000000000000002, 0, 0, 1.0000000000000002, 0, 1.1102230246251565e-16)"/> +</svg> \ No newline at end of file diff --git a/frontend/index.css b/frontend/index.css index bcc6263..27df6bf 100644 --- a/frontend/index.css +++ b/frontend/index.css @@ -9,7 +9,7 @@ body { align-items: center; justify-content: center; background-image: url("bg.jpg"); - background-size: cover; + background-size: 200% auto; background-position: center; background-repeat: no-repeat; } diff --git a/frontend/index.js b/frontend/index.js index 2adb4e5..0c7619b 100644 --- a/frontend/index.js +++ b/frontend/index.js @@ -47,32 +47,18 @@ console.log(formData) try { const response = await fetch('/login', { method: "post", - /* headers: { - 'Content-Type': 'application/json' - }*/ body: formData }); if(response.ok) { window.location.href = "dashboard.html"; } else if(!response.ok) { - if (response.status === 403) { - const error = new Error('Access denied: You do not have permission to access this resource.'); - document.getElementById("errlabel").innerHTML = "Invalid Details!"; + const errorMessage = await response.text(); + document.getElementById("errlabel").innerHTML = errorMessage; setTimeout(()=> { document.getElementById("errlabel").innerHTML = ""; },3000) - console.log(response) - throw error; - } - } - - //error - const errorData = await response.json(); - if (response.status === 401) { - throw new Error('Invalid username or password') - } else { - throw new Error(errorData.error) + throw new Error(errorMessage); } // const data = await response.json(); @@ -83,10 +69,7 @@ console.log(formData) } catch (error) { - console.log(error); - if(error instanceof TypeError && error.message === 'Failed to fetch'){ - console.log("Failed Server") - } + console.error('Error:', error.message); } } diff --git a/frontend/register.css b/frontend/register.css index ac1abf2..aed3c06 100644 --- a/frontend/register.css +++ b/frontend/register.css @@ -1,102 +1,189 @@ * { - box-sizing: border-box; - } - - body { - background-color: dimgrey; - display: flex; - margin-top: 25px; - align-items: center; - justify-content: center; - background-image: url("bg.jpg"); - background-size: cover; - background-position: center; - background-repeat: no-repeat; - } - - .wrapper { - display: flex; - width: 90vw; - height: 90vh; - align-items: center; - justify-content: center; - } - - - .container { - display: flex; - background-color: transparent; - backdrop-filter: blur(20px); - justify-content: center; - align-items: center; - width: 450px; - height: 400px; - flex-direction: column; - padding: 70px; - padding-bottom: 90px; - box-shadow: 0px 0px 20px rgba(0, 0, 0, 0.6); - row-gap: 8px; - border-radius: 50px; - } + box-sizing: border-box; +} - .input { - width: 300px; - height: 30px; - background-color: transparent; - color: rgb(255, 255, 255, 0.8); - box-shadow: 2px 2px 3px rgb(0, 0, 0, 0.5); - border: none; - border-top: rgba(255, 255, 255, 0.2) 2px solid; - border-left: rgb(255, 255, 255, 0.2) 2px solid; - border-radius: 10px; - padding-left: 5px; - } - - .idiv p { - color: white; - font-family: 'Pixelify Sans', cursive; - margin-left: 5px; - } - - #username::placeholder { - color: rgb(255, 255, 255, 0.5); - padding-left: 5px; - } - - #password::placeholder { - color: rgb(255, 255, 255, 0.5); - padding-left: 5px; - } +body { + background-color: dimgrey; + display: flex; + margin-top: 25px; + align-items: center; + justify-content: center; + background-image: url("bg.jpg"); + background-size: 200% auto; + background-position: center; + background-repeat: no-repeat; +} - .idiv { - display: flex; - flex-direction: column; - row-gap: 10px; - justify-content: center; - padding: 7px; - } - - .idiv p{ - padding: none; - margin: none; - display: absolute; - translate: 0px 12px; - } - - #loginb { - background-color: transparent; - color: rgb(255, 255, 255, 0.8); - padding: 7px; - margin-top: 20px; - margin-bottom: 20px; - width: 150px; - box-shadow: 2px 2px 5px rgb(0, 0, 0, 0.5); - translate: 0px -5px; - font-family: 'Pixelify Sans', cursive; - font-size: 20px; - border-radius: 10px; - } - - #loginb:active { - background-color: rgb(155, 155, 155, 0.3); - } \ No newline at end of file +.wrapper { + display: flex; + width: 90vw; + height: 90vh; + align-items: center; + justify-content: center; +} + + +.container { + display: flex; + background-color: transparent; + backdrop-filter: blur(20px); + justify-content: center; + align-items: center; + width: 450px; + height: 400px; + flex-direction: column; + padding: 70px; + padding-bottom: 90px; + box-shadow: 0px 0px 20px rgba(0, 0, 0, 0.6); + row-gap: 8px; + border-radius: 50px; +} + +#register { + display: block; + text-align: center; + font-family: 'Pixelify Sans', cursive; + font-size: 50px; + text-shadow: 2px 2px 5px rgb(0, 0, 0); + color: white; + translate: 0px 10px; +} + +.input { + width: 300px; + height: 30px; + background-color: transparent; + color: rgb(255, 255, 255, 0.8); + box-shadow: 2px 2px 3px rgb(0, 0, 0, 0.5); + border: none; + border-top: rgba(255, 255, 255, 0.2) 2px solid; + border-left: rgb(255, 255, 255, 0.2) 2px solid; + border-radius: 10px; + padding-left: 5px; +} + +.idiv p { + color: white; + font-family: 'Pixelify Sans', cursive; + margin-left: 5px; +} + +#username::placeholder { + color: rgb(255, 255, 255, 0.5); + padding-left: 5px; +} + +#password::placeholder { + color: rgb(255, 255, 255, 0.5); + padding-left: 5px; +} + +#conpassword::placeholder { + color: rgb(255, 255, 255, 0.5); + padding-left: 5px; +} + +.idiv input { + translate: 0px -20px; +} + +.idiv { + display: flex; + flex-direction: column; + row-gap: 10px; + justify-content: center; + padding: 7px; +} + +.idiv p{ + padding: none; + margin: none; + display: absolute; + translate: 0px 12px; +} + +#loginb { + background-color: transparent; + color: rgb(255, 255, 255, 0.8); + padding: 7px; + margin-top: 20px; + margin-bottom: 20px; + width: 150px; + box-shadow: 2px 2px 5px rgb(0, 0, 0, 0.5); + translate: 0px -5px; + font-family: 'Pixelify Sans', cursive; + font-size: 20px; + border-radius: 10px; +} + +#loginb:active { + background-color: rgb(155, 155, 155, 0.3); +} + +.help { + width: 100%; + display: flex; + justify-content: space-between; + align-items: center; + +} + + +.help div{ + display: flex; + width: 50%; + justify-content: center; +} + +.error label { + position: absolute; + display: block; + justify-content: center; + translate: -50% 3px; + color: rgba(184, 156, 255, 0.9); + font-family: Arial, Helvetica, sans-serif; + font-size: 12px; + font-style: bold; + font-weight: bold; +} + +a { + text-decoration: none; + color: rgba(255, 255, 255, 0.5); + text-align: center; + font-family: 'Poppins', sans-serif; + font-size: 12px; +} + +a:active { + color: rgb(196, 196, 196, 10); +} + +footer{ + position: fixed; + bottom: 0px; + background-color: rgb(12, 12, 12); + height: 50px; + width: 100vw; +} + +footer p{ + color: white; + text-align: center; +} + +#returnb { + position: absolute; + top: 30px; + left: 30px; + width: 35px; + height: 35px; + border-radius: 15px; + font-family: 'Pixelify Sans', cursive; + color: white; + background-color: transparent; + background-image: url('download.svg'); + background-size: cover; + + box-shadow: rgb(0, 0, 0) 0px 0px 10px; +} \ No newline at end of file diff --git a/frontend/register.html b/frontend/register.html index 94b19d8..9beca2f 100644 --- a/frontend/register.html +++ b/frontend/register.html @@ -4,22 +4,28 @@ <head> <meta http-equiv="CONTENT-TYPE" content="text/html; charset=UTF-8"> <link rel="stylesheet" href="register.css"/> + <link rel="preconnect" href="https://fonts.googleapis.com"> + <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> + <link href="https://fonts.googleapis.com/css2?family=Pixelify+Sans:wght@500&display=swap" rel="stylesheet"> <title>Register</title> <body> <div class="wrapper"> <div class="container"> + <button onclick="location.href = 'index.html'" id="returnb"></button> + <div> - <p id="login">Register</p> + <p id="register">Register</p> </div> <div class="idiv"> <input class="input" id="username" type="text" placeholder="Username"> <input class="input" id="password" type="password" placeholder="Pasword"> + <input class="input" id="conpassword" type="password" placeholder="Confirm Pasword"> </div> <div class="buttons"> - <button id="loginb">Login</button> + <button id="loginb">Sign Up</button> </div> </div>