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.html
after 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:migrate
to create the database.
- Increase test coverage