diff --git a/README.md b/README.md
new file mode 100644
index 0000000..277147a
--- /dev/null
+++ b/README.md
@@ -0,0 +1,6 @@
+Common Fun(d) status viewer
+===========================
+
+This is a python script that transforms the common fund spreadsheet into a webpage, so we can keep track of what is going in and out.
+
+This page is based on the financial spreadsheets of Varia. They are synced to the server with Syncthing and processed with a Python script (located at /var/www/intranet/common-fund). This page is updated every night (using the cron.sh script in the same folder)!
\ No newline at end of file
diff --git a/common-fund-status-viewer.html b/common-fund-status-viewer.html
new file mode 100644
index 0000000..7f2f1a7
--- /dev/null
+++ b/common-fund-status-viewer.html
@@ -0,0 +1,9087 @@
+
+
+
+ This page is based on the financial spreadsheets of Varia. They are synced to the server with Syncthing (located at /srv/train-your-core/finances/) and processed with a Python script (located at /var/www/intranet/common-fund). This page is updated every night (using the cron.sh script in the same folder)!
+
+
+
\ No newline at end of file
diff --git a/cron.sh b/cron.sh
new file mode 100644
index 0000000..8563ad9
--- /dev/null
+++ b/cron.sh
@@ -0,0 +1,18 @@
+YEAR=$(date '+%Y')
+SHEETS=$(echo "/srv/train-your-core/finances/varia-financial-spreadsheets-$YEAR.ods")
+#echo $YEAR
+#echo $SHEETS
+
+# copy the spreadsheets of this year to this folder
+cp $SHEETS .
+
+# turn this CSV file in a nice HTML page using the python script
+python3 make-common-fund-status-viewer.py
+
+
+
+
+
+
+
+
diff --git a/fonts/Chilanka-Regular.ttf b/fonts/Chilanka-Regular.ttf
new file mode 100644
index 0000000..2f119c6
Binary files /dev/null and b/fonts/Chilanka-Regular.ttf differ
diff --git a/img/background.png b/img/background.png
new file mode 100644
index 0000000..0da9018
Binary files /dev/null and b/img/background.png differ
diff --git a/img/background.svg b/img/background.svg
new file mode 100644
index 0000000..434c36a
--- /dev/null
+++ b/img/background.svg
@@ -0,0 +1,1186 @@
+
+
+
+
diff --git a/img/glitter-found-footage.gif b/img/glitter-found-footage.gif
new file mode 100644
index 0000000..46fcb60
Binary files /dev/null and b/img/glitter-found-footage.gif differ
diff --git a/img/img1.png b/img/img1.png
new file mode 100644
index 0000000..d546b0c
Binary files /dev/null and b/img/img1.png differ
diff --git a/make-common-fund-status-viewer.py b/make-common-fund-status-viewer.py
new file mode 100644
index 0000000..2909577
--- /dev/null
+++ b/make-common-fund-status-viewer.py
@@ -0,0 +1,30 @@
+# /usr/bin/python3
+
+import json
+import datetime
+from pprint import pprint
+
+from pyexcel_ods import get_data
+# https://pythonhosted.org/pyexcel-ods/
+
+from jinja2 import Template
+# https://jinja.palletsprojects.com/en/2.11.x/api/#jinja2.Environment
+
+t = open('template.html', 'r').read()
+template = Template(t)
+year = datetime.date.today().year
+filename = 'varia-financial-spreadsheets-{}.ods'.format(year)
+
+ods = get_data(filename)
+string = json.dumps(ods)
+data = json.loads(string)
+commonfund = data['Common Fund']
+Q1 = data['Q1']
+Q2 = data['Q2']
+Q3 = data['Q3']
+Q4 = data['Q4']
+
+page = template.render(data=commonfund, Q1=Q1, Q2=Q2, Q3=Q3, Q4=Q4, year=year)
+out = open('common-fund-status-viewer.html', 'w+')
+out.write(page)
+out.close()
\ No newline at end of file
diff --git a/requirements.txt b/requirements.txt
new file mode 100644
index 0000000..2f5f843
--- /dev/null
+++ b/requirements.txt
@@ -0,0 +1,3 @@
+pyexcel-ods
+jinja2
+datetime
diff --git a/stylesheet.css b/stylesheet.css
new file mode 100644
index 0000000..97c29b2
--- /dev/null
+++ b/stylesheet.css
@@ -0,0 +1,61 @@
+@font-face{
+ font-family: 'commonfun';
+ src: url('fonts/Chilanka-Regular.ttf');
+}
+body{
+ background-image: url('img/background.png');
+ background-size: 100% auto;
+ background-repeat: repeat-y;
+ width: calc(100% - 4em);
+ margin: 2em;
+ font-family: 'commonfun', sans-serif;
+ font-size: 20px;
+ line-height: 1.2;
+}
+table{
+ width: 100%;
+}
+tr{
+ min-height: 1em;
+}
+td{
+ margin: 0;
+ padding: 1em 1em 0.75em;
+ border-radius: 25px;
+ color:white;
+ vertical-align: top;
+}
+td.out{
+ background-color: rgba(158, 52, 255, 0.6);
+}
+td.in{
+ background-color: rgba(255, 137, 0, 0.6);
+}
+td.transparent{
+ background-color: transparent;
+}
+td.black{
+ background-image: url('img/glitter-found-footage.gif');
+ color:black;
+ font-weight: bold;
+}
+td.highlight{
+ background-color: rgba(255,0,255,0.6);
+}
+ul{
+ max-width: 500px;
+}
+h1{
+ margin:1em 0 3em;
+}
+hr{
+ margin:2em 0;
+ border:0;
+ border-bottom: 1px dotted black;
+}
+a,
+a:visited,
+a:hover,
+code{
+ color:magenta;
+}
\ No newline at end of file
diff --git a/template.html b/template.html
new file mode 100644
index 0000000..e166261
--- /dev/null
+++ b/template.html
@@ -0,0 +1,121 @@
+
+
+
+ Varia's Common Fun(d)
+
+
+
+
+
Varia's Common Fun(d) - {{ year }}
+
+
+
+
+
+ {% set check = namespace(color=False, quarter=False) %}
+ {% for row in data %}
+
+ {% set rowloop = loop %}
+
+
+ {% set extracheck = namespace(bold=False) %}
+ {% set supercheck = namespace(items=[]) %}
+
+ {% for cell in row %}
+
+
+
+
+
+
+ {% if rowloop.index > 33 %}
+ {% set check.color = 'highlight' %}
+ {% else %}
+ {% if loop.index < 5 %}
+ {% set check.color = 'out' %}
+ {% elif loop.index < 8 %}
+ {% set check.color = 'in' %}
+ {% else %}
+ {% set check.color = 'black' %}
+ {% endif %}
+ {% endif %}
+
+
+
+ {% if 'QUARTER' in cell|string or 'COMMON' in cell|string or 'TOTAL' in cell|string %}
+
+ {% set extracheck.bold = True %}
+
+ {% if 'QUARTER 1' in cell|string %}
+ {% set check.quarter = Q1 %}
+ {% elif 'QUARTER 2' in cell|string %}
+ {% set check.quarter = Q2 %}
+ {% elif 'QUARTER 3' in cell|string %}
+ {% set check.quarter = Q3 %}
+ {% elif 'QUARTER 4' in cell|string %}
+ {% set check.quarter = Q4 %}
+ {% endif %}
+
+
{{ cell }}
+
+ {% elif 'infrastructure' in cell|string %}
+ {% for row in check.quarter %}
+ {% if 'infrastructure' in row[6] or 'treat' in row[6] %}
+
{{ supercheck.items.append(row[0]) }}
+ {% endif %}
+ {% endfor %}
+
+
+ {{ cell }}
+ {% if supercheck %}
+
+ {% for item in supercheck.items %}
+
{{ item }}
+ {% endfor %}
+
+ {% endif %}
+
+
+ {% elif 'EUR' in cell|string %}
+ {% set cell = cell.replace('EUR', '') %}
+
+ {% if extracheck.bold %}
+ {% if loop.index > 8 %}
+ {% if rowloop.index > 30 %}
+ {% set check.color = 'highlight' %}
+ {% endif %}
+ {% endif %}
+
+ This page is based on the financial spreadsheets of Varia. They are synced to the server with Syncthing (located at /srv/train-your-core/finances/) and processed with a Python script (located at /var/www/intranet/common-fund). This page is updated every night (using the cron.sh script in the same folder)!
+