Skip to content


Subversion checkout URL

You can clone with
Download ZIP
*NOT CURRENTLY MAINTAINED* Procurement software for the 21st century.
Ruby CoffeeScript JavaScript
Branch: master
Failed to load latest commit information.
app better god mode style
config add attachments to projects
db add attachments to projects
doc initial commit
lib import bids as background task
spec add attachments to projects
.powenv.example initial commit
.ruby-gemset initial commit
.ruby-version initial commit
Gemfile Change :heroku group in Gemfile to :production to attempt to fix asse…
Guardfile initial commit license
Procfile initial commit Update
Rakefile Community Version

Procurement software for the 21st century.

What's this "Community Version"? Nearly identical to our SaaS product, just with some of the multi-tenancy code taken out. Try the demo.

Login to the demo as an officer with and password.


Setting up your development environment

  • git clone the repo
  • bundle install
  • copy config/database.yml.example to config/database.yml and configure it as needed
  • rake db:setup
  • rake db:seed:example
  • rails server or run with your choice of server (we like pow)
  • rake jobs:work to run delayed_job worker

You'll all set to develop Login with and password.

Deploying to Heroku

Since this is a Rails 4 app, it requires some extra steps the first time you deploy it.

  • heroku create YOUR_APP_NAME
  • heroku labs:enable user-env-compile
  • heroku addons:add heroku-postgresql
  • Setup (or disable) the mailer in production.rb
  • Add the environment variables specified in .powenv.example
  • Add an additional environment variable with the database URL
    • heroku config to see the existing database URL
  • git push heroku master
  • heroku run rake db:migrate
  • Launch a console heroku run rails console and:
  • Create an organization: Organization.create(name: "Oakland", email: "", username: "oakland")
  • Create a user: User.create(email: "", name: "Adam Becker", password: "password")
  • Assign that user to the organization's owners team: Organization.first.owners_team.users << User.first
A couple notes:
  • uses delayed_job to run tasks asynchronously. Running a worker dyno costs $34.50/month, so if you want to avoid this charge, you'll have to disable the worker in the Procfile, and configure delayed_job with Delayed::Worker.delay_jobs = false.

  • is configured to use AWS for storing file uploads. You'll need to set environment variables for this too (specified in /.powenv.example), or change your application configuration to use another storage provider. Note that you can't use :file storage on Heroku, as the filesystem is not permanently writable.

Contributing is very early-stage alpha software, but if you're interested in getting your hands dirty, contributions are more than welcome. Your workflow should look something like this:

  1. Fork the repo
  2. Write some sweet code in a feature-branch
  3. Write some tests (unit & acceptance, currently) that cover the functionality you added
  4. Create a pull request


Released under the GNU GPLv3 license. Neither the name of the Department of Better Technology nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

Something went wrong with that request. Please try again.