An app to facilitate running petition campaigns with a decoupled back-end serving HTML5 and native apps.
Petition creation and data storage is handled by a Ruby on Rails back end. Rails serves petitions as JSON to public-facing front-ends, and accepts a JSON stream of signatures and other data.
Most of the repository is for running the Rails application.
A web front-end designed for Amnesty International is provided in /public. Design materials are in /design.
You will need:
Linux machines are good to go with the above, more-or-less. Congratulations! Nonetheless, Ryan Bigg has writen a good tutorial for setting yourself up on Linux, just in case.
If you are on a PC or a Mac and this is your first time setting up you development machine for Ruby or Rails, Rails installer can save you time and headache.
If you're on a Mac and you'd rather configure things yourself, you'll need XCode, Command Line Tools, and Homebrew at minimum. Peter Rhodes has writen a how-to for starting your first Rails project on OSX.
If you're on Windows PC, use the Rails installer and enjoy the hours (days!) of pain you have just avoided. Α Windows development environment is not recommended for Rails projects, however.
Create a fork of this repository and make the project your own! Have a feature you'd like to contribute? Send a pull request.
- Docs provides documentation for extending development, installing and operating the app, and manipulating the API.
- Roadmap sets a direction for this project
- Amnesty International Canada's Digital Communications Manual provides context for the creation of this project and background on doing petitioning and advocacy work online.
- Amnesty International Canada's Best Practices document is a guideline for coding and developing digital projects