Popolo Rails Engine
If you are looking for the GitHub repository for the data specification, head over to the popolo-spec repository.
Popolo's goal is to make it easier for civic developers to create government transparency, monitoring and engagement websites.
Popolo is a Ruby on Rails engine that provides additional functionality to a Ruby on Rails application, so that developers can focus on what's special about the governments they want to monitor, instead of re-implementing features commonly found in open government websites. The core Popolo engine provides basic models, controllers and views for the objects found in all open government websites – people, organizations and the relationships between the two. Other engines provide additional functionality.
In addition to being a Rails engine, Popolo is also a data specification. This engine is up-to-date with its 2014-12-21 version, except for the updates:
- 2014-12-14: Add a video property to the Speech class.
- 2014-11-23: Add a Speech class.
- 2014-05-09: Add a member property to the Membership class, to relate organizations to organizations.
Popolo uses Mongoid to connect to MongoDB.
First, create your Rails application:
rails new myapp --skip-active-record
popolo gem to your
Gemfile and bundle your dependencies:
gem 'popolo' bundle
If you didn't run
rails new with the
--skip-active-record option, follow Mongoid's installation instructions. Otherwise:
rails generate mongoid:config
Finally, run the
popolo generator and create the MongoDB indexes:
rails generate popolo bundle exec rake db:mongoid:create_indexes
If you would like to use the free Lumen Bootstrap theme, add the following line to your application's
*= require popolo
If you are using Popolo's default views, you can translate your contact detail types and organization classifications by creating a locale file, e.g.
en: popolo: contact_details: types: cell: Mobile number organizations: classifications: party: one: Political party other: Political parties
You may translate model names like:
en: mongoid: models: popolo/membership: one: Membership other: Memberships
sources property reuses the
Link model. To translate this word:
en: popolo: popolo/source: one: Source other: Sources
Create a new Cedar app on Heroku with either MongoLab or MongoHQ:
heroku apps:create -s cedar --addons mongolab:starter # OR heroku apps:create -s cedar --addons mongohq:sandbox
If this is your first time using Heroku, read its guide, Getting Started with Rails 3.x on Heroku, for next steps.
We highly recommend using the Unicorn Rack HTTP server. This blog post has great instructions. You can remove the
after_fork blocks from your
config/unicorn.rb because Mongoid will automatically reconnect after forks.
Copyright (c) 2015 James McKinney, released under the MIT license