This is a Django based application that allows users to request bike racks location from the DOT
Clone or download
Pull request Compare This branch is 26 commits ahead, 1 commit behind slinkp:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


FixCity aka BikeRaction aka BuildMeABikeRack

This is the code behind , a site that aims to help
get bike racks built in New York City, by allowing ordinary people to
combine efforts and get bulk orders submitted to the NYC Department of

It was built by OpenPlans,

The canonical source code is at

The project wiki is at
and the bug tracker is at

There is a #fixcity IRC channel on, although it's
not very active (as of December 2010).

What's In a Name?

This project has been through several names already. Sorry :)

If you see "bmabr" in code, it's just an acronym for "Build Me A Bike
Rack", one of the older names. Don't worry about it...


Released under the terms of the GNU Affero General Public License (GNU
AGPL). See COPYING.txt for details.



Things you will need.

On Ubuntu 9.04 - 9.10::

 sudo apt-get install \
  build-essential \
  libgeos-dev \
  libjpeg-dev \
  libpq-dev \
  libxml2-dev \
  libxslt1-dev \
  postgis \
  postgresql-8.3 \
  postgresql-server-dev-8.3 \
  proj \
  python \

postgresql-8.4 also should work.

I had some trouble on Ubuntu 9.10; I was able to proceed by installing
postgis from source according to the instructions here:

Add info for other systems here...


Given all the prerequisites above, just run ``python develop``,
preferably in a virtualenv to avoid installing stuff into your global
python site-packages.

(There is also a pip requirements file if you want to use pip to get a
known-working set of package versions.  Do ``pip install -r
pip-requirements.txt && python develop``)

Bootstrapping a Database

This application requires a PostGIS database and some shape data. To
get started:

1) Copy the file to config.ini.  Edit database settings
   in config.ini as needed.  You MUST change the value of the
   'SECRET_KEY' setting.

2) Create your database::

    createdb -T template_postgis bmabr

   ... the last parameter should be the name of your database.  If you
   don't have a template_postgis database, Google will tell you how to
   create one ;)

3) Bootstrap the django models::

    cd fixcity
    ./ syncdb
    ./ migrate

4) (optional) Load the NYC data we use on This can take a
   long time, several minutes at least::

   ./ loaddata bmabr/fixtures/fixcity_org_nyc_data.json.gz
   ./ loaddata bmabr/fixtures/fixcity_org_nyc_streets_data.json.gz

5) Visit the /admin/sites/site UI to change the domain name and
   display name of the website. These are used eg. in account
   confirmation email sent to users who register.


Just do::

  ./ test bmabr

Exporting Bulk Orders

This feature is still in flux; as of 2010-12-15, there is a web UI
that isn't linked to from anywhere, and a command-line command you can
probably use more reliably/conveniently.  Just do ``
make_bulkorder <boroughname> <community board number>``.


If you want to deploy under mod_wsgi, there's an appropriate handler
script in fixcity/wsgi/.  Point your apache config at it, something
like this::

 <VirtualHost ...>
 ServerName ...
 <Directory /PATH/TO/fixcity/wsgi/>
    Order allow,deny
    Allow from all
 WSGIScriptAlias / /PATH/TO/fixcity/wsgi/fixcity.wsgi