If you're reading this, you're likely a candidate for a frontend job at Teachable. You're going to be building a search application that takes a user's search query, hits the Ruby Gems search API endpoint, and displays the results in a list view with some added functionality (detailed below).
The application, once completed, should meet the following criteria:
- It have a search box that lets users search for Ruby Gems.
- It should display the results of the search in a list.
- Each Gem should have a button that lets users "save" and "unsave" Gems.
- It should have a way to view saved Gems, even after the browser window is refreshed (localStorage is a fine for this).
Here's a few things we'll look for in our evaluation.
- Clean, well-organized code.
- Sensisble architecture choices that could scale well.
- A clean, functioning UI.
- Bonus points if you write tests.
We have a few dependencies necessary to run the build and proxy server, the rest are up to you.
npm install
npm run dev
We want to judge your ability to program UIs, not configure build tools. That's why we chose Parcel as a bundler, please consult the documentation if you run into any trouble.
We added a CSS file as an example, feel free to delete that.
You may have noticed the server.js file at the root of this application, that's there to solve cross-origin issues when making network requests. The server automatically starts up when running "npm run dev" or "npm run start".
To see a sample request in action, run the following in your command line.
curl http://localhost:3000/api/v1/search.json?query=rails