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

Enter Giveaways

Users can enter giveaways to win items. They can only enter once per giveaway. They have a certain chance of winning depending on the options the creator of the giveaway set.

Create giveaways

Users can create giveaways, they can choose the number of codes to purchase. Users can also add the number of items they would like to giveaway, increase the number of items, and add photos.

Accounts

Users can see the number of giveaways they entered. They can also go to the entered giveaways page in order to see a list of all the giveaways they entered. Here they can see if they won or not, get the promocode if they’re a winner, submit they code if they haven’t yet, and more. They can also see the number of active giveaways, which is the giveaways they created that still have winning items left. They can check the created giveaway page to see a list of all their created giveaways, the number of codes left, winning items left, and they can also delete their giveaways.

Previous
Previous

Homework Helper App (React Native iOS and Android)

Next
Next

Pied Piper - Freelancing project based on myDrive (Node.js, React, Typescript, Express, MongoDB)