/organize

a volunteer scheduling & management tool for my capstone project for @Ada-Developers-Academy

Primary LanguageRubyGNU General Public License v2.0GPL-2.0

Code Climate

I started this project for my capstone project while attending Ada Developers Academy. It might be a good fit for any non-profit organization with a small to medium volunteer base. It is designed to work with Google Calendar for scheduling volunteers. This app does not yet support tracking volunteer hours, so it may not be a good fit for some 501c3 reporting obligations. This project is currently operating in development mode. For more details, see the contributing guidelines.


Setup


Google Calendar API

  1. Add Google services (server to server) credentials to your project.
  2. Download the p12 version of your private key.
  3. Decrypt the key and store it in your ENV variables.
  4. Grab your issuer ID and store it in your ENV variables.
  5. Share all relevant calendars with your service account's email address.
    • Give read and write access!
    • Super annoying & worth writing a utility.

Google OAuth2

  1. Add Google OAuth2 credentials to your project.
  2. Add https://{insert_your_domain_here}/auth/google_oauth2/callback to your callbacks.
  3. Store the client ID and secret in your ENV variables.

Github OAuth2

  1. Add Github credentials to your project.
  2. Add https://{insert_your_domain_here}/auth/github/callback to your callbacks.
  3. Store the client ID and secret in your ENV variables.

Postgres

This app is configured to work with Postgres and takes advantage of the citext datatype. You may need to install Postgres or adjust the code that handles case-insensitive text if Postgres is not the right database for your installation.

You may need to explicitly enable citext (CREATE EXTENSION citext;).


Contributing


This project is not yet production ready, so make any pull requests against the dev branch.

Before adding new features, please look for related issues. If you do not see the feature you wish to add, please make a new issue and consider working on another issue while waiting for a project maintainer to respond. If you have questions, feel free to open a new question issue or tweet me.

  1. Fork this project.
  2. Create your feature branch (git checkout -b my-new-feature).
  3. Commit your changes (git commit -am 'Add some feature').
  4. Push to the branch (git push origin my-new-feature).
  5. Create new Pull Request against the dev branch.