Repository updated
TransparenZRH 🏆
Smart City Zürich. Digitale Transparenz im öffentlichen Raum.
Winner of the DINAcon 2021 Open Government Award.
{ hacknight challenges }
(a quick challenge for someone to take their first steps as a user...)
(something that one could do once familiar with the project...)
(a challenge for the coders and pro users in the room...)
Pilot Digitale Transparenz im öffentlichen Raum
Daten spielen eine wichtige Rolle in der «Smart City Zürich». Dank ihnen kann beispielsweise die städtische Infrastruktur gezielt und effizient geplant und unterhalten werden. Mittels Sensoren, welche Fahrradfrequenzen, Luftqualität und anderes messen, werden Daten im öffentlichen Raum erhoben.
Mit zunehmender Datensammlung steigt die Bedeutung von Transparenz und Rechenschaftspflicht gegenüber der Öffentlichkeit. Die Stadt Zürich ist diesbezüglich bereits heute aktiv, indem sie viele Daten als «Open Data» veröffentlicht. In diesem Pilotprojekt von Smart City Zürich soll getestet werden, wie zusätzliche Transparenz geschaffen werden kann.
Eine einfache Bildsprache informiert hierbei transparent über die Sammlung von Daten im öffentlichen Raum und deren Verwendung. Sensoren werden mit Piktogrammen und QR-Codes beschriftet. Letztere leiten auf Websites weiter, welche die gesammelten Daten visualisieren und weitere Informationen bieten. Dazu werden ausschliesslich Daten von bereits vorhandenen Sensoren und offenen, frei zugänglichen Behördendaten («Open Data») verwendet.
- Projektseite
- Beispielsensor Luftqualität Schimmelstrasse (
/view/air/Zch_Schimmelstrasse
) - API-Proxy Luftqualität Schimmelstrasse (
/api/v1/air/Zch_Schimmelstrasse
)
- Beispielsensor Luftqualität Schimmelstrasse (
- Python Notebook
- D3 Notebook
Vorschau
Developer
Architecture Proof of Concept
- Frontend
- SSR via Nuxt.js
- TailwindCSS
- Backend (see
/api
)- Flask based "serverless" function
- Querying CKAN DataStore API
For testing and deployment add the following environment variables:
API_URL
Main app run and deploy
# clone repository
git clone git@github.com:cividi/TransparenZRH.git
# install dependencies
npm install
# serve frontend and backend with hot reload at localhost:3000
export API_URL=http://localhost:3000/api/v2/
vercel dev # frontent only: npm run dev
# build for production and launch server
npm run build
npm run start
# generate static project
npm run generate
For detailed explanation on how things work, check out Nuxt.js docs.
Aggregated values cache
Some values are pre aggregated and cached in a S3 bucket as publicly readable files. To populate the cache (for production and testing handled via a GitHub Action run 5 min past every hour):
# Virtual environment and dependencies
python3 -m venv venv
. venv/bin/activate
pip install src/requirements.txt
# Set S3 environment variables
export AWS_ACCESS_KEY_ID=<YOUR_S3_ACCESS_ID>
export AWS_SECRET_ACCESS_LEY=<YOUR_S3_SECRET_ACCESS_LEY>
export S3_ENDPOINT_URL=<YOUR_S3_ENDPOINT>
# Run cache updater
python src/aggregators.py
LICENSE
TransparenZRH Copyright (C) 2021 cividi GmbH
This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. See LICENSE
Event finish
Start
Challenge shared
Tap here to review.