Bonterra an equal opportunity employer. We evaluate qualified applicants without regard to race, color, religion, sex, age, sexual orientation, gender identity, national origin, disability, marital or parental status, veteran status, and other legally protected characteristics.
This project is a simple Rails app intended to help you demonstrate:
- Fundamental Ruby programming skills
- Familiarity with the Ruby-on-Rails framework
- Problem-solving abilities
- Ability to use the Git version control system
Your goal is to add functionality and fix bugs so that the app's RSpec test suite and JS test suite pass. Please do not spend more than four hours on this project; we do not necessarily expect candidates to solve every test. We want to see how you approach this set of problems.
-
Completing this project requires you to have access to a Ruby development environment in which you are able to install dependencies using Bundler.
-
If you don't have access to a Unix-based development environment (such as macOS or Linux), you can use a browser-based IDE such as Cloud9.
-
If you have access to a Windows development environment, you should be able to use RubyInstaller to run the app, but that has not yet been tested. If you are able to set this up, please let us know. Pull requests welcome!
-
You will need to install
yarn
in order to run JS tests. You can find setup instructions here. -
You will need Ruby 2.6.8 installed. You should consider using a ruby version manager like rbenv
-
Download a copy of the
dev-test
from this URL: https://github.com/network-for-good/dev-test/archive/main.zip. We don't recommend cloning thedev-test
repository, because you will be delivering your solution as a private repository pull request (see Delivery Instructions, below). -
Run the
bin/setup
command to install the app's dependencies and prepare the application's SQLite database. -
Run the command
yarn install
to install JS dependencies. -
Run the command
rspec
to exercise the Ruby test suite. You should see a list of test failures. -
Run the command
yarn test
to exercise the JS test suite.
-
Add and change Ruby code to make the test suite pass successfully by running
rspec
. You should not need to make any changes to the specs. -
The application views use Bonterra's design system, NFG UI. You may want to refer to NFG UI's documentation site.
-
You may see warning messages related to the NFG UI gem, such as
warning: already initialized constant NfgUi::Components::Utilities::ResourceThemeable::FALLBACK_ICO
. These warnings may be safely disregarded. -
When complete, you will see a success message such as:
15 examples, 0 failures
. -
Add and change JS code to make the test suite pass successfully by running
yarn test
. Update the two JS tests with 'fail('Todo')' with tests that verify the action described in the description of the test. -
When complete, you will see a success message such as:
Tests: 8 passed, 8 total
-
Visit the
elements/html_test
page locally to view the questions. Add and change the HAML code to answer the questions. You should not need to make any changes to CSS. -
Please provide your answers within that file.
Solutions should be delivered via GitHub, since Bonterra uses GitHub for source control. Part of our assessment includes evaluating your ability to use Git branches and pull requests. Once your solution is complete:
-
Create a private GitHub repository within your personal GitHub account. You should suffix the repository name with your GitHub user name. For example, if
@subelsky
delivers an solution, the private repository would be nameddev-test-subelsky
. Refer to these instructions to ensure your solution is private. -
Create a branch within your private repository called
solution
. For example, the solution delivered by@subelsky
appears here: https://github.com/subelsky/dev-test-subelsky/tree/solution. (Note: this example is apublic
repository, but your solution should beprivate
). -
Create a pull request that specifies the changes you wish to merge from the
solution
branch into themain
branch. In our example,@subelsky
delivered a (simulated) solution: subelsky/dev-test-subelsky#1. -
Add the following GitHub accounts to your private repository as collaborators, so that we can see your pull request:
These steps mirror the code review process used by Bonterra.
Please refer to our careers page for more details.