Decipher
Decipher is a freelancing project I was hired for. The goal of this project was to create a website were users, such as Streamers or Youtubers can create giveaways for items such as iPhones or game consoles. They can add multiple items and also increase the count of an item. Then they will choose the number of “codes” they would like the giveaway to have. The codes range from 1,000 - 50,000 the higher number of codes the lower the chance of winning for each user entering the giveaway is but costs more for the individual creating the giveaway.
Because many users could be entering the giveaway at the same time I needed to make sure the updated of the queries were atomic, meaning making sure there was no race conditions that would cause stale data. I also needed to make sure these codes could not easily be guessed, and users cannot enter twice. To protect from bots I implemented email verification using the Sendgrid API, and also bot checks by requiring users to pass a CAPTCHA before they can enter or create giveaways.
I worked on this project completely on my own, the individual who hired me thought I did a great job, which resulted in him choosing to pay me more than originally discussed.
I started this project October 7th 2020 and finished it on November 23rd 2020. This project was somewhat of a challenge, but it was fun to work on. Plus, the individual who hired me worked very closely with me, giving me great feedback and telling me exactly what he wanted.
Features:
Create giveaways
Enter in giveaways
Set number of codes for a giveaway
Images of items for giveaways
User verification through email verification and CAPTHCA
Access/refresh tokens
Atomically updates and is ACID complaint