Most coding tests out there aren't really practical, real-world gauges of a developer's ability. They often consist of math or algorithmic tests, and sometimes things a JavaScript developer would rarely do. This test offers a more realistic challenge (hopefully), and shouldn't feel like a complete waste of time. ๐
Users should be able to search for books, select one or more books by clicking on them, and save those books to their collection. Users should also have the ability to remove books from their collection as well.
- Fork this repo and then clone your fork, then jump into that directory on your machine.
- Run
meteor list
just to invoke automatic upgrades to your local Meteor installation (important for the next step!). - Run
meteor yarn
to install the dependencies. If you're not familiar with yarn, think of it as a more efficient, much-faster version of npm. If you've never used it with Meteor, you'll need to runmeteor npm install -g yarn
first.* - Type
yarn start
to run the Meteor app.
*Keep in mind that yarn will only be valid on a per-version basis. In other words, if you're using Meteor 1.4.4.1 and you're using yarn, if you upgrade to Meteor 1.4.5, you'll need to run meteor npm install -g yarn
again.
There are a few bugs and warnings in the app. Find and fix those first, please! (Ignore the React.createClass
deprecation warning)
Add the following new features and minor improvements:
- Add a way for people to remove books from their "My Books" collection.
- On the "Find Books" page, make the "Save to My Collection" button only enabled once one or more books have been selected.
- Make it so when a user saves books to their collection, the selected books are automatically deselected.
- When books are saved (BookFinder.js, line 53), it's not really checking for any kind of errors. Add some simple error handling and show a success message (it can be as simple as a div with plain text).
All Meteor-specific code should go in containers only! Keep the regular React components pure. The reason for this (in the real world) is that if one day someone decides to abandon Meteor and go with another technology for the back-end, all the UI Components can remain untouched and only the containers need be modified.
Also, there are unit tests that must pass! Be sure to run meteor yarn test
to run them.
Remember the importance of making sure your code fits in well with the conventions used by the project.
- Commit all your changes and push to your fork.
- DO NOT submit a pull request on the upstream repo! Just give me a link to your fork and I'll examine your work. Contact me at [email protected].