A website about DC's Advisory Neighborhood Commission system.
If you plan to contribute to the repo, you should set up your own fork and open pull requests with any commits you make. Please note that all contributions are made under a CC0 license.
If you're not familiar with forking, Github has a useful guide.
Installation using Vagrant
git clone --recursive https://github.com/codefordc/ancfinder cd ./ancfinder git submodule init git submodule update
Then get the Vagrant box provisioned (you should still be in the 'ancfinder' directory):
Once the provisioning is done, the new Vagrant box with the ANC Finder app and its dependencies will be ready to go.
Running the Site
Login to the newly-established machine:
and then type this at the shell prompt:
Wait a few seconds for things to start up, then point your browser to http://localhost:8000 -- if you see the ANC Finder, you're all set. From here you can start modifying the code you checked out to the 'ancfinder' directory, and these changes will be reflected in the locally-running instance of the site as you go.
Installation with Cloud9
You can easily set up the development environment with Cloud9. After forking the ancfinder repo, sign up for a free Cloud9 account using your Github credentials.
Your fork of ancfinder should appear on the left side of your Cloud9 dashboard under 'Projects on Github.' Select it and click 'Clone to Edit.' Choose the pre-configured Python/Django environment. The ancfinder fork will now be listed under 'My Projects.' Once cloned, click 'Start Editing.'
To continue using git, run the following in your workspace terminal:
git remote add ancfinder 'firstname.lastname@example.org:[github username]/ancfinder'
Then, to install the dependencies, run:
Run the site by clicking 'Run Project' in the Cloud9 IDE menubar and navigate to http://ancfinder-c9-[username].c9.io to see it.
Installation without Vagrant
To set up without Vagrant or Cloud9, see provision.sh for the steps needed to install dependencies.
Updating the Code
As we make code changes you may need to run:
git pull --rebase git submodule update --init ./manage.py syncdb
If we modify the database schema, you may need to delete ancfindersite/database.sqlite and run
./manage.py syncdb to recreate your database from scratch since we don't currently have a way to upgrade database schemas.
Updating Static Data
The ANC/SMD metadata is stored statically in
static/ancs.json. To update this file
from our Google Doc, our scrapers, and other external data sources, run:
You will need to provide your Google email & password and a Census API key, which you can get at http://www.census.gov/developers/tos/key_request.html. For convenience, you can also store these credentials in a file named "update_anc_database_creds.py" in this (root) directory and put in it:
google_email="email@example.com" google_password="your google password" census_api_key="your Census API key"
You can also selectively update just some of the data (because updating some takes a long time) using command line arguments:
python3 scripts/update_anc_database.py [--base] [--terms] [--gis] [--neighborhoods] [--census] [--census-analysis]
And to fetch the latest ANC meetings calendar (note that it currently requires Python 2):
There are also several scripts to grab data for use in
update_anc_database.py. They are:
scripts/update_abra.py # Liquor licenses scripts/update_building_permits.py # Building permits scripts/update_terms.py # Terms served by commissioners scripts/update_311.py # 311 requests scripts/update_crimes.py # Doesn't really do anything right now
All of the scripts should be run occasionally to make sure the data shown on the site is up-to-date.
When deploying the code to the live server, remember to update the static files: