Manage the challenge process for the Ohio State University Marching Band
This app has a few dependencies you need to install yourself. The use of each will be explained below
- Docker
- Docker Compose
- Rails
- Postgres <-- This is just for the ability to install the pg gem
- Node
- Heroku CLI
We're using Docker to run our datastores (PostgreSQL and Redis). The benefit of using Docker is that it eliminates the need to install the data stores and have them running/cluttering up your computer.
Rails is a popular web server framework. It's used to handle web requests
The app is running on Heroku! Their cli comes in handy if/when you need to use the service.
It's also leveraged for local development (see bin/server
).
See Heroku.md for more details.
Inside your terminal, run the following commands to get the code.
git clone https://github.com/osumb/challenges.git
cd challenges
bundle install
Every web app needs a database! You can run one locally with docker-compose up -d
Rails will yell at you if you don't have a .env
file available, so add one!
The required keys are listed in config/envvars.yml
. The format of your .env
file should be:
ENVIRONMENT_VARIABLE_KEY=environment_variable_value
You should be good to go with dependencies and everything. To start app locally, just run
bin/server
This command will start a rails web server and a Resque worker for asynchronous jobs
The rails server will run at localhost:3000
The API layer is a Ruby on Rails App
Tests are cool and you should run them a lot!
bundle exec rspec .
Checkout .rubocop.yml to see the ruby specific code formatting rules
The app lives on Heroku. @atareshawty has the logins. Ask him if you want the ability to deploy or have access to the Heroku git remotes.
To deploy to either environment, simply run bin/deploy <remote>
, where <remote>
is either production
or staging
.
You can optionally deploy a branch to staging or production (staging for testing, production for emergencies).
Example: If I wanted to deploy my branch alex-cool-new-feature
to staging for testing, I'd run:
bin/deploy <staging|production> cool-new-feature
The staging instance is used to test new features, specifically ones that have made it into PRs. There is no staging branch. To test, just do a manual deploy to the staging instance.
The master branch is protected from force pushes and PR's must pass