Merge pull request #29 from asimonson1125/projects-overhaul
Projects overhaul
46
src/app.py
@@ -71,29 +71,29 @@ def hotspotsRIT():
|
|||||||
def hotspotsProxy(path):
|
def hotspotsProxy(path):
|
||||||
return requests.get(f"{HotspotsURL}/{path}").content
|
return requests.get(f"{HotspotsURL}/{path}").content
|
||||||
|
|
||||||
@app.errorhandler(Exception)
|
# @app.errorhandler(Exception)
|
||||||
def page404(e):
|
# def page404(e):
|
||||||
eCode = e.code
|
# eCode = e.code
|
||||||
message = e.description
|
# message = e.description
|
||||||
try:
|
# try:
|
||||||
message = e.length
|
# message = e.length
|
||||||
finally:
|
# finally:
|
||||||
pagevars = {
|
# pagevars = {
|
||||||
"template": "error.html",
|
# "template": "error.html",
|
||||||
"title": f"{eCode} - Simonson",
|
# "title": f"{eCode} - Simonson",
|
||||||
"description": "Error on Andrew Simonson's Digital Portfolio",
|
# "description": "Error on Andrew Simonson's Digital Portfolio",
|
||||||
"canonical": "404",
|
# "canonical": "404",
|
||||||
}
|
# }
|
||||||
return (
|
# return (
|
||||||
flask.render_template(
|
# flask.render_template(
|
||||||
"header.html",
|
# "header.html",
|
||||||
var=pagevars,
|
# var=pagevars,
|
||||||
error=eCode,
|
# error=eCode,
|
||||||
message=message,
|
# message=message,
|
||||||
title=f"{eCode} - Simonson Portfolio",
|
# title=f"{eCode} - Simonson Portfolio",
|
||||||
),
|
# ),
|
||||||
eCode,
|
# eCode,
|
||||||
)
|
# )
|
||||||
|
|
||||||
|
|
||||||
@app.route("/sitemap.xml")
|
@app.route("/sitemap.xml")
|
||||||
|
|||||||
@@ -259,7 +259,6 @@ a {
|
|||||||
|
|
||||||
.foregroundContent p {
|
.foregroundContent p {
|
||||||
line-height: 1.5em;
|
line-height: 1.5em;
|
||||||
max-width: min(90%, 40rem);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.homeground {
|
.homeground {
|
||||||
@@ -311,10 +310,6 @@ a {
|
|||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
#nametag *:not(h1) {
|
|
||||||
text-shadow: .1em .1em rgba(255, 255, 255, 0.2);
|
|
||||||
}
|
|
||||||
|
|
||||||
#nametag h2{
|
#nametag h2{
|
||||||
font-size: medium;
|
font-size: medium;
|
||||||
}
|
}
|
||||||
@@ -397,7 +392,6 @@ a {
|
|||||||
background-size: contain;
|
background-size: contain;
|
||||||
background-repeat: no-repeat;
|
background-repeat: no-repeat;
|
||||||
background-position-y: center;
|
background-position-y: center;
|
||||||
opacity: 0.4;
|
|
||||||
height: 100%;
|
height: 100%;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
@@ -510,23 +504,13 @@ a {
|
|||||||
padding: 0px;
|
padding: 0px;
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
justify-content: center;
|
|
||||||
margin-left: auto;
|
margin-left: auto;
|
||||||
margin-right: auto;
|
margin-right: auto;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
text-align: center;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.project {
|
.project {
|
||||||
display: inline-block;
|
border-top: .3rem rgba(156, 49, 45, .8) solid;
|
||||||
text-align: left;
|
|
||||||
margin: 1rem;
|
|
||||||
width: 20rem;
|
|
||||||
height: 22rem;
|
|
||||||
border: .3rem rgba(156, 49, 45, .8) solid;
|
|
||||||
background-color: rgba(22, 22, 22, .8);
|
|
||||||
transition: .3s;
|
|
||||||
overflow: hidden;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.projTitle>* {
|
.projTitle>* {
|
||||||
@@ -536,9 +520,18 @@ a {
|
|||||||
.projBody {
|
.projBody {
|
||||||
position: relative;
|
position: relative;
|
||||||
z-index: 3;
|
z-index: 3;
|
||||||
|
display: flex;
|
||||||
}
|
}
|
||||||
|
|
||||||
.project .topBox, .project .bottomBox, .project .projTitle {
|
.grow {
|
||||||
|
flex-grow: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.projImage{
|
||||||
|
width: min(100%, 35em);
|
||||||
|
}
|
||||||
|
|
||||||
|
.project .projTitle {
|
||||||
padding: 0 1rem;
|
padding: 0 1rem;
|
||||||
z-index: inherit;
|
z-index: inherit;
|
||||||
}
|
}
|
||||||
@@ -558,7 +551,7 @@ a {
|
|||||||
border-bottom: black solid .2rem;
|
border-bottom: black solid .2rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.project img {
|
.projectLink {
|
||||||
margin-top: auto;
|
margin-top: auto;
|
||||||
height: 3rem;
|
height: 3rem;
|
||||||
}
|
}
|
||||||
@@ -687,6 +680,7 @@ a {
|
|||||||
background-color: rgb(24, 24, 24, .85);
|
background-color: rgb(24, 24, 24, .85);
|
||||||
padding: 0 8em;
|
padding: 0 8em;
|
||||||
padding-top: 1em;
|
padding-top: 1em;
|
||||||
|
border-top: solid 4px rgba(139,36,36,0.5);
|
||||||
}
|
}
|
||||||
|
|
||||||
#homeProjects {
|
#homeProjects {
|
||||||
|
|||||||
@@ -13,6 +13,28 @@
|
|||||||
]
|
]
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
"Antietam-Conococheague Watershed Monitoring": {
|
||||||
|
"status": "complete",
|
||||||
|
"classes": "geospacial",
|
||||||
|
"bgi": "watershedTemps.png",
|
||||||
|
"content": "Geospacial analysis of Maryland's Antietam and Conococheague sub-watersheds, monitoring water quality and temperatures through the summer months for reporting to governmental review boards for environmental protection"
|
||||||
|
},
|
||||||
|
"Calorimetry Analysis Engineering": {
|
||||||
|
"status": "complete",
|
||||||
|
"classes": "pinned programming",
|
||||||
|
"bgi": "calorimeterAnalysis.png",
|
||||||
|
"content": "An analytical toolkit designed for reactive chemistry analysis, especially calorimetry. Works include automatic analysis, alerting unusual and dangerous results derived from a wide range of testing envrionments and equipment",
|
||||||
|
"links": []
|
||||||
|
},
|
||||||
|
"Geography of Alternative Energy": {
|
||||||
|
"status": "complete",
|
||||||
|
"classes":"pinned geospacial",
|
||||||
|
"bgi": "energyGeography.png",
|
||||||
|
"content": "An ArcGIS geospacial analysis comparing the difference in effectiveness of wind, solar, and geothermal energy across the continental 48 United States.",
|
||||||
|
"links": [
|
||||||
|
["globe", "https://ritarcgis.maps.arcgis.com/apps/dashboards/17d5bda01edc4a2eb6205a4922d889c9", "Dashboard"]
|
||||||
|
]
|
||||||
|
},
|
||||||
"OccupyRIT": {
|
"OccupyRIT": {
|
||||||
"status": "WIP",
|
"status": "WIP",
|
||||||
"classes": "pinned programming",
|
"classes": "pinned programming",
|
||||||
@@ -22,16 +44,6 @@
|
|||||||
["github", "https://github.com/asimonson1125/Occupy-RIT", "git repo"]
|
["github", "https://github.com/asimonson1125/Occupy-RIT", "git repo"]
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"Digital Portfolio": {
|
|
||||||
"status": "WIP",
|
|
||||||
"classes": "pinned programming",
|
|
||||||
"bgi": "website.png",
|
|
||||||
"content": "My personal portfolio website (you're on it now!)",
|
|
||||||
"links": [
|
|
||||||
["github", "https://github.com/asimonson1125/asimonson1125.github.io", "git repo"],
|
|
||||||
["globe", "https://asimonson.com", "site link"]
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"Slate": {
|
"Slate": {
|
||||||
"status": "complete",
|
"status": "complete",
|
||||||
"classes": "pinned programming",
|
"classes": "pinned programming",
|
||||||
@@ -42,7 +54,7 @@
|
|||||||
["globe", "https://slate.csh.rit.edu", "site link"]
|
["globe", "https://slate.csh.rit.edu", "site link"]
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"NationsGame Rolls Sim": {
|
"Monte Carlo Engine for NationsGame": {
|
||||||
"status": "complete",
|
"status": "complete",
|
||||||
"classes": "programming",
|
"classes": "programming",
|
||||||
"bgi": "ceoOfYugo.png",
|
"bgi": "ceoOfYugo.png",
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 148 KiB |
BIN
src/static/photos/projects/calorimeterAnalysis.png
Normal file
|
After Width: | Height: | Size: 36 KiB |
|
Before Width: | Height: | Size: 98 KiB After Width: | Height: | Size: 98 KiB |
BIN
src/static/photos/projects/energyGeography.png
Normal file
|
After Width: | Height: | Size: 1.3 MiB |
|
Before Width: | Height: | Size: 350 KiB After Width: | Height: | Size: 350 KiB |
|
Before Width: | Height: | Size: 122 KiB After Width: | Height: | Size: 122 KiB |
|
Before Width: | Height: | Size: 546 B After Width: | Height: | Size: 546 B |
|
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 17 KiB |
BIN
src/static/photos/projects/watershedTemps.png
Normal file
|
After Width: | Height: | Size: 779 KiB |
|
Before Width: | Height: | Size: 28 KiB |
|
Before Width: | Height: | Size: 453 KiB |
@@ -1,32 +1,42 @@
|
|||||||
{% macro project(title, classes, status, bgi, content, links) %}
|
{% macro project(title, classes, status, bgi, content, links) %}
|
||||||
<div class="project {{ classes }}" data-aos="fade-up">
|
<div class="project {{ classes }}" data-aos="fade-up">
|
||||||
<div class="vFlex">
|
<div class="projTitle">
|
||||||
<div class="projTitle">
|
<h3>{{ title }}</h3>
|
||||||
<h3>{{ title }}</h3>
|
<p class=""><span class="{{ status }}">⬤</span> {{ status }}</p>
|
||||||
<p class="{{ status }} tab">⬤</p>
|
</div>
|
||||||
|
<div class="projBody mobileV">
|
||||||
|
{% if bgi|length > 0 %} {% set path = url_for('static',
|
||||||
|
filename='photos/projects/' + bgi) %}
|
||||||
|
<div class="projImage">
|
||||||
|
<img
|
||||||
|
class="projImage"
|
||||||
|
src="{{ path }}"
|
||||||
|
alt="Ref image for {{ title }} project"
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div class="projBody vFlex spaceBetween">
|
{% endif %}
|
||||||
{% if bgi|length > 0 %}
|
|
||||||
{% set path = url_for('static', filename='photos/' + bgi) %}
|
<div class="grow">
|
||||||
<div style="background-image: url('{{path}}');" class="bgi"></div>
|
<p class="backedBody">{{ content }}</p>
|
||||||
|
</div>
|
||||||
|
<div class="projLinks">
|
||||||
|
{% for i in links %} {% set src = 'icons/' + i[0] + '.svg' %}
|
||||||
|
<a href="{{i[1]}}">
|
||||||
|
<img
|
||||||
|
class="projectLink"
|
||||||
|
src="{{ url_for('static', filename=src) }}"
|
||||||
|
alt="{{i[0]}}"
|
||||||
|
/>
|
||||||
|
</a>
|
||||||
|
{% endfor %} {% if links|length == 0 %}
|
||||||
|
<div class="placeholder">
|
||||||
|
<img
|
||||||
|
alt="no links!"
|
||||||
|
src="{{ url_for('static', filename='photos/placeholder.png') }}"
|
||||||
|
class="projectLink"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<div class="topBox">
|
|
||||||
<p class="backedBody">{{ content }}</p>
|
|
||||||
</div>
|
|
||||||
<div class="bottomBox">
|
|
||||||
{% for i in links %} {% set src = 'icons/' + i[0] + '.svg' %}
|
|
||||||
<a href="{{i[1]}}">
|
|
||||||
<img src="{{ url_for('static', filename=src) }}" alt="{{i[0]}}" />
|
|
||||||
</a>
|
|
||||||
{% endfor %} {% if links|length == 0 %}
|
|
||||||
<div class="placeholder">
|
|
||||||
<img
|
|
||||||
alt="no links!"
|
|
||||||
src="{{ url_for('static', filename='photos/placeholder.png') }}"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
{% endif %}
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -3,15 +3,7 @@
|
|||||||
<div class="foregroundContent">
|
<div class="foregroundContent">
|
||||||
<div data-aos="fade-up">
|
<div data-aos="fade-up">
|
||||||
<h2 class="concentratedHead">Projects</h2>
|
<h2 class="concentratedHead">Projects</h2>
|
||||||
<p>
|
<h2>This page is currently undergoing a reconstruction. It's messy, but I needed to push some changes before I was ready for some very good and secret reasons.</h2>
|
||||||
Project status is indicated by the color of the project card:
|
|
||||||
<br />
|
|
||||||
<span class="complete">⬤</span> - Complete
|
|
||||||
<br />
|
|
||||||
<span class="WIP">⬤</span> - Work In Progress
|
|
||||||
<br />
|
|
||||||
<span class="incomplete">⬤</span> - Incomplete
|
|
||||||
</p>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- >
|
<!-- >
|
||||||
@@ -39,7 +31,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</!-->
|
</!-->
|
||||||
<div class="projectList checkbox-client">
|
<div class="projectList vContainer">
|
||||||
{% from 'partials/project.html' import project %}
|
{% from 'partials/project.html' import project %}
|
||||||
{% for i in var["projects"] %}
|
{% for i in var["projects"] %}
|
||||||
{{ project(i, var["projects"][i]["classes"], var["projects"][i]["status"], var["projects"][i]["bgi"], var["projects"][i]["content"], var["projects"][i]["links"]) }}
|
{{ project(i, var["projects"][i]["classes"], var["projects"][i]["status"], var["projects"][i]["bgi"], var["projects"][i]["content"], var["projects"][i]["links"]) }}
|
||||||
|
|||||||