A Ruby on Rails Subscription Manager Application
Explore the app »
Report Bug
·
Request Feature
Table of Contents
Gatekeeper is a subscription management service that allows you to store login information for online services. It has a number of useful features such as:
- Encrypted storage of username and password information
- Sharing of service entries between friends, family, and other groups
- Scheduleable reminders to cancel, update, renew, and more.
For more info on the project, see our Final Report
To get a local copy up and running follow these steps.
To start, install the following packages:
-
npm
curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash - sudo apt-get install -y nodejs
-
Ruby on Rails -> Link to Digital Ocean installation guide for Ubuntu
-
Install PostgreSQL and binaries -> Install from here then:
sudo apt install libpq-dev
-
Install bundler
gem install bundler
-
Install the Heroku CLI -> Link to instructions
-
Setup Google Oauth access -> Link to setup Google Auth project
-
Setup a AWS KMS master key using AWS setup instructions for the kms_encryped gem
- Clone the repo
git clone https://github.com/gatekeeper-tamu/gatekeeper.git
- Navigate to directory and install gems
cd gatekeeper bundle install
- Setup environment variables
- Create
.env
file in the root directory with the following:GOOGLE_CLIENT_ID="insert_google_client_id_here" GOOGLE_CLIENT_SECRET="insert_google_client_secret_here" AWS_ACCESS_KEY_ID="..." AWS_SECRET_ACCESS_KEY="..." KMS_KEY_ID="..." AWS_REGION="..."
- Create
- Create or set heroku project
heroku create
- Setup the database
- Make sure postgres is started and your user is created/has db access
sudo service postgresql start sudo -u postgres createuser -s <your username> -P
- Intitialize db
rake db:setup
- Make sure postgres is started and your user is created/has db access
- Setup webpacker
bundle exec rake webpacker:install
- Run the app:
- To run locally:
Navigate to
heroku local
localhost:5000
to see the app. - To deploy to heroku:
- Export all environment variables from
.env
fileheroku config:set ENVIRONMENT_VARIABLE="value_here"
- Set git remote for heroku:
heroku git:remote -a <your app name>
- Push to heroku
git push heroku master
- Export all environment variables from
- To run locally:
- User Login
- Add/Remove/Update Subscription Entries
- Share Subscriptions
- Create Groups
- Setup Cancellation/Renewal Reminders
- Configure Group/Personal Settings
- See Statistics on Monthly Costs/Usage Data
- Explore Subscription Services and Deals
- Send Temporary Account Access to Non-Users
See the open issues or the pivotal tracker for a full list of proposed features (and known issues).
Distributed under the MIT License. See LICENSE
for more information.
Rebecca McFadden - rmcfadden@tamu.edu
Project Link: https://github.com/gatekeeper-tamu/gatekeeper
TODO