Skip to content
/ zrcal Public

This Web application mines Open Government Data published by the city of Zurich, in particular the schedules for the collection of various types of garbage. Users can generate personalized calendars depending on their place of residence.

License

Notifications You must be signed in to change notification settings

sleinen/zrcal

Folders and files

NameName
Last commit message
Last commit date
Jul 9, 2012
Dec 17, 2023
Dec 17, 2023
Dec 27, 2021
Jan 1, 2021
Jan 1, 2021
May 5, 2023
Jul 8, 2012
Dec 27, 2021
May 5, 2023
Nov 18, 2022
Jan 1, 2021
Dec 22, 2014
Dec 17, 2023
Jul 15, 2024
Jul 9, 2012

Repository files navigation

zrcal - Zurich Recycling Calendar

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.

INSTALLATION

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.

Development Hints

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.

Update Development Tools

gcloud components install app-engine-python app-engine-python-extras cloud-datastore-emulator
gcloud components update

Create venv (Python 3.x)

python3 -m venv venv_py3
source venv_py3/bin/activate
pip install -U -r requirements.txt

Start Local Datastore Emulator

gcloud beta emulators datastore start
eval $(gcloud beta emulators datastore env-init)

Alternatively: Authenticate to Datastore Service

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.

Start Development Server

FLASK_APP=main FLASK_DEBUG=1 flask run

Now you can see the Web UI under http://localhost:5000.

Load Some Data

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.

Play Around a Bit

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.

Deploy

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.

About

This Web application mines Open Government Data published by the city of Zurich, in particular the schedules for the collection of various types of garbage. Users can generate personalized calendars depending on their place of residence.

Resources

License

Stars

Watchers

Forks

Packages

No packages published