fixcity
fixcity copied to clipboard
This is a Django based application that allows users to request bike racks location from the DOT
FixCity aka BikeRaction aka BuildMeABikeRack
This is the code behind http://fixcity.org/ , 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 Transportation.
It was built by OpenPlans, http://openplans.org.
The canonical source code is at http://github.com/openplans/fixcity
The project wiki is at https://projects.openplans.org/fixcity/wiki and the bug tracker is at https://projects.openplans.org/fixcity/report
There is a #fixcity IRC channel on irc.freenode.net, 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...
License
Released under the terms of the GNU Affero General Public License (GNU AGPL). See COPYING.txt for details.
INSTALLATION
Prerequisites
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
python-dev
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: http://biodivertido.blogspot.com/2009/10/install-postgresql-84-and-postgis-140.html
Add info for other systems here...
Installation
Given all the prerequisites above, just run python setup.py 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 setup.py develop
)
Bootstrapping a Database
This application requires a PostGIS database and some shape data. To get started:
-
Copy the config.ini.in file to config.ini. Edit database settings in config.ini as needed. You MUST change the value of the 'SECRET_KEY' setting.
-
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 ;)
-
Bootstrap the django models::
cd fixcity ./manage.py syncdb ./manage.py migrate
-
(optional) Load the NYC data we use on fixcity.org. This can take a long time, several minutes at least::
./manage.py loaddata bmabr/fixtures/fixcity_org_nyc_data.json.gz ./manage.py loaddata bmabr/fixtures/fixcity_org_nyc_streets_data.json.gz
-
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.
Testing
Just do::
./manage.py 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 manage.py make_bulkorder <boroughname> <community board number>
.
Deployment
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 </Directory>
WSGIScriptAlias / /PATH/TO/fixcity/wsgi/fixcity.wsgi