Skip to content

Instantly share code, notes, and snippets.

@jbenesch
Last active July 25, 2019 23:51
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jbenesch/6095635af1fbd6ad191a084a57180a13 to your computer and use it in GitHub Desktop.
Save jbenesch/6095635af1fbd6ad191a084a57180a13 to your computer and use it in GitHub Desktop.
Survey-Mart

Survey-Mart

Thank you for applying to be a part of the Walmart Labs Customer Experience team! A little about our team; We build internal tools that address specific business needs or inefficiencies within the larger Walmart organization. So whether that is helping users curate content on Walmart.com or building systems that help train machine learned algorithms for product recommendations, we are constantly challenged and tasked with building modern solutions to address the every day challenges that arise with running a business in which 95% of US households live within 10 miles of a physical store and which sees 300+ million visitors online a month.

Today we have been asked to provide a solution that will allow the business to quickly and easily gather feedback from customers after in-store purchases. We would like the ability to create ad-hoc surveys that feature a series of questions that will run on touch screen devices in stores and appear after a recent purchase by a customer. These questions will need to be short and allow a customer to select a rating from 1-5. The questions should be in large font, easy to read and have larger touch screen size 1-5 buttons below each one. We also need the ability to ask different questions based on the response of a previous question. So for instance, a user adding a survey should be able to ask a different question if the customer selects 1 versus a customer that selects 5.

So for this take home assessment, we'd like to see you design a proof of concept for the above challenge meeting the functional requirements outlined below:

Functional Requirements

  1. Please use Create React App https://facebook.github.io/create-react-app/docs/getting-started
  2. Please create a Github repo and commit your changes as you work through this assessment.
  3. We are looking for a client side only application, but please make use of localStorage to persist the data.
  4. Please don't worry about authentication and we are not looking for a complete/complex dashboard.
  5. The expectation is that we should be able to clone the repo, type npm install && npm start to load the application in our browser.
  6. Upon loading the application, we should be able to see a list of surveys created.
  7. We should be able to click a button to create a new survey.
  8. A survey consists of a series of questions, with a 1,2,3,4, and 5 rating score as available responses to each question.
  9. After creating a new question, we should then be able to create another question based on the response to the first question. ie. If I answered 2 for the first question, I can ask a specific question based on that response, if I answered 4, I can ask a specific question based on that response.
  10. I should also be able to ask a question based on a range. So if the user responded with a 3-5, I can ask another question based on that answer.
  11. At any point in time, we should also be able to revisit a question to edit it.
  12. Once we have completed creating a survey, we should then be able to preview it.
  13. Previewing a survey should only render one question at a time starting with the very first question along with the 1-5 numbered buttons below the question.
  14. Once we click on one of the numbered buttons, we should then be presented with the next question in our survey until we have reached the end of the questions.
  15. A customer should never have to answer more than 5 questions before reaching the end.
  16. Once we have completed taking a survey by answering all of the questions presented, we should then be presented with the answers we submitted.

Topics of discussion to keep in mind

  1. Data structures
  2. State management
  3. Testing

This survey app will be vital in our ability to immediately collect, analyze and correct poor experiences a customer may have had and prevent these poor experiences from happening again in the future. We look forward to the solution you present and are excited to review it with you and ask questions about your design choices and implementation techniques.

Once you have completed the survey app, please email a link to the github repo to jason.benesch@walmartlabs.com. We will review the app and then reply back with the next steps.

Thank you!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment