For the National Day of Civic Hacking 2013
Ruby JavaScript CoffeeScript
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


For the National Day of Civic Hacking 2013.

Build Status

What Is It?

It's an open source webapp to help the Iowa City Animal Center increase their adoption rate. (Cats in particular don't get adopted as often as dogs, for example.)

It will be a simple app that allows images of animals up for adoption to be easy to caption, kind of like on the Cheezburger sites. The idea is that people can make funny captions for adoptable cats and dogs, share them on Twitter/Facebook, and hopefully get a lot more people considering adopting these animals.

Visit the app!

From a technical standpoint, it's a Ruby/Rails app using Bootstrap and some JavaScript, among other technologies. It's hosted on Heroku because they're great at making web apps easy to deploy. They were also kind enough to donate money for hosting (in addition to their free level of hosting), and other sponsorship of the National Day of Civic Hacking in Iowa City.


We're happy to hear you'd like to help out! There are issues organized by milestone and labelled with difficulty (most are "easy") and technologies you need to know (such as "html", "js", or "ruby"). There's a mockup in the wiki.

A quick crash course for designers and web developers unfamiliar with Rails:

  • Templates are stored in app/views and are essentially HTML, plus some ERB tags (<% code %>, <%= value %>).
  • Assets, such as images, CSS, and JavaScript are stored in app/assets. This allows something called the asset pipeline to compile from LESS to CSS, and from CoffeeScript to JavaScript.

Development Environment

This is an app that can run on Heroku, so if you already have Git, Ruby, and PostgreSQL on Linux or OSX, you're probably in fine shape.

If you want to use a reproducible, Heroku-like development environment, you can use Vagrant to get set up. It will set up a virtual machine that is known to work with this application. (Run into problems? Vagrant makes it easy to destroy and recreate your development environment, if necessary.)

The following commands may each take a little while to complete.

Within your clone:

vagrant up
vagrant ssh

Now you are SSHed into your guest Vagrant virtual machine. Now you can run these commands:

cd /vagrant
bundle install
rake db:create
rake db:schema:load

Not using Vagrant? The steps above are stil basically what you need to do, but without the Vagrant specific parts:

bundle install
# configure config/database.yml by hand
bundle exec rake db:create
bundle exec rake db:schema:load

Now the automated tests should pass:

bundle exec rake

So now you can run the app:

bundle exec rails server

And open it in your browser: http://localhost:3000/

At this point, you can make changes to the code to your heart's content. Happy hacking!

Patches/Pull Requests

  • Fork the project.
  • Make your feature addition or bug fix. Please follow the style recommendations (see above).
  • Add specs for your changes, if you are able. This is important so we don't break it in a future version unintentionally.
  • Commit.
  • Open a pull request. Bonus points for topic branches (see git flow).

Thanks for your contributions!


Ruby code should generally follow the community Ruby Style guide. If you're writing tests, rspec is recommended.

JavaScript over CoffeeScript, please. JavaScript is known by more developers -- especially those outside the Rails world.

Git Flow is recommended, but not required. The development branch is master and the release branch is stable.


Benjamin Oakes has the keys for deployment. Need something to go out? Please make an issue.


GPLv2. See LICENSE for a copy.