Skip to content
This repository has been archived by the owner on Mar 27, 2023. It is now read-only.

Commit

Permalink
add longer introduction to readme
Browse files Browse the repository at this point in the history
  • Loading branch information
NealJMD committed Sep 9, 2016
1 parent ac5ec7c commit 38cb68c
Showing 1 changed file with 17 additions and 10 deletions.
27 changes: 17 additions & 10 deletions README.md
Expand Up @@ -2,7 +2,14 @@

[![Circle CI](https://circleci.com/gh/SumOfUs/Champaign/tree/master.svg?style=shield)](https://circleci.com/gh/SumOfUs/Champaign/tree/master) [![Coverage Status](https://coveralls.io/repos/github/SumOfUs/Champaign/badge.svg?branch=master)](https://coveralls.io/github/SumOfUs/Champaign?branch=master) [![Code Climate](https://codeclimate.com/github/SumOfUs/Champaign/badges/gpa.svg)](https://codeclimate.com/github/SumOfUs/Champaign)

Champaign is an open source digital campaigning platform built by SumOfUs. It provides powerful tools for customizing and experimenting with campaign pages, while streamlining the process of setting them up.
Champaign is an open source digital campaigning platform built by [SumOfUs](http://sumofus.org/). It's designed to streamline campaigner workflows creating and iterating on pages, while also providing tools for deep customization of layouts and functionality, all through the web interface. At it's core, Champaign is a CMS to easily create petitions, fundraisers, social-media shares, and surveys, and to record member responses to these action pages. It is also designed to be extensible, allowing developers to contribute new page functionality.

Champaign is also designed with a focus on performance, reliability, maintainability.
- *Performance*: In the SumOfUs production deployment, 95th percentile response times for member-facing pages are 120ms, +/- 20ms.
- *Reliability*: The test suite covers 92% of the ruby code with more than 2300 unit and integration specs.
- *Maintainability*: Champaign code has been guided strongly by the [single responsibility principle](https://en.wikipedia.org/wiki/Single_responsibility_principle) and consequently has skinny controllers, skinny models, and many service classes. The continuous integration also runs code analyzers, including the Rubocop and CodeClimate style checkers.

This is the second digital campaigning CMS developed under direction SumOfUs. The previous system, ActionSweet, still powers several other digital campaigning organizations. Champaign was designed to specifically alleviate issues present in ActionSweet and manifests the lessons learned over 5 years of running online campaigns.

If you're interested in collaborating on the project with us, or have ideas or recommendations, please get in touch!

Expand All @@ -13,7 +20,7 @@ If you're interested in collaborating on the project with us, or have ideas or r
* Setup your db connection by running `cp config/env.template.yml config/env.yml` and edit
`config/env.yml` with your development database information.
* Create the development databases: `bundle exec rake db:create`
* Run migrations: `bundle exec rake db:migrate`
* Run migrations: `bundle exec rake db:schema:load`
* Run the seed task: `bundle exec rake db:seed`
* Run the test suite to make sure everything's setup correctly: `bundle
exec rake test`
Expand All @@ -28,12 +35,16 @@ defined in these YAML files will be accessible via
You can override configuration variables during development by creating
a `config/settings/development.local.yml` file.

## Assets

Champaign is a full Rails app. While it's ready to be deployed out of the box, you will likely want to add css, javascript, images, and translations to your deploy. To that end, Champaign supports loading assets from an external repository, both in development from a local directory and in production by downloading from a Github repository.

## ActionKit Integration

Champaign integrates seamlessly with ActionKit. The integration works
via events that are triggered from Champaign and are then captured by
a separate service: [champaign-ak-processor](https://github.com/SumOfUs/champaign-ak-processor), which in turn
updates ActionKit via it's API. Champaign events are delivered using AWS SNS/SQS.
updates ActionKit via its API. Champaign events are delivered using AWS SNS/SQS.

Despite having this external service to communicate with ActionKit,
Champaign still needs to access ActionKit's API directly in a couple of
Expand All @@ -42,10 +53,10 @@ run Champaign. You'll be able to do this using [environment variables](config/se
in production, or overriding the proper keys in `config/settings.development.local.yml`
for development.

### Braintree && GoCardless integration
## Braintree & GoCardless integration

Champaign also accepts donations by integrating with [Braintree](https://www.braintreepayments.com/) for
Credit Card payments, and [GoCardless](https://gocardless.com/) for direct debit. To get these integrations
Champaign accepts donations by integrating with [Braintree](https://www.braintreepayments.com/) for
credit card, debit card, and Paypal payments, and [GoCardless](https://gocardless.com/) for direct debit. To get these integrations
working you'll have to setup the proper credentials by setting [environment variables](config/settings/production.yml) on
your production environment.

Expand Down Expand Up @@ -85,7 +96,3 @@ your production environment.

8. Run the tests
* `docker-compose run web rspec spec`

## QA

Cross browser QA of member-facing pages has been done with the whiz-bang tech from [Browserstack](https://www.browserstack.com).

0 comments on commit 38cb68c

Please sign in to comment.