Skip to content

Commit

Permalink
Moved to Redis, added some CSS. Generating Statistics.
Browse files Browse the repository at this point in the history
  • Loading branch information
Zachary Hanif committed Nov 18, 2019
1 parent a49e92d commit c93f244
Show file tree
Hide file tree
Showing 5 changed files with 100 additions and 6 deletions.
2 changes: 1 addition & 1 deletion data/sample_data.csv
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
query_number, metric_type (NDCG; MAP; etc), score (float)
query_number,metric_type,score
1, NDCG, 0.078
2, MAP, 1
3, MAP, 2
Expand Down
26 changes: 21 additions & 5 deletions src/server.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,14 @@
import pandas as pd
import redis
import io
import ujson
import collections

app = Flask(__name__)

ALLOWED_EXTENSIONS = {'txt', 'csv'}

POSTGRES_USER = "818_user"
POSTGRES_PW = "818"
POSTGRES_URL = "127.0.0.1:5432"
POSTGRES_DB = "project"
r = redis.Redis(host='localhost', port=6379, db=0)

def allowed_file(filename):
return '.' in filename and filename.rsplit('.', 1)[1].lower() in ALLOWED_EXTENSIONS
Expand All @@ -33,10 +32,15 @@ def upload():
if file and allowed_file(file.filename):
filename = secure_filename(file.filename)
file_contents = file.read()
data = file_contents.decode("utf-8")
data = file_contents.decode("ascii")
df = pd.read_csv(io.StringIO(data), delimiter=',', header='infer')

r.sadd("experiments", filename)
r.set(filename, data)
print(df)
print(df['score'].describe())
# Average, median, STD, MAD
print(filename)


return redirect(url_for('upload', filename=filename))
Expand All @@ -53,18 +57,30 @@ def upload():

@app.route('/compare/<path:experiment_one>/<path:experiment_two>')
def compare():
# Calculate P-Value between query results
# Return sorted array based on score

return 'This is the compare function for two experiments.'


@app.route('/experiment')
def experiment():

return 'This is the view of an experiment'


@app.route('/hello')
def hello():
return 'Hello!'

@app.route('/experiments')
def experiments():
experiment_holder = collections.defaultdict(list)
for element in r.smembers("experiments"):
experiment_holder["experiments"].append(str(element.decode("utf-8")))
return_json = ujson.dumps(experiment_holder)
return experiment_holder


if __name__ == '__main__':

Expand Down
26 changes: 26 additions & 0 deletions src/static/style.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
html { font-family: sans-serif; background: #eee; padding: 1rem; }
body { max-width: 960px; margin: 0 auto; background: white; }
h1 { font-family: serif; color: #377ba8; margin: 1rem 0; }
a { color: #377ba8; }
hr { border: none; border-top: 1px solid lightgray; }
nav { background: lightgray; display: flex; align-items: center; padding: 0 0.5rem; }
nav h1 { flex: auto; margin: 0; }
nav h1 a { text-decoration: none; padding: 0.25rem 0.5rem; }
nav ul { display: flex; list-style: none; margin: 0; padding: 0; }
nav ul li a, nav ul li span, header .action { display: block; padding: 0.5rem; }
.content { padding: 0 1rem 1rem; }
.content > header { border-bottom: 1px solid lightgray; display: flex; align-items: flex-end; }
.content > header h1 { flex: auto; margin: 1rem 0 0.25rem 0; }
.flash { margin: 1em 0; padding: 1em; background: #cae6f6; border: 1px solid #377ba8; }
.post > header { display: flex; align-items: flex-end; font-size: 0.85em; }
.post > header > div:first-of-type { flex: auto; }
.post > header h1 { font-size: 1.5em; margin-bottom: 0; }
.post .about { color: slategray; font-style: italic; }
.post .body { white-space: pre-line; }
.content:last-child { margin-bottom: 0; }
.content form { margin: 1em 0; display: flex; flex-direction: column; }
.content label { font-weight: bold; margin-bottom: 0.5em; }
.content input, .content textarea { margin-bottom: 1em; }
.content textarea { min-height: 12em; resize: vertical; }
input.danger { color: #cc2f2e; }
input[type=submit] { align-self: start; min-width: 10em; }
24 changes: 24 additions & 0 deletions src/templates/base.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
<!doctype html>
<title>{% block title %}{% endblock %} - Flaskr</title>
<link rel="stylesheet" href="{{ url_for('static', filename='style.css') }}">
<nav>
<h1>Flaskr</h1>
<ul>
{% if g.user %}
<li><span>{{ g.user['username'] }}</span>
<li><a href="{{ url_for('auth.logout') }}">Log Out</a>
{% else %}
<li><a href="{{ url_for('auth.register') }}">Register</a>
<li><a href="{{ url_for('auth.login') }}">Log In</a>
{% endif %}
</ul>
</nav>
<section class="content">
<header>
{% block header %}{% endblock %}
</header>
{% for message in get_flashed_messages() %}
<div class="flash">{{ message }}</div>
{% endfor %}
{% block content %}{% endblock %}
</section>
28 changes: 28 additions & 0 deletions src/templates/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
{% extends 'base.html' %}

{% block header %}
<h1>{% block title %}Posts{% endblock %}</h1>
{% if g.user %}
<a class="action" href="{{ url_for('blog.create') }}">New</a>
{% endif %}
{% endblock %}

{% block content %}
{% for post in posts %}
<article class="post">
<header>
<div>
<h1>{{ post['title'] }}</h1>
<div class="about">by {{ post['username'] }} on {{ post['created'].strftime('%Y-%m-%d') }}</div>
</div>
{% if g.user['id'] == post['author_id'] %}
<a class="action" href="{{ url_for('blog.update', id=post['id']) }}">Edit</a>
{% endif %}
</header>
<p class="body">{{ post['body'] }}</p>
</article>
{% if not loop.last %}
<hr>
{% endif %}
{% endfor %}
{% endblock %}

0 comments on commit c93f244

Please sign in to comment.