Technical test for back-end and full-stack developers.
- Fork this repo.
- Create a new branch.
- Understand the functional and non-functional requirements.
- Ask any questions to [email protected]. (you have 1 chance, make it worthy)
- As your first commit, copy your questions and David's answers, and design the "architecture" of your service. Upload a sketch/photo/readme, etc explaining how your service is going to work, and when do you think you can deliver the final product (we expect you to deliver it in less than 2 days). If you are applying for a Fullstack position, send a wireframe with your proposed solution.
- Have fun coding this challenge. Take into account that the data provided could have inconsistencies, make sure to handle them.
- If you find blockers, keep moving and get them solved later, please write them down in a markdown file inside your repo.
- Answer the Improvements and trade offs section.
- Create a Pull Request (in your own fork), add 'davidcp90' as a reviewer, and send an email to [email protected]
InstaStore is a microservice in charge of selecting the closest "convenience" store to deliver a groceries order to our B2B clients.
- We expect you to deliver idiomatic code in a way that is easy to read and follows the accepted guidelines in your area of expertise.
- You should write it on Node.js with Express.js. Libraries, transpilers , etc are up to you.
- If you are applying for a fullstack position, front-end must be build with React.
- Endpoints are fast (less than 300ms).
- Endpoints respond error codes that makes sense to the case.
- Please provide documentation for the endpoints you create.
- If you are applying for a fullstack position, front-end must be easy to use and it should have a nice look & feel.
- Our B2B clients should be able to consume an endpoint that provides them the following information:
- storeId
- storeName
- isOpen
- coordinates
- nextDeliveryTime
- The endpoint returns the closest store available
- We need to keep track of each call to the endpoint
- The UI should capture the address/position from a user
- After capturing the address it should request the closest store and show the address captured and the closest store in a map, and their details (isOpen, next delivery time, coordinates, storeName, store phone number and email).
- It should manage errors and unexpected requests. Users should always know what to do.
- App should include a top bar with a logo (go nuts)
- The app should be served through a CDN
- What would you improve from your code? why?
- Which trade offs would you make to accomplish this on time? What'd you do next time to deliver more and sacrifice less?
- Do you think your service is secure? why?
- What would you do to measure the behaviour of your product on a production environment?