From 65e000a3d17865914a09c7a72184836ff20b806a Mon Sep 17 00:00:00 2001 From: Nour125 <ahmed.noureddin.00@gmail.com> Date: Tue, 6 Jun 2023 16:24:27 +0200 Subject: [PATCH] Forntend added --- Frontend/main.py | 69 ++++++++++++++++++++++ Frontend/static/dino.ico | Bin 0 -> 67646 bytes Frontend/static/favicon.ico | Bin 0 -> 3870 bytes Frontend/static/moyai.jpg | Bin 0 -> 11003 bytes Frontend/static/smolconcern.png | Bin 0 -> 23136 bytes Frontend/static/styles.css | 101 ++++++++++++++++++++++++++++++++ Frontend/templates/base.html | 36 ++++++++++++ Frontend/templates/case.html | 16 +++++ Frontend/templates/index.html | 28 +++++++++ Frontend/templates/loading.html | 11 ++++ Frontend/templates/login.html | 18 ++++++ Frontend/templates/result.html | 15 +++++ Frontend/templates/signup.html | 20 +++++++ 13 files changed, 314 insertions(+) create mode 100644 Frontend/main.py create mode 100644 Frontend/static/dino.ico create mode 100644 Frontend/static/favicon.ico create mode 100644 Frontend/static/moyai.jpg create mode 100644 Frontend/static/smolconcern.png create mode 100644 Frontend/static/styles.css create mode 100644 Frontend/templates/base.html create mode 100644 Frontend/templates/case.html create mode 100644 Frontend/templates/index.html create mode 100644 Frontend/templates/loading.html create mode 100644 Frontend/templates/login.html create mode 100644 Frontend/templates/result.html create mode 100644 Frontend/templates/signup.html diff --git a/Frontend/main.py b/Frontend/main.py new file mode 100644 index 0000000..8d85aa5 --- /dev/null +++ b/Frontend/main.py @@ -0,0 +1,69 @@ +from flask import Flask, render_template, url_for, request, redirect, flash +from datetime import datetime +from werkzeug.utils import secure_filename +import time, os + +#define the app +app = Flask(__name__) + +#the secret key :) +SECRET_KEY = '12345' + +#specifies where the upload directory is and the file type available for uploads +UPLOAD_FOLDER = '/upload' +ALLOWED_EXTENSIONS = {'.csv','.xes'} +app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER + +#home page route +@app.route('/') +def index(): + return render_template('index.html') + +#the upload functionality. It then redirects to the case labeling page +@app.route('/', methods=['POST']) +def upload_file(): + uploaded_file = request.files['file'] + if uploaded_file.filename != '': + uploaded_file.save(uploaded_file.filename) + elif uploaded_file.filename == '': + flash('no files selected') + return redirect(url_for('index')) + return redirect(url_for('case')) + +#login page route +@app.route('/login.html') +def login(): + return render_template('login.html') + +#signup page route +@app.route('/signup.html') +def signup(): + return render_template('signup.html') + +#case selection page route +@app.route('/case.html') +def case(): + return render_template('case.html') + +#eventually to input the case ID selection, for now it does nothing +@app.route('/case.html', methods=['GET']) +def input_caseid(): + return render_template('case.html') + +#result page route +@app.route('/result.html') +def result(): + return render_template('result.html') + +#loading page route +@app.route('/loading.html') +def loading(): + return render_template('loading.html') + +if __name__ == "__main__": + port = int(os.environ.get('PORT', 5000)) + app.run(debug=True, host='0.0.0.0', port=port) + + + + diff --git a/Frontend/static/dino.ico b/Frontend/static/dino.ico new file mode 100644 index 0000000000000000000000000000000000000000..77eb98dd2e954298d2746b6dc811332e5eca321d GIT binary patch literal 67646 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 literal 0 HcmV?d00001 diff --git a/Frontend/static/favicon.ico b/Frontend/static/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..a11777cc471a4344702741ab1c8a588998b1311a GIT binary patch literal 3870 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 ZtMWJ#1p_C<F-T5Hu2|;y@Dg%;1puB)gNgtE literal 0 HcmV?d00001 diff --git a/Frontend/static/moyai.jpg b/Frontend/static/moyai.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ea8453f295356eac65fdc6da4b02275386cc6da9 GIT binary patch literal 11003 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 W)`IE~Q?@N7hs579LBpo>|4jhWj@Lv0 literal 0 HcmV?d00001 diff --git a/Frontend/static/smolconcern.png b/Frontend/static/smolconcern.png new file mode 100644 index 0000000000000000000000000000000000000000..535347780d47441b50cf8fbf37cb832b65cec7c9 GIT binary patch literal 23136 zcmeAS@N?(olHy`uVBq!ia0y~yU?>1#4mJh`hGP%Dcr!3Cu%tWsIx;Y9?C1WI$jZRL zz*rpQ?!>U}oXkrG1_p&>k04(LhAK4%hK3dfhF=T}3=J<B7)lKo7+xhXFj&oCU=S~u zvn$Ysfq{W7$=lt9;Xep2*t>i(0|NtRfk$L90|U1(2s1Lwnj^u$5E<&};uunK>+Rpl zJ-Lygay<6QW!Y=@et-FHXYSos(kryAbXk;HW_KthIVUx%Z1c!T=17_%m-!{sUi9xL zZcme>oDGWu;}x1rT0<K$8Wst3EnBeS*}YY}-e#6<zBcP_#ea$7x5cY8mKZ!U{rLOa z`d8(@i@(JspEEpOaqP3r<PZB_xVj{yS!91KjsKtWwfFu9-jc6Z!-W}s-23bu|L>EF zw6sYe+hk_<!n2~`mk(a$+?u<d;aJYT*68xuKc_yIzo^#RC87Rq=WITC%Twj|D#h3B zc=YVgB=P??^46bZWt!L<Clntmxu>{{<Jr^Q41(`}f3@Ey{&#P^<0So`cklnb`{kbW z{j=?SxsT>m@7ek0QTJEneLp6a8qb?h=Jj4LO+2pb<45MzXCuNNb6O|sZR-jvFG~ww z{^stYyIVIOeN$Rj`0Xy2oqk&I6@?AoU-th0Irnq)?8}v<CT)gN433(Ig69>koOSo_ z`X8P5KX_MM+rN*y|M#W(K6m>nZvDS6%cn{Rbuj#M7rD59JA)7d+lNWh_q5!|_;YOa zKjre;e);NS#^wu;`P){!xUuwgJ6~L!uUnOg<jtNxCnjzT?~CCLYw>*iV7FNJO_|)? zy#nGE<?qh?JX-U+O(6Qd-m;roz7K5fTJ8Vqn7is`hLPRg>VNmn&15^NUjOdT%-i;5 z?_;AsTW|l=?w9xbs%P&htBA#dNk^R5RWj}U{L4NuEl$tm!T&c6|NPkt{x?_r`#jIR z{=@G5XP2L!d-%J}+uiev-n^K&di|bPm)6I`+yB`5I-C9Ov4zeXdRy1(uGx5D&H|1Z z=hI$@8{3t>_q410KKDi1?h`AY_bhOfoWoqRok5dn;<2QS4cAx}udXw^{i<i(#N=01 z_WLu<OVoG2R9bpMed1O2-xJR5`7HbX|A*!0-fa_)tzdk&<F(4)JLmt#SN!`Nf8g*U zX(o#$fB#R8i!WgK&YttX{omXCe`#MY@z*L`=3ABjzfax%`GJYa_H_qa#dBh6J{Fcf z`CxeE>kRj^90m<5O*o{&1WUUuw{6>2@a>ANMdkIk7Mp9OWSA`~4Zf~1b=GV!a_DrN z$vCyMm}QEilgkImITD7fXM!B~I5iofUIusF`SNGy&$+u}x7+6KzF&WM{@≦r36w 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 C#e%H> literal 0 HcmV?d00001 diff --git a/Frontend/static/styles.css b/Frontend/static/styles.css new file mode 100644 index 0000000..4e9caed --- /dev/null +++ b/Frontend/static/styles.css @@ -0,0 +1,101 @@ +* { + box-sizing: border-box; + } + +/*the body*/ +body { + margin: 0; + background-color:rgb(233, 240, 254); +} + +/* description*/ +.desc { + font-family: "Times New Roman"; + font-size: 15px; +} + +/*.container { + margin: 1rem; + text-align: center; +} + +.site-title { + font-size: 2rem; +}* + +/* aleks' navbar +.nav { + background-color: #333; + color: white; + display: flex; + justify-content: space-between; + align-items: stretch; + gap: 2rem; + padding: 0 1rem; +} + +/* aleks' div +.myDiv { + border: 5px outset red; + background-color: lightblue; + text-align: center; +}*/ + +/* Add a black background color to the top navigation */ +.topnav { + background-color:lightslategrey; + overflow: hidden; +} + +/* Style the links inside the navigation bar */ +.topnav a { + float: left; + color: #f2f2f2; + text-align: center; + padding: 14px 16px; + text-decoration: none; + font-size: 17px; +} + +/* Change the color of links on hover */ +.topnav a:hover { + background-color: #ddd; + color: black; +} + +/* Add a color to the active/current link */ +.topnav a.active { + background-color: cyan; + color: white; +} + +/* A define for right alignment */ +.align-right { + text-align: right; + border: 0; +} + +/* Simple Button Style*/ +.button { + background-color:rgb(9, 18, 146); /* Green */ + border: none; + color: whitesmoke; + padding: 15px 32px; + text-align: center; + text-decoration: none; + display: inline-block; + font-size: 16px; +} + +/* styling for text*/ +input[type=text] { + width: 20%; + padding: 12px 20px; + margin: 15px 12px; + box-sizing: border-box; +} + +/* styling for label*/ +label { + margin: 15px 12px; +} diff --git a/Frontend/templates/base.html b/Frontend/templates/base.html new file mode 100644 index 0000000..246e450 --- /dev/null +++ b/Frontend/templates/base.html @@ -0,0 +1,36 @@ +<!DOCTYPE html> +<html lang="en"> +<head> + <meta http-equiv="X-UA-Compatible" content="IE=edge"> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <meta charset="utf-8" /> + <link rel="icon" href="{{url_for('static',filename='dino.ico')}}"> + <link rel="stylesheet" href="{{url_for('static',filename='styles.css')}}"> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + <meta name="theme-color" content="#000000" /> + <meta + name="description" + content="The web app for OPTIS" + /> + <link rel="manifest" href="../manifest.json" /> + {% block head %} + + {% endblock %} +</head> +<body> + {% block main %} + <noscript>Please enable javascript to use the app.</noscript> + <div class="topnav"> + <a href="/">Home</a> + <a href="#about">About Us</a> + <a href="login.html" class="right" style="float:right"> Login </a> + <a href="signup.html" class="right" style="float:right"> Sign Up </a> + </div> + {% endblock %} + {% block body %} + + {% endblock %} + + +</body> +</html> \ No newline at end of file diff --git a/Frontend/templates/case.html b/Frontend/templates/case.html new file mode 100644 index 0000000..d171cf0 --- /dev/null +++ b/Frontend/templates/case.html @@ -0,0 +1,16 @@ +{% extends 'base.html' %} + +{%block head%} +<title>Case selection</title> +{%endblock%} + +{%block body%} +<div style="text-align: center;"> + <h1>Choose the case you want to optimize</h1> + <form> + <label for="caseId">Please enter the case ID:</label><br> + <input type="text" id="caseId" name="caseId"><br> + </form> + <button onclick="window.location.href='result.html'" class="button"> Optimize now!</button> +</div> +{%endblock%} \ No newline at end of file diff --git a/Frontend/templates/index.html b/Frontend/templates/index.html new file mode 100644 index 0000000..a4d7807 --- /dev/null +++ b/Frontend/templates/index.html @@ -0,0 +1,28 @@ +{% extends 'base.html' %} + +{% block head %} +<title>OPTIS Home</title> +{% endblock %} + +{% block body %} + <header style="text-align: center;"> + <h1>Welcome to OPTIS!</h1> + <h2 >OPTIS is an app that aims to give you the best possible recommendations for your business processes!</h2> + </header> + + <div style="text-align: center; padding-top: 150px;"> + <h1>Introduction</h1> + <h2 class="desc">OPTIS is a standalone Python based web application which aims to minimize time and cost requirements of busines processes. <br> It seeks to achieve this by using an intelligent agent that is trained using reinforcement learning techniques.</h2> + <h3>Here is a short introduction video on our app that explains how the app works!</h3> + <iframe width="560" height="315" src="https://www.youtube.com/watch?v=dQw4w9WgXcQ" frameborder="0" allowfullscreen></iframe> + </div> + + <div style="text-align: center;"> + <h1>Upload your files and get started now!</h1> + <form action="" method="POST" enctype="multipart/form-data"> + <p><input type="file" name="file" accept=".xes,.csv"></p> + <p><input type="submit" value="submit" class="button"></p> + </form> + <h2 style="font-size: 14px">please input only .xes and .csv files. please!</h2> + </div> +{% endblock %} \ No newline at end of file diff --git a/Frontend/templates/loading.html b/Frontend/templates/loading.html new file mode 100644 index 0000000..bee9b9c --- /dev/null +++ b/Frontend/templates/loading.html @@ -0,0 +1,11 @@ +{% extends 'base.html' %} + +{%block head%} +<title>now loading...</title> +{%endblock%} + +{%block body%} +<div style="text-align: center; padding-top: 20%; padding-bottom: 20%;"> + <h1>LOADING...</h1> +</div> +{%endblock%} \ No newline at end of file diff --git a/Frontend/templates/login.html b/Frontend/templates/login.html new file mode 100644 index 0000000..f61538c --- /dev/null +++ b/Frontend/templates/login.html @@ -0,0 +1,18 @@ +{% extends 'base.html' %} + +{%block head%} +<title>Login Page</title> +{%endblock%} + +{%block body%} +<div style="text-align: center;"> + <h1>Please enter your username and password</h1> + <form> + <label for="username">Username:</label><br> + <input type="text"><br> + <label for="password">Password:</label><br> + <input type="text"><br> + <input type="submit" value="submit" class="button"><br> + </form> +</div> +{%endblock%} \ No newline at end of file diff --git a/Frontend/templates/result.html b/Frontend/templates/result.html new file mode 100644 index 0000000..2f53880 --- /dev/null +++ b/Frontend/templates/result.html @@ -0,0 +1,15 @@ +{% extends 'base.html' %} + +{%block head%} +<title>Your results</title> +{%endblock%} + +{%block body%} +<div style="text-align: center;"> + <h1>Here are the results of the optimization!</h1> + <h2>We recommend you to do the following activity for this specific case:</h2> + <h3>Placeholder</h3> + <img src="{{url_for('static',filename='moyai.jpg')}}" alt="Placeholder"> <br> + <button onclick="window.location.href='/'" class="button"> Optimize your next case NOW!</button> +</div> +{%endblock%} \ No newline at end of file diff --git a/Frontend/templates/signup.html b/Frontend/templates/signup.html new file mode 100644 index 0000000..60d511c --- /dev/null +++ b/Frontend/templates/signup.html @@ -0,0 +1,20 @@ +{% extends 'base.html' %} + +{%block head%} +<title>Sign Up Now!</title> +{%endblock%} + +{%block body%} +<div style="text-align: center;"> + <h1>Please fill the form</h1> + <form> + <label for="email">Email:</label><br> + <input type="text"><br> + <label for="username">Username:</label><br> + <input type="text"><br> + <label for="password">Password:</label><br> + <input type="text"><br> + <input type="submit" value="submit" class="button"><br> + </form> +</div> +{%endblock%} \ No newline at end of file -- GitLab