This application was made for the Columbus Ruby Brigade in order to combine board member nominations and voting into a single platform. This application is dark-mode friendly.
This project was created with and reliant upon:
- Ruby 2.7.2
- Rails 6.1
- Materialize-Sass
- Material Design Icons
- for icon names, reference MDI v. 4.1.95 docs
- JQuery
- Install Ruby and Rails versions, if needed
# Clone repository
$ git clone
# Switch to the repository
$ cd # Install dependencies
$ bundle
# Create the database
$ rails db:migrate
# Seed with candidates, if desired
$ rails db:seed
# Start rails server
$ rails s
If changes are made to the seed file for local testing purposes, drop the database first, then re-create it. The server will need to be re-started.
Because this application is dark mode-friendly, you may want to adjust your rendering for testing purposes using Dev tools (Chrome: Rendering > Emulate CSS media feature prefers-color-scheme).
- Must be integrated with Slack in order to successfully login.
- .env file must be included in order to set dates. The variables and date formatting as follows:
NOMINATIONS_START_DATE=2020-MM-DD
NOMINATIONS_END_DATE=2020-MM-DD
VOTING_START_DATE=2020-MM-DD
VOTING_END_DATE=2020-MM-DD
- Secret keys, client ID, etc. must be obtained from Slack via the Admin. panel.
Minitest (built into Rails)
Mocha (primarily used to stub out .env dates and handle dates in testing more easily)
test/fixtures/To run all tests
# Run tests
$ rails test
- Coverage report can be found in
.../coverage/index.htmlafter running the tests. - Do not listen to RuboCop for the following, because making said changes will break things.
# Use nested module/class definitions instead of compact style on:
app/controllers/users/omniauth_callbacks_controller.rb
test/channels/application_cable/connection_test.rb
test/test_helper.rb
- CI will run first.
- Automatic deployments enabled.
- To manually deploy to Heroku: Heroku
heroku git:remote -a app-name-here - Make sure to run
heroku run rails db:migrateto create the database.
- Increase test coverage

