The code that powers the hacker union website
Python JavaScript Other
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.

Hacker Union

This is the code that powers It is built on top of petri, an open source project developed at HuffPost Labs. The backend uses the python django framework, and the front end is built using the Zurb Foundation framework.


  • Scss / sass - Install sass, gem install sass
  • pip
  • virtualenv - pip install virtualenv
  • mysql - only used on production, but you need it to install the python-mysql dependency. To install on osx do a brew install mysql To install on Ubuntu apt-get install libmysqlclient-dev
  • sqlite - the database used locally. probably is already installed

Setting up the Database

DJANGO_LOCAL=True ./ syncdb --noinput (no need to create a superuser, one will be created for you. see the Test User section.).

Running Locally

  1. Create a virtualenv in your git directory (don't worry, it will be ignored on checkins) -- virtualenv env
  2. Install all the requirements (ensure env is active by running "env/bin/activate") -- pip install -r var/etc/requirements.txt
  3. [optional] Run the celery tasks: DJANGO_LOCAL=True ./ celeryd -v 2 -B -E -l INFO (this should run in a separate terminal from the server)
  4. Run the server in local mode -- var/bin/runlocal.bash or DJANGO_LOCAL=True python runserver
  5. Visit http://localhost:8000/

Custom CSS Watching

If you want to enable the dynamic chapter specific CSS updating, you need to use compass with bundler. Once that is installed, the following command will watch and keep styles updated:

bundle install # only need to do this once

bundle exec compass watch

Style changes should be made to the file static/sass/_app.scss.

Test Users

We automatically create a test user with superuser abilities.

  • Username: admin
  • password: testuser


All pull requests are welcome, no matter the size. For push access make a few awesome pull requests, or contact one of the maintainers listed below.



Currently, all development occurs via the hackerunion/website fork of the huffpostlabs/petri project. Both of these projects are open source under the GPL.

This is temporary! We're working this way as Petri is currently coupled to the Hacker Union use case.

Once we've isolated the two, we'll properly divide efforts: Hacker Union-specific updates will go here, and system-wide updates will go to Petri.

This seemed to make the most sense as Hacker Union is an instance of Petri (much like any organization's deployment of Petri ought to be -- though we hope to have a non-source configuration mechanism down the road).


This project is licensed under GNU GENERAL PUBLIC LICENSE VERSION 3. See the file for a copy of the license.