Thanks for taking a look at the Drawboard React Coding Exercise, we appreciate you taking the time to give this a bash - hopefully you will find it fun to complete.
Drawboard provides real time markup and document management platforms for architects, engineers, students - you name it.
The purpose of this exercise is to evaluate your approach to application development and problem-solving in a way that is similar to what we do day to day here at Drawboard.
The Metropolitan Museum of Art (The Met) presents over 5,000 years of art from around the world for everyone to experience and enjoy. The Museum lives in two iconic sites in New York City—The Met Fifth Avenue and The Met Cloisters. Millions of people also take part in The Met experience online.
The MET provides select datasets of information on more than 470,000 artworks in its Collection via its API.
You've been tasked to create a React app that displays images and information from the MET art collection, via an infinite scrolling page.
Users of the app should be able to scroll down the page infinitely to view new images, similar to Instagram's continuous scroll functionality.
The design of the UI, and any information you want to display alongside the images, is up to you.
We are not looking for fancy designs, but it should be useful to a user and nice to use. Is the app useful to the user? Does it display errors appropriately? etc.
Try adding a couple of small pieces of functionality that you feel would be useful to demonstrate your capabilities.
Some ideas include: keyword search, displaying additional information, linking out to relevant websites, filter by department, using additional APIs etc.
Don't feel obliged to spend too long here - we care about quality over quantity.
Please add enough tests to demonstrate your testing capabilities. You don't need to cover everything, but some key areas would be great.
The kinds of things we will be looking for when we evaluate your submission include:
- Solid design principles
- An architecture that is testable and extensible
- Ability to produce reusable components
- Error checking and reporting
- Convenient UI/UX
- Useful commit messages that help show your process and the app's evolution
- A utility class CSS styling approach would be great (Eg, Tailwind)
- Code structure and adherence to JS/React development with a functional approach (Eg, Ramda)
If you get stuck on anything small, just make a best guess. We're interested in problem-solving, and love initiative.
- Please be kind to any APIs you use, and adhere to rate-limit requests
- Does the app need to be responsive?
- What gets displayed when there's no image in a response?
- When the app is refreshed, do we get the same images every time?
We will supply this task by giving you a zip file. Please use the git repo the project is contained in, and add your commits there.
When you are finished you can send your submission back to us as a zip file that includes any changes you’ve made and any other information you think is useful.
We’re always trying to improve our hiring process. This task is designed for you to be able to show your JS/React development skills without spending a huge amount of time on it. We welcome any feedback on how this could be improved.
If you have any questions or need clarification, please email Troy at troy.daniels@drawboard.com