A Web application that can mine Open Government Data published by the City of Zurich on data.stadt-zuerich.ch, in particular the schedules for the collection of various types of waste. Users can then generate personalized calendars depending on where they live. These calendars are in standard iCalendar format, and can be imported in common calendar tools.
This application can be deployed on Google App Engine. See below for instructions.
Copyright (c) Simon Leinen, 2012 - 2020
This program is released as free software under the GNU Affero General Public License. See file `COPYING' for the licensing conditions.
These notes are mainly for reminding myself how to develop zrcal. I only look at the code about once a year, when new calendars are published, and it always takes me some time to get started again.
gcloud components install app-engine-python app-engine-python-extras cloud-datastore-emulator
gcloud components update
python3 -m venv venv_py3
source venv_py3/bin/activate
pip install -U -r requirements.txt
gcloud beta emulators datastore start
eval $(gcloud beta emulators datastore env-init)
You can omit these steps and set the GOOGLE_APPLICATION_CREDENTIALS
environment variable instead (see
instructions)
to let the development application access the live datastore. This is
a bit dangerous in that operations that modify the datastore
(e.g. /load-calendar
) will affect the live application.
FLASK_APP=main FLASK_DEBUG=1 flask run
Now you can see the Web UI under http://localhost:5000.
Surf to http://localhost:5000/load-calendar
Ideally, this will take a long time, and eventually show a summary of the data that has been loaded. Or you get an error message, in which case you need to fix/update the code. Maybe it's because the nice folks at Zurich Open Government Data have changed the URL format again.
In particular, load a random recycling calendar,
e.g. http://localhost:5000/8006
. If the result looks correct, and
includes the recently loaded dates, it is likely that the application
mostly works.
gcloud app deploy
Confirm that you would like to upload the latest source code as the "default" application. The upload process takes a while, but then the new code should become active pretty much instantly.
You should be able to (re)load the latest data by probing http://zrcal.leinen.ch/load-calendar.