Vending Machine With Java

Create a seamless coffee vending machine experience that replaces old-school vending machines

Coffresso is a VaaS (Vending as a Service) company. The business model is just installing their machines in company offices, charging a fixed price for it and a variable based on how much they consume.

These machines has a microchip to interact with the machine and the business logic developed by Coffresso. Through it, Coffresso can take control about things like stock, items, prices, etc...

Now our PM wants to have a better web application. But the developer of it is no longer in the company. Can you help us improve the app?

Ideal for

Middle developers

Available stacks


Required experience

Mid-level knowledge


Our CEO wants to scale the business and, due to the bad experience with the previous developer, she wants to create a well-experienced team to help her.

To do so, she wants to start with some features and fixes of the actual API.

  • She wants to be able to control how much money has been spent, totally and per item.
  • She also wants to offer a 5% discount per drink if the company has a higher consume ratio (> 5 items per day).

The actual CTO has defined some technical constraints that you should follow on every refactor or new code of this API. These are the restrictions for your PRs to be accepted:

  • Ensure you are not coupling the business logic with any framework. May be tomorrow we have to change something due to scalability issues...
  • The mission of the team is to create a better API, so please use design patterns to improve the actual base code and decouple this mess.
  • Code should be tested, ensuring that the API fulfills the business logic and we do not break nothing with a change.
  • The API should follows the REST API design principles (at least do not break the most important ones).
Vending Machine Challenge

Vending Machine Challenge

  • Solve the challenge and show your potential
  • Defend your solution by explaining your code.
  • Get feedback on your code from experts.
  • Build your technical portfolio with all your completed challenge 
  • Create an app and test your coding skills
  • Feedback from our expert Tech Mentors
  • A complete report of your skills - with the possibility of sharing it
  • Your own technical portfolio to use in job interviews


Mauro Gómez

Albert Romera is a FullStack developer at Rviewer and one of the reasons why this platform exists today.

He has been self-taught for as long as he can remember and learned much of his knowledge independently, even before graduating as a computer engineer. Later, he joined the Deliverea development team before joining Rviewer.

Start now this Vending Machine challenge

Ready to challenge yourself and build something you're proud of?

More coding challenges

Challenge by
Memory game
Create your own Memory Card game based on pairs of cards.
  • Full-Stack Developer
  • Junior · Middle
  • 4 h
Challenge by
Create a To-Do list API where the tasks and all their history of changes are stored on a Blockchain.
  • Backend Developer
  • Junior
  • Java · JavaScript · Python · + 5
  • 1 h
Challenge by
EuroVoting system
Build a new voting system with Blockchain, providing a decentralized database and ensuring the immutability of the data.
  • Backend Developer
  • Senior
  • Java · JavaScript · Python · + 5
  • 3 h

Ready to level up your interview skills?

Gain the confidence you need with our new FREE HANDBOOK on mastering coding interviews.