Espelho para https://github.com/piratas/action-center-platform
Vivian Brown 0552141317 Merge pull request #433 from EFForg/rm18595-rate_limit_subscriptions | 6 years ago | |
---|---|---|
.ebextensions | 9 years ago | |
app | 6 years ago | |
bin | 9 years ago | |
config | 6 years ago | |
db | 6 years ago | |
docker | 6 years ago | |
features | 6 years ago | |
lib | 6 years ago | |
public | 6 years ago | |
script | 6 years ago | |
spec | 6 years ago | |
vendor | 6 years ago | |
.csslintrc | 8 years ago | |
.dockerignore | 8 years ago | |
.env.example | 6 years ago | |
.eslintignore | 8 years ago | |
.eslintrc | 8 years ago | |
.gitignore | 6 years ago | |
.rubocop.yml | 6 years ago | |
.ruby-gemset | 9 years ago | |
.ruby-version | 8 years ago | |
.sass-lint.yml | 6 years ago | |
.travis.yml | 6 years ago | |
Dockerfile | 6 years ago | |
Gemfile | 6 years ago | |
Gemfile.lock | 6 years ago | |
LICENSE | 9 years ago | |
README.md | 6 years ago | |
Rakefile | 6 years ago | |
config.ru | 6 years ago | |
docker-compose.yml.example | 6 years ago | |
package.json | 6 years ago | |
varnish.vcl | 6 years ago | |
yarn.lock | 6 years ago |
The Action Center Platform is an online organizing tool maintained by EFF. Administrators can create targeted campaigns where users sign petitions, contact legislators, and engage on social media.
Follow these instructions to run the Action Center using Docker (recommended). To run the Action Center without Docker, see setup without Docker.
git clone https://github.com/EFForg/action-center-platform.git
docker-compose.yml.example
to docker-compose.yml
, and .env.example
to .env
. Fill in the variables in .env
according to the instructions in that file. See notable dependencies for hints.sudo docker-compose build
sudo docker-compose up
sudo docker-compose exec app bash
.
rake db:migrate
to migrate the database.rake congress:update
to populate CongressMember table.The EFF icon font is generated using fontello.com and via the fontello-rails-converter.
To add a new icon to the fontset, read the Update your existing fontello font section of the fontello_rails_converter readme.
Action Center administrators can create four types of actions:
To get started using the Action Center, create a user and grant them admin privileges. Administrators can create, track, and manage campaigns.
To create an admin user:
register
link in the top nav.
rake users:add_admin[youremail@example.org]
New users will need to complete an e-mail confirmation in order to log in. Administrators can access admin features by clicking admin
in the nav.To remove an admin user:
rake users:remove_admin[youremail@example.org]
To list all admin users:
rake users:list_admins
Action Center uses DelayedJob to perform certain tasks outside of a web request context. See that repository for information regarding how to run a delayed job worker. If you are deploying with Docker, our docker-compose.yml.example shows how to create a service which processes the job queue indefinitely.
You may also want to automate certain other tasks (such as rake signatures:deduplicate
and rake congress:update
) to run occasionally. For those deploying with Docker, docker-compose.yml.example illustrates how to create a service which runs these commands periodically using cron.
Embedding actions is simple. Just include the following HTML on the page you want the action to be embedded:
<script type="text/javascript" src="https://act.eff.org/action/embed"></script>
<a class="action-center-widget" href="https://act.eff.org/action/shut-the-nsa-s-backdoor-to-the-internet">Take part in the action!</a>
The link href should point to the action page you wish to embed. You may add ?nosignup=1
to the URL to get newsletter signup fields omitted from the action.
If you want to get fancy, you can modify the embed code to include some of the following parameters, all of which are optional:
<script type="text/javascript">
var ac_embed = {};
ac_embed.css = "https://example.com/hello.css"; // specify a css file url
ac_embed.width = 500; // specify a width manually
ac_embed.no_css = true; // remove all default styles
ac_embed.css_content = "#some_elem"; // specify an element which itself contains some styles
ac_embed.bioguide_ids = ["ID1", "ID2"...] // bioguide IDs of congress members to target
</script>
<script id="some_div" type="text/x-css-content">
body{
background-color: blue;
}
</script>
<script type="text/javascript" src="https://act.eff.org/action/embed"></script>
<a id="action-center-widget" href="https://act.eff.org/action/shut-the-nsa-s-backdoor-to-the-internet">Take part in the action!</a>
To run the full test suite, simply run rake
with no arguments.
Rspec tests are used for unit testing the app, and some integration testing. Cucumber tests are used for testing API keys, javascript tests, and feature tests.
We use WebMock to stub backend requests to third party services and Puffing Billy to stub frontend (Ajax) requests. Puffing Billy will cache unrecognized requests and play them back during future test runs. To prevent Puffing Billy from making any new requests, set DISABLE_PUFFING_BILLY_REQUESTS=true
.
rake
will also run our linting:
Rubocop checks for consistent style across the Ruby areas of the codebase. We use a modified version of Rubocop-Github to stay consistent with SEC.
Sass-lint checks for consistent style across the stylesheets. Our .sass-lint file is derived from SEC.
For notes related to deploying Action Center in production, see the project wiki.
This project was created by Lilia Kai, Thomas Davis, and Sina Khanifar. Large portions of the codebase are directly attributable to them, while under the employ or contractorship of the Electronic Frontier Foundation in 2014. Thank you Lilia, Thomas, and Sina! The Action Center is currently maintained by the EFF Engineering and Design team.
See the LICENSE
file for licensing information. This is applicable to the entire project, sans any 3rd party libraries that may be included.