VendingMachine Coding Challenge for FoxCommerce
npm install
npm update
npm install typings --global
typings install
npm run build
Start local server on 3000 (http://localhost:3000)
npm run dev-server
Welcome to the FoxCommerce code challenge!
Brainteasers and algorithmic challenges are certainly fun and helpful, but we'd love to see a more real-life example of the code you write.
We've hand-crafted a coding challenge in our problem domain for you to tackle. We've designed the challenge to test your problem solving skills in addition to your communication skills.
Create a vending machine using react.js and any other technologies you wish. The vending machine can take any currency you wish, and can sell any products you wish. The vending machine should be API driven and respond to basic commands, such as pay and select product.
Your primary objectives:
Represent a basic data model that underlays the functionality. Prototype (quickly) a simple UI that allows the user to interact with the machine. Create at least one action in the UI that behaves the way the user would expect.
Things you don't need:
An API Backend. (Feel free to mock-data in the UI.) Persistence. (You can persist in-memory for now.) Full implementation of the machine. (One or two actions is enough.) Unit tests. (Really. We won't judge you.)
Please commit all of your work to a GitHub repository and share it with us once you are complete. Be sure to include instructions on how we might interact with the system. You have as much or as little time as you want.
What we are looking for
Thoughtfulness. Simplicity and speed. How do you communicate and incorporate feedback.
Some guidelines to help you get started
As you will notice, this is not a simple algorithms or computer science test. We are trying to get an idea for how you think and how you communicate as a teammate.
Some things you might want to consider doing to help us along:
Document your thinking (either in a PR or an Issue)
Why did you choose the frameworks and libraries you did? What functionality did you choose to focus on? To omit? Why? What were your design/architecture considerations?
Open issues with any questions you have.
What isn't clear to you? Which assumptions are you making because of lacking information? Feel free to make assumptions and proceed.