This is a membership application app written by members of Double Union, a feminist hacker/makerspace for nonbinary people and women in San Francisco.
This app is named after a famous Virginia Woolf essay, A Room of One's Own. You can learn more about it on Wikipedia!
Also, here is a puppy that is saying "arooo":
- Prospective members can apply for membership
- Current members can vote and comment on applications
- Current members can see a directory of members
- Current members adjust their dues via Stripe
- Current members can apply for scholarships
- Membership coordinators can manage member status
- Emails are sent for applicants, accepted member setup reminders, cancelling mailers, dues issues, and scholarship requests (see
mailersfolder)
The application supports three levels of membership: members, key members, and voting members, where any member can see and comment on an application, but only voting members can vote. Membership coordinators can set whether the app is accepting applications, accept or reject individual applications, manage membership levels, and review dues status.
You can see screenshots of the system here: see our Arooo announcement post.
We welcome contributions from anyone! Please see our Contributing Guide for an overview of how to help, including how to set up your development environment and run the application.
You only need this if you are deploying code, checking changes, or maintaining a production instance of arooo
Set up heroku commandline client: https://devcenter.heroku.com/articles/heroku-cli
Staging: $ heroku run rails console --remote staging
Production: $ heroku run rails console --remote production
www.bugsnag.com is a heroku plugin that records errors in the production app. This is helpful for debugging. For bugsnag access, ask someone with access to the board@ section of 1Password to log into bugsnag and send you an email invite to create an account. Thank you to Bugsnag for their OSS program :)
This section only pertains if you have heroku & deployment access. Only maintainers have heroku access and can deploy.
If you are a DU member, see https://docs.google.com/document/d/19LbIYB2RDy-17UXuQx6wLgKp2EdLdqj-pg1cm3EpSb8/edit for more information on getting permission.
Deploys are done via the Heroku CLI using git push. Database migrations run automatically during the release process on Heroku, controlled by the release directive in our Procfile.
- Install the Heroku CLI and log in:
heroku login
- Add Heroku remotes (one-time setup):
git remote add staging https://git.heroku.com/du-arooo-staging.git
git remote add production https://git.heroku.com/du-arooo.git
- Pull down the latest code from
main:
git checkout main
git pull origin main
- Deploy to staging:
git push staging main
-
If needed, perform rake tasks or set ENV variable settings on
staging -
Test staging!
-
After confirming that the code works on staging, deploy to production:
git push production main
- If needed, perform rake tasks or set ENV variable settings on
production
As of February 2023, the environment variables set in Arooo's production environment are:
# Amazon credentials. Used for email sending, and possibly other stuff.
AWS_ACCESS_KEY_ID
AWS_REGION
AWS_SECRET_ACCESS_KEY
# Error reporting
BUGSNAG_KEY
# Postgres database
DATABASE_URL
# For GitHub OAuth
GITHUB_CLIENT_KEY
GITHUB_CLIENT_SECRET
# For Google OAuth
GOOGLE_CLIENT_ID
GOOGLE_CLIENT_SECRET
# Same as DATABASE_URL
HEROKU_POSTGRESQL_RED_URL
# To receive dues payments via Stripe
STRIPE_PUBLISHABLE_KEY
STRIPE_SECRET_KEY
STRIPE_SIGNING_SECRET
# General Rails and Heroku configuration
CANONICAL_HOST: app.doubleunion.org
HOST_URL: app.doubleunion.org
LANG: en_US.UTF-8
RACK_ENV: production
RAILS_ENV: production
SECRET_TOKEN
You can get the current values from Heroku, either via the web UI, under Settings > Reveal Config Vars, or using the Heroku CLI: heroku config --app du-aroo.
In your local development environment, you can set these variables in config/application.yaml.
TODO: It would be great to document these variables further, and figure out which ones are still needed.
This app sends emails via the Amazon SES service. Look for the config.action_mailer.delivery_method in production.rb for the precise configuration details.
If you need more information about our AWS setup, board members have AWS Console access.
Staging app: https://du-arooo-staging-896dffc852a3.herokuapp.com/
The staging app (du-arooo-staging) runs on Heroku-22 and shares the production database.
- GitHub (staging): OAuth app is under the
doubleunionGitHub org, nameddu-arooo-staging. Managed at https://github.com/organizations/doubleunion/settings/applications - GitHub (production): Also under the
doubleunionGitHub org. - Google (staging): OAuth client is under the
admin@doubleunion.orgGoogle Cloud account. - Google (production): OAuth client is in Google Cloud project number
126259081035. The owning account is unclear — possiblydoubleunionroot@gmail.com.
To report a security vulnerability with Arooo, see SECURITY.md. Thank you!
Copyright (C) 2014 Double Union
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the LICENSE.txt file for the full license.
