public
Description: A simple Google AppEngine application to provide an API endpoint for subway systems that don't have one of their own
Homepage:
Clone URL: git://github.com/straup/gae-fakesubwayapis.git
straup (author)
Sun Oct 25 23:25:28 -0700 2009
commit  080e49dcb1cefee59a86c7273ccf1928cfc391be
tree    59c57d44d5feb828db76c17dacaba69ea792afc3
parent  b2acc37996ef61c3b0d4f2bd90c4c70d38525b8a
name age message
file README Sat Oct 24 15:45:55 -0700 2009 major rewrite to support GTFS style data files;... [straup]
file app.yaml Sat Oct 24 15:45:55 -0700 2009 major rewrite to support GTFS style data files;... [straup]
directory css/ Sat Oct 10 14:50:40 -0700 2009 basic import of MTA stuff [straup]
directory fakesubwayapis/ Sun Oct 25 23:25:28 -0700 2009 actually make fsa_ bit optional when reading ag... [straup]
file index.yaml Sat Sep 12 23:10:45 -0700 2009 initial commit [straup]
file main.py Sun Oct 25 09:02:32 -0700 2009 ttc: use boilerplate [straup]
directory templates/ Sat Oct 24 15:45:49 -0700 2009 major rewrite to support GTFS style data files;... [straup]
README
Honestly, it what it sounds like.

It currently only supports a single method (getinfo) for subway systems (that I
know about) with actual web pages for individual stations.

    * Bay Area Rapid Transit (BART)

    * Massachusetts Bay Transportation Authority (MBTA)

    * New York Metropolitain Transportation Authority (MTA)

    * Société de transport de Montréal (STM)

    * Transport For London (TFL)

    * Toronto Transit Commission (TTC)

    * UK National Rail Service

    * Washington Metropolitain Area Transit Authority (WMATA)

Each service has an auto-generated "docs" page and there is support for fake
station web-pages, though the default is to issue a redirect to the
service-specific pages.

For example:

  http://fakesubwayapis.appspot.com/bart/ <-- docs 

  http://fakesubwayapis.appspot.com/bart/getinfo/16th <-- API

  http://fakesubwayapis.appspot.com/bart/station/16th <-- redirect

  http://fakesubwayapis.appspot.com/mta/station/550 <-- fake web page

# REQUIREMENTS

* A valid GAE account and a recent version of the GAE SDK for Python (>= 1.2.3)
  which can be downloaded from:

  http://code.google.com/appengine/downloads.html

There are two other dependencies which are not included as part of the package
itself. They are: 

* gae-APIApp

  http://github.com/straup/gae-APIApp/

* gae-fakesubwayapis-data

  http://github.com/straup/gae-fakesubwayapis-data/

They will need to be installed as follows:

 me @ localhost in /home/me/www/gae-fakesubwayapis
 101 ->ls -al 
 total 104
 drwxr-xr-x  21 asc   staff   714 Sep  7 18:20 .
 drwxr-xr-x  14 asc   staff   476 Aug 20 07:54 ..
 drwxr-xr-x  12 asc   staff   408 Sep  7 18:21 .git
 -rw-r--r--   1 asc   staff    15 May 20 09:06 .gitignore
 lrwxr-xr-x   1 root  staff    39 Jul  2 23:48 APIApp -> /home/me/python/gae-APIApp/APIApp
 lrwxr-xr-x   1 root  staff    45 Jul  2 23:48 data -> /home/me/python/gae-fakesubwayapis-data/data
 ...

# NERD NOTES

There's a fair amount of boiler-plate code despite current refactoring
efforts. It would be nice to think that the only thing necessary to add a new
service would be a config/description file and have the code magically do the
right thing.

It seems a bit early for that still but, yes, I am thinking about
it. Suggestions are welcome.∂

# SEE ALSO

http://www.aaronland.info/weblog/2009/09/18/fivethings/#fakesubwayapis

http://code.flickr.com/blog/2009/10/19/small-bridges-to-proximate-spaces/