Beer tap dispenser API

Develop an API to manage self-service beer tap dispensers installed in music festivals

About this Challenge

Ever heard of self-service beer tap dispensers? These are a new concept of drink dispenser that is already being used in many international music festivals to avoid long queues and crowds.

The user brings his or her glass and self-serves the beer. The system registers the amount dispensed and calculates the price of the service, transferring this information to the bar counter. Great innovation, isn't it?

Well, for this challenge we propose you to develop the API that controls this system and calculates the price of the drinks for each attendee, based on the amount dispensed.


Ideal for

Middle / Senior developers

Available stacks

Java, JavaScript, Python, PHP, TypeScript

Required experience

Intermediate knowledge

How it works?

The aim of this API is to allow organizers to set up these bar counters allowing the attendees self-serving.

So, once an attendee wants to drink a beer (0,0潞, we are not promoting any kind of alcohol consumption! 馃憖) they just need to open the tap! The API will start counting how much flow comes out and, depending on the price, calculate the total amount of money.

You could find the whole description of the API and send some requests to a mock server at this URL.

Workflow

The workflow of this API is as follows:

  1. Admins will create the dispenser by specifying a flow_volume. This config will help to know how much litres of beer comes out per second and be able to calculate the total spend.
  2. Every time an attendee opens the tap of a dispenser to puts some beer, the API will receive a change on the corresponding dispenser to update the status to open. With this change the API will start counting how much time the tap is open, and be able to calculate the total price later
  3. Once the attendee closes the tap of a dispenser, as the glass is full of beer, the API receives a change on the corresponding dispenser to update the status to close. At this moment, the API will stop counting and mark it closed.

At the end of the event the promoters will want to know how much money they make with this new approach. So, we have to provide some information about how many times a dispenser was used, for how long, and how much money made with each service.

The promoters could check how much money was spent on each dispenser while an attendee is taking beer! So you have to control that by calculating the time diff between the tap opening and the request time
HOW IT WORKS
  • 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 
WHAT WILL YOU GET
  • 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

ABOUT THE CREATOR

Mauro G贸mez

Mauro G贸mez is the CTO and Co-Founder of Rviewer. Software Engineer with more than 7 years of experience both as a developer and as a researcher in the field.

He has done research in prominent places such as the Barcelona Supercomputing Center, and worked in leading companies such as Adsmurai, as Team Lead and Big Data Developer, or Sabentis, evolving its SaaS platform.

Start now this Beer Tap Dispenser API

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

More coding challenges

Icon
Challenge by
Rviewer
Event Emitter
Create an event emitter that lets you launch asynchronous events to teammates.
Medium
  • Backend Developer
  • Senior
  • JavaScript 路 Vanilla
  • 1 h
Icon
Challenge by
Rviewer
Optional, a new hope
Fight against the evil Lord NullPointerException implementing your own version of the Optional (based on the Star Wars universe)
Medium
  • Backend Developer
  • Middle 路 Senior
  • Java
  • 3 h
Icon
Challenge by
Rviewer
Spotlist API
Develop an alternative to the Spotify API that lets indie artists easily manage their playlists.
Medium
  • Backend Developer
  • Middle 路 Senior
  • Java 路 JavaScript 路 Python 路 + 5
  • 4 h