Eulercoder Project Series: Project Statement 2 โ€” Random Code Generator and CodeChecker

Vikesh Tiwari
Eulercoder
Published in
6 min readOct 8, 2017

We are back with Eulercoder Project Series ๐Ÿ‘‹!

We took a gap of one week to finish a couple of things in our project โ€” Fabulous Bot and a lot of things were happening in my personal life ๐Ÿ˜ช and Eulercoder team was also quite busy last week. I recently left Speedbox as a CTO (Iโ€™ll let you know why, later ๐Ÿ˜‰) and now solely focusing on Eulercoder.

Fabulous Bot is already running in our Slack community, go give it a try. If you havenโ€™t join our Slack community yet, I highly recommend you to join, you can get an invite here ๐Ÿ‘‰โ€” Eulercoder Community on Slack.

So letโ€™s get started with our second project.

Phase 1

Random Code Generator

Random Code Generator โ€” as the name suggests it will be generate random numbers. Now you must be thinking just random generators? really? There are hundreds of code snippets already available which can generate random numbers.

So, this is more than just Random Code Generator. Here are different type of codes that our system will be able to generate.

  • Serial Numbers (N9TT โ€” 9G0A โ€” B7FQ โ€” RANC)
  • Strong Passwords ( )8V)CC3[k6Hj )
  • Pronounceable Codes (azazer)
  • Giftcard/Voucher Codes (744-NRY-264)
  • Suffixed Codes (LRA-MEQ-A)
  • Country prefixed codes (US-GXZSYU)
  • Length โ€˜Xโ€™โ€” Letters and Digits (gYtpe4NB)
  • Pattern โ€” XX99??AA (XX9901AA)

Why? Whatโ€™s the use? ๐Ÿค”

There are lots of usage of this. You just need to spend some time, think the places where such random codes are used. Your Credit or Debit cards? Promotional codes maybe? In resetting a password Or Sending Unique Links for signups?

Many companies spend a lot of time in writing such codes and then creating a system which can validate the codes and verify it has been used before or not.

  • We are going to create a system which will generate such random codes and then keep them in our database.
  • We will have our API for generating random codes based on the cases and total codes required.
  • There will be API for validating whether the code has been used before or not.
  • Using our APIs, companies can generate thousands of random numbers and send them to their users once they get hacked ๐Ÿ™ˆ ๐Ÿ™‰.
  • Using our APIs, companies can send unique sign up links, promotion code, vouchers to their users/customers.
  • We will take care of everything for them from generation to validation.

Phase 2

Dashboard, Insights, Statistics, code details etc. ๐Ÿ“Š

  • There will be dashboard to generate codes, vouchers or random passwords. Just enter your campaign details, duration and type of code you need.
  • Statistics will usages of your codes based have based on location, time, date.
  • Send reports after the completion of the promotion to the Company Admin.
  • There will be lot of options that will be discussed later as we progress.

How are we going to build this?

Generating random codes is the base of the whole project so we need to create a system which can generate random codes blazingly fast. We need to have a good algorithm, a validator of random numbers, checker etc.

  • Generate of random number can be done using languages like โ€” C, C++, Python.
  • Backend can be written in NodeJs (Mostly) or in Go (Go is super scabable and faster but very less people actually know Go, including me ๐Ÿ™„)
  • Frontend will be mostly in React/Preact or in Moon (Much faster JS UI Library)
  • So, the languages which we are going to use โ€” C++/Python (Algorithm), NodeJS (Backend), MongoDB for database, Moon (For Frontend)
  • If you know any one of these very well, consider joining us on this project.

โš”๏ธ Deadlines โš”๏ธ

This is not a one week project. All Eulercoder Project wonโ€™t be one week project, we want out project to be service based which will be contributions developed with incremental methodology.

First Week of the Project

  • In the first week, we will try out to best to complete the functions which will actually generate the random codes based on different criteria.
  • Our frontend team will start the website development work from the first week itself, as the website will have page where user can generate numbers (API handling and all) and there will be few more static pages so we need to start it from the day one.

Later

  • Once we complete our core part then we can probably start working on the dashboard. Iโ€™m not setting up any deadlines for this at this moment.

How are we going to collaborate together ๐Ÿ‘จโ€๐Ÿ‘จโ€๐Ÿ‘ฆ ?

  • All the discussions related to this project will happen on Slack in โ€œproject-random_codesโ€ channel.
  • Based on your knowledge set and total number of people working on this, we will assign the tasks. Task assigning will happen in the same channel.
  • Once you agree to work on a task, you are free to set the deadlines. Make sure you try your hardest to meet the deadlines.

Who can work on this project ๐Ÿ’?

  • Anyone who has moderate level understand of the languages we mentioned. You are more than welcome to join us and contribute to this project.
  • To make sure that our master branch is clean, YOU WILL NEVER PUSH TO MASTER BRANCH. *(After a warning, user will be removed from the organization)
  • Fork this project in your Github, start working, once youโ€™re done with any feature or fix. Raise a PR, we will review your PR and if everything is perfect, your commits will be merged in to the master branch.

Finally, any specific terms ๐Ÿ“‹?

  • Source code can be made private at any stage. Also, all the contributor names will be made public on the website.
  • Eulercoder is the primary owner of the project.
  • Eulercoder will release this in public as a product or software. There can be little pricing depending on the extra features that will be added by the Eulercoder team.
  • Eulercoder is totally a non-profit organization, to keep up the work, to handle our daily operations and maintain our websites and hosting, we need to have a source of income.

Get Started ๐ŸŽ‰!

  • The very first thing you have to do is โ€” Join Eulercoder Community on Slack!
  • Head over to โ€œproject-random_codesโ€ channel and write a short intro, tell us what technologies you know and what you want to learn.
  • Tell us which part of the project, would you like to handle/work on.
  • Once you are in, fork random-codes repository in your profile.
  • Follow the folder structure and start working.
  • Raise a pull request, once you complete any feature or a fix.
  • Please, write proper commit messages so that our future collaborators can easily understand what your code does from your commit messages.

Thatโ€™s almost it.

Looking forward to work, collaborate and learn together.

We started Eulercoder with a mission to be the best computer science portal on the web. We need to do a lot of work, it will require extremely hard work, the content and the courses needs to be the best. We extremely value our readers and take each feedback very seriously. With this, today we are launching our Eulercoder weekly project series, I request you to join us. Letโ€™s improve ourselves as a developer and also contribute โ€” help everyone in becoming better at programming.

Subscribe to our Weekly Updates| Join Eulercoder Community on Slack!

Thank you!

Have something to talk about? Want to contribute to our Mission and Goal? Write on Eulercoder. Write an email to us or contact us for guest posts.

--

--

Vikesh Tiwari
Eulercoder
Editor for

Bots & Automation Engg, TexAu Founder, Ex-CTO | Past @getpenta, @slackhq @directi | ๐Ÿ’œ photography, traveling โœˆ๏ธ and reading ๐Ÿ“– | https://vikeshtiwari.com