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

HOW IT WORKS

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

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
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
  • 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

ABOUT THE CREATOR

Albert Romera

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

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

More coding challenges

Icon
Challenge by
Rviewer
Memory game
Create your own Memory Card game based on pairs of cards.
Medium
  • Full-Stack Developer
  • Junior · Middle
  • 4 h
Icon
Challenge by
Rviewer
Cartfidential
Create an e-commerce shopping cart based on Blockchain, executing and storing processes in a decentralized way.
Medium
  • Backend Developer
  • Middle
  • Java · JavaScript · Python · + 5
  • 2 h
Icon
Challenge by
Rviewer
PrivaTo-Do
Create a To-Do list API where the tasks and all their history of changes are stored on a Blockchain.
Easy
  • Backend Developer
  • Junior
  • Java · JavaScript · Python · + 5
  • 1 h