(This is a fork of the Kaleo Rails Engineer Candidate Interview Project.)
Thanks for taking the time to complete this exercise. We're excited that you're considering joining our amazing team.
This Rails application is a basic skeleton of an app that serves an API about questions and answers. It already includes 4 basic models:
- Question
- Answer
- User
- Tenant
A Question can have one or more answers, and can be private. Every Answer belongs to one question. Each Question has an asker (User), and each Answer has a provider (User).
A Tenant is a consumer of the API you are going to write. A db/seeds.rb file is included to preload the database with test data when you setup the DB.
- Add a RESTful, read-only API to allow consumers to retrieve Questions with Answers as JSON (no need to retrieve Answers on their own). The response should include Answers inside their Question as well as include the id and name of the Question and Answer users.
- Don't return private Questions in the API response.
- Require every API request to include a valid Tenant API key, and return an HTTP code of your choice if the request does not include a valid key.
- Track API request counts per Tenant.
- Add tests around the code you write as you deem appropriate. Assume that the API cannot be changed once it's released and test accordingly.
- You are welcome to add any models or other code you think you need, as well as any gems.
- You are also free the modify the existing code however you see fit.
Clone this repo locally, and from the top-level directory run:
bundle install
bundle exec rake db:setup
To make sure it's all working,
rails s
You should see this same information.
Fork this repo and give us access to your fork. If you need to add any additional instructions to the README please put them at the very top of that file and mention. Expect to discuss your design decisions during the interview.