{"id":13819806,"url":"https://github.com/SumOfUs/Champaign","last_synced_at":"2025-05-16T07:32:18.366Z","repository":{"id":30134753,"uuid":"33684818","full_name":"SumOfUs/Champaign","owner":"SumOfUs","description":"SumOfUs Online Campaign Platform.","archived":true,"fork":false,"pushed_at":"2023-03-27T16:20:44.000Z","size":22329,"stargazers_count":49,"open_issues_count":56,"forks_count":19,"subscribers_count":14,"default_branch":"development","last_synced_at":"2024-11-19T19:43:40.106Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SumOfUs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2015-04-09T18:16:20.000Z","updated_at":"2024-01-05T16:42:01.000Z","dependencies_parsed_at":"2024-01-13T16:35:14.829Z","dependency_job_id":null,"html_url":"https://github.com/SumOfUs/Champaign","commit_stats":null,"previous_names":[],"tags_count":37,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SumOfUs%2FChampaign","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SumOfUs%2FChampaign/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SumOfUs%2FChampaign/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SumOfUs%2FChampaign/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SumOfUs","download_url":"https://codeload.github.com/SumOfUs/Champaign/tar.gz/refs/heads/development","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254488366,"owners_count":22079417,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-04T08:00:53.210Z","updated_at":"2025-05-16T07:32:13.350Z","avatar_url":"https://github.com/SumOfUs.png","language":"Ruby","funding_links":[],"categories":["Happy Exploring 🤘"],"sub_categories":[],"readme":"# NOTE: This repository is no longer actively maintained and has been archived.\n\n# Champaign\n\n[![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)\n\nChampaign 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.\n\nChampaign is also designed with a focus on performance, reliability, maintainability.\n- *Performance*: In the SumOfUs production deployment, 95th percentile response times for member-facing pages are 120ms, +/- 20ms.\n- *Reliability*: The test suite covers 92% of the ruby code with more than 3000 unit and integration specs.\n- *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.\n\nThis 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.\n\nIf you're interested in collaborating on the project with us, or have ideas or recommendations, please get in touch!\n\n## Development setup\n\n* Install gem dependencies by running `gem install bundler` and then `bundle install`.\n* Install node dependencies by running `yarn`\n* Setup your db connection by running `cp config/env.template.yml config/env.yml` and edit\n  `config/env.yml` with your development database information.\n* Create the development databases: `bundle exec rake db:create`\n* Run migrations: `bundle exec rake db:schema:load`\n* Run the seed task: `bundle exec rake db:seed`\n* Seed the database with liquid layouts: `bundle exec rake champaign:seed_liquid`\n* Seed the database with tags and languages from your ActionKit integration: `bundle exec rake action_kit:import_tags` and `bundle exec rake action_kit:import_languages`\n* Run the test suite to make sure everything's setup correctly: `bundle\n  exec rake spec`\n\n## Champaign Configuration\n\nConfiguration files are under `config/settings` directory. There's one\nconfig file per environment: production, test and development. All keys\ndefined in these YAML files will be accessible via\n`Settings.option_name`.\n\nYou can override configuration variables during development by creating\na `config/settings/development.local.yml` file.\n\n## Vendor theme and overrides\n\nChampaign is a full Rails app. While it's ready to be deployed out of the box,\nyou will likely want to customise its styles, images, and translations.\nTo that end,Champaign has a `vendor/theme` folder where you can add,\noverride, or customise translation strings, layouts/partials, and images.\n\n## ActionKit Integration\n\nChampaign integrates seamlessly with ActionKit. The integration works\nvia events that are triggered from Champaign and are then captured by\na separate service: [champaign-ak-processor](https://github.com/SumOfUs/champaign-ak-processor), which in turn\nupdates ActionKit via its API. Champaign events are delivered using AWS SQS.\n\nDespite having this external service to communicate with ActionKit,\nChampaign still needs to access ActionKit's API directly in a couple of\ncases, that's why you'll need to configure AK credentials in order to\nrun Champaign. You'll be able to do this using [environment variables](config/settings/production.yml)\n in production, or overriding the proper keys in `config/settings.development.local.yml`\nfor development.\n\n## Braintree \u0026 GoCardless integration\n\nChampaign accepts donations by integrating with [Braintree](https://www.braintreepayments.com/) for\ncredit card, debit card, and Paypal payments, and [GoCardless](https://gocardless.com/) for direct debit. To get these integrations\nworking you'll have to setup the proper credentials by setting [environment variables](config/settings/production.yml) on\nyour production environment.\n\nIf you use a separate endpoint to fetch your Braintree tokens, you can point to it by updating\nthe [env.yml](env.yml) with your `BRAINTREE_TOKEN_URL`. By default, Champaign will use its own token\nendpoint which could degrade performance, so it's recommended that you use a separate service where\npossible.\n\n## Development Setup using Docker\n\nYou can run the required Postgres and Redis databases on Docker using docker-compose. We suggest you run the Rails application on host since the default Dockerfile is a production file missing some test / development dependencies.\n\nSimply install Docker and Compose, and issue `docker-compose up` to run your redis and postgres database. Port mapping will map the container ports to the databases' expected (default) ports on host. \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FSumOfUs%2FChampaign","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FSumOfUs%2FChampaign","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FSumOfUs%2FChampaign/lists"}