forum-informationsfreiheit / offenewahlen_api Goto Github PK
View Code? Open in Web Editor NEWAPI of austrian election results .
Home Page: https://offenewahlen.at
License: MIT License
API of austrian election results .
Home Page: https://offenewahlen.at
License: MIT License
es braucht für die kontrolle der eingangsdaten vom bmi vermutlich eine datei mit der gemeindekennzahl, dem namen der gemeinde und vielleicht anderen daten, um einen Join machen zu können.
community (twitter, facebook, slack, Newsletter, ML) einladen, mitzumachen.
Auf der Production Instanz soll vor dem Launch eine nett gestaltete "Bitte warten" Seite auffindbar sein. Überlegen einer lustigen oder netten oder sonst was guten Seite, um auf den Launch hinzuweisen. Vielleicht fällt einem ja was gutes mit Wahlbezug ein.
Ob Fehler sind. Ergebnisse der einzelnen Checks in Datenbank abspeichern -> eigene Class dafür erstellen und mit Rawdata verknüpfen.
mobile friendly, responsive
damit es keine probleme mit package versionen gibt, wird bei allen python virtual environments verwendet.
entweder eine config.json erstellen oder via heroku config vars.
Installations-Anweisungen für die App in README.md rein geben, so dass Devs die App einfach runterladen, installieren und mitentwickeln können.
Inhalt
Bei API und API Specification nachsehen.
Zentrale Fragen:
Zuerst mit dem von uns erstellten Testdatensatz aufsetzen. Danach die Daten des BMI verwenden.
einen prozess überlegen, wie man gemeinsam sicherstellen kann, dass die datenbasis, also das topojson file von flooh, auf aktuellem und korrekten stand bleibt. https://github.com/ginseng666
Sollen wir vor der Wahl eine Hack-Session in Wien organisieren?
metalab, 2-4 Wochen vor der Wahl. Um gemeinsam den Code und die Finalisierung anzugehen.
konsistente und gut kommunizierte Story
https://de.wikipedia.org/wiki/Liste_der_politischen_Parteien_in_%C3%96sterreich
http://www.bmi.gv.at/cms/bmi_service/parteienverz/start.aspx
Achtung: Die Nr ist keine fixe Nr. Die ist einfach eine Aufzählung der alphabetisch sortiereten Parteien
Die Ergebnisse der NRW13 importieren (JSON).
Brainstormen, welche Ereignisse am Wahlabend passieren können. Dies ist nützlicher Input, um dies vielleicht in die Visualisierungen einfliessen zu lassen.
Ideen
Konvertierung der Daten aus der XML Datei in die vorgebebene Datenstruktur der postgreSQL-Datenbank
Das Projekt braucht unbedingt eine Person, die sich mit Design-Aspekten sehr gut auskennt (Micro-Funding möglich). Ideen sammeln und dann anschreiben, ob Interesse zum mitwirken. Dann wegen Micro-Funding überlegen.
Setup der Datenbank mit den Basis-Daten mittels für Admin zugängigen Funktions-Aufruf `setupdatabase, um einfach den Ausgangs-Zustand herstellen zu können.
Basis-Daten
Die statischen Files werden bei heroku staging nicht gefunden. Hier die Log Einträge dazu.
2017-07-21T00:29:20.076013+00:00 app[web.1]: Not Found: /static/css/app.css
2017-07-21T00:29:20.080597+00:00 app[web.1]: Not Found: /static/js/app.js
2017-07-21T00:29:20.196575+00:00 app[web.1]: Not Found: /static/img/offene-wahlen.svg
2017-07-21T00:29:20.235074+00:00 app[web.1]: Not Found: /static/css/app.css
2017-07-21T00:29:20.255570+00:00 app[web.1]: Not Found: /static/js/app.js
Resourcen
um die ergebnisse visuell darstellen zu können, wird eine räumliche geometrie benötigt (geojson, shape). Diese muss die Gemeindekennzahl als Attribut beinhalten und bereits in der benötigten Projektion vorliegen.
Die Geometrien auf Gemeindeebene ausliefern. Wird mittels TopoJSON gemacht.
spätestens wenn alle parteien feststehen - eine einheitliche farbpalette definieren (die idealerweise auch noch hübsch ist)
Durchführen von Checks zu den Rohdaten mit den postgresql Eintragungen. Ergebnisse der einzelnen Checks in Datenbank abspeichern -> eigene Class dafür erstellen und mit Rawdata verknüpfen.
Entwerfen von TestDatasets (JSON). Mehrere Eintragungen, die immer mehr werden.
Checks
die daten die der client zum darstellen der visualisierung benötigt so weit wie möglich reduzieren bzw. zeitlich verteilen. Smartphones mit 3G Anschluss beachten.
option 1: erste visualisierung bei responsive benötigt nur kleine datenmenge. während diese betrachtet wird, kann restlicher datensatz nachgeladen werden.
option 2: lade screen solange bis daten komplett sind
option 3: auflösung (zeitliche oder räumliche) bei kleinen screens reduzieren. zB bezirks oder landesergebnisse anstatt gemeinde-ebene.
es braucht für den launch eine sitemap.xml, damit google etc sauber indezieren können.
Der Edge-Browser kommt nicht zurecht (ich vermute mit dem grid, obwohl er es eigentlich unterstützen sollte)
Im IE sieht es ganz ähnlich aus.
EDIT sagt:
https://stackoverflow.com/questions/44329182/css-grid-layout-content-collapsing-on-microsoft-edge
Sieht so aus, als ob IE nur einen alten Standard der CSS-Grid-Implementation unterstützt. In der Antwort auf Stackoverflow steht ein Link zu mehr Details.
damit das backend und frontend innerhalb der app unterschiedlich skalierbar sind (die situation dass 5x der preprocessor versucht die API abzurufen und in die db zu schreiben sollten wir vermeiden), müssen die zwei sachen als unterschiedliche prozesse startbar sein. bitte das hier durchlesen und sowas machen wie
web gunicorn django-vis-app --commands
worker gunicorn django-preprocessor-app --commands
Darstellen der wichtigsten Visualisierungen:
Kein Content, Styling oder Designfokus. Fokus auf Narrativ, Datennutzung, Layout und Gesamtbild.
staging und production mappen auf offenewahlen.at.
staging darf nicht nach aussen dringen, damit vorab veröffentlichung verhindert wird.
Datenbank Modell für die Wahldaten
die basisdaten werden über die zeit immer mehr anwachsen und es wird immer mehr aufwand werden, qualitätsicherung dazu zu betreiben bzw. sie zu erweitern. hier bietet sich ein crowd-sourcing approach an. wie genau, muss noch überlegt werden.
Readme updaten. Installations-Anweisungen für die App in README.md rein geben, so dass Devs die App einfach runterladen, installieren und mitentwickeln können.
Inhalt
Danach auch überlegen, welche Teile auch sonst wo in der Doku gut angebracht wären.
parties.json
und elections.json
sind kein korrektes JSON. die äußersten {...}
sind zuviel.
Erstellen und speichern von agreggierten Metriken zum einfachen ausliefern an den Client.
Inhalt
Importieren des alten BMI Datenformats. Lokal wie auch via Web.
Erstellen und verwalten einer Liste mit den benötigten Wahlen für die NRW17.
Wahlen
Inhalt
entweder CONTRIBUTE.md oder Contribute Absatz zum Repo hinzufügen.
Wie sollte der Tag am Wahltag ablaufen, ins besondere der Launch Prozess.
Ein XML File als Testdatensatz anlegen und auf irgendeinen Server legen, damit man die Download Funktion aufsetzen kann.
dashboard piwik integration
Basis-Visualisierungen
Ergebnis-Daten in Datenbank importieren:
Quellen
Quellen für die Erstellung von Datenquellen in der Dokumentation und im Repo angeben.
Quellen
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.