EuroVoting System

Build a new voting system with Blockchain, providing a decentralized database and ensuring the immutability of the data.

In the last Eurovision edition (International European singing competition), the organization was the victim of a series of cyberattacks aimed at cutting off communications between countries to prevent voting.

Due to these incidents, the organization has decided to develop a new voting system to ensure security in future editions.

The organizers hired you to bring your talent and create a new voting system based on Blockchain, providing a decentralized database and ensuring the immutability of the data. It's time to give your best!

Ideal for

Senior developers

Available stacks

Java · Python · TypeScript · JavaScript

Required experience

Advanced knowledge


The aim of this REST API is to add and retrieve the votes between countries and show the current state of these votes. To do so, you have to build an API that allows the countries to submit a vote to another country and also retrieve the votes submitted from all countries.

To provide a good security layer, all the countries will be attached to that Blockchain network (with a P2P network) sharing the transactions. This will give you an extra security layer against any kind of cyberattack, but also traceability of what's happening.

So, when the voting endpoint is called, the API will store the vote as a transaction and then generates a new block that will be added to the Blockchain. Finally, the node will update the Blockchain to all nodes that are connected to the P2P network.


The workflow of the app is as follows: 

  • Vote request is received
  • Check that the given `originCountryCode` has not already voted (you could find the list of countries in the OpenAPI spec fileIf it has been used we return an error. If it has not been used, we save the vote as a transaction and generates a new block to add to the Blockchain
  • Add the new Block to the Blockchain
  • Update the Blockchain in all the active nodes
  • 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 
  • New project built to 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

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 EuroVoting System challenge

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

More coding challenges

Memory Game
Create your own Memory Game based on pairs of cards.
4 h
  • Android
  • iOS
  • Junior
  • Middle
  • Senior
Difficulty Medium
Create an e-commerce shopping cart based on Blockchain, executing and storing processes in a decentralized way.
3 h
  • Python
  • Java
  • JavaScript
  • Typescript
  • Middle
Difficulty Intermediate
Create a To-Do list API where the tasks and all their history of changes are stored on a Blockchain.
3 h
  • Python
  • Java
  • JavaScript
  • Typescript
  • Junior
Difficulty Basic

The #BlockchainCodeathon is here 🔥! Solve a Blockchain challenge, get feedback on your code from experts and win awesome prizes!