Skip to content

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

sleinen/zrcal

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
css
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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