What I Learned Building An Online Voting Platform

Hello there, I am Emmanuel – a Junior Developer at Astract9 and this is a short exposé on my first major project. Late last year, we got a brief to work on an online voting platform for one of our clients, an international NGO, who wanted to award entrepreneurs €5000 each in 6 cities across […]

Hello there, I am Emmanuel – a Junior Developer at Astract9 and this is a short exposé on my first major project. Late last year, we got a brief to work on an online voting platform for one of our clients, an international NGO, who wanted to award entrepreneurs 5000 each in 6 cities across Africa, 3 from Nigeria and one from Mali, Somalia, and Somaliland. The campaign was slated to run for one week.  Each of the 6 cities would have a special page that would link to the profiles of 5 entrepreneurs who were contesting for votes in that particular city. The rule was simple, visitors to the platform could only vote for one entrepreneur per location. We decided to use WordPress because it is simple and easy to deploy.

 

Easy right?

We spent the holidays in communication with the client representative, working on shaping the landing page to meet the objectives. One of the main concerns of the client was security. The client needed to make sure the voting process was secure and fair. We proposed using captcha but this did not solve our problem because we needed to make sure the voting was limited to one vote per nominee per location (as much as possible). I did some research and discovered an Epoll V3.0 Pro Premium voting plugin that worked based on OTP authentication which was what we decided on to provide some measure of security.

Epoll V3.0 Pro Premium

It also had some other features we found really useful like the unique voting per location,  a result display feature that showed the total number and percentage of total votes each nominee had gotten as voting was ongoing, and the total number of votes per city. The voting system worked in such a way that before a voter could cast their vote, they would need to input their email address, wait to receive an OTP in their email, and then subsequently input the 4 digit code to confirm the vote – this was a preventive measure to block spam voters.  I then had it installed and set up the features. We tested it in-house a couple of times and it worked as advertised. It was also sent to our client and he verified that it was fine after testing it extensively.

It was go time!

On the morning of the official voting launch day, we were to move the website from our staging area to the live hosting, the instant the voting started, we experienced a massive surge in traffic – and discovered rather grimly that we had underestimated the projected traffic. Also, the site began experiencing some security issues and stopped responding completely. Apparently there was an issue with the hosting which resulted in an error with the SSL certificate. We contacted the hosting provider to resolve the issue, and they mentioned it would take between 4 -12 hours for any changes to fully propagate, but the problem was – we did not have 12 hours. We needed the website back up immediately, plus we were not certain the security issues would be resolved with this particular hosting provider.

Understandably, I was very distraught.

We decided to move to a dedicated server, and the platform had to be taken down for a couple of hours. At this point, we were put on a deadline by the client, who at this point was seriously considering canceling the whole project since it was hampering their plans.

[button size=” style=” text=’TALK TO US’ icon=” icon_color=” link=’https://astract.com/getstarted/’ target=’_blank’ color=” hover_color=” border_color=” hover_border_color=” background_color=” hover_background_color=” font_style=” font_weight=” text_align=” margin=”]

Eventually, we got the website up we were doing well with traffic. Our voters were receiving one-time-password codes ‘OTP’ to confirm their votes. And then we encountered another problem – we got a WARNING email from our hosting provider that we were sending over 100 mails every hour which meant their automated anti-spamming ban would soon go into effect. After a bit of troubleshooting, we redirected the mailing through Gmail but we also realized that this was a temporary solution. We eventually settled on SendGrid, and this solved our mailing issue.

In the end, we recorded over 16000 votes in total.  I learned that in software development, nothing ever goes as planned, that the value of research cannot be overstated, and the value of always thinking from the user perspective and devising multiple contingency plans.  Do you want to share some of your project mishaps with us? We would love to hear your stories and share knowledge. Leave us a message at hello@astract.com.

Do you want to find an effective digital solution for your business

[button size=” style=” text=’CLICK HERE’ icon=” icon_color=” link=’https://astract.com/getstarted/’ target=’_blank’ color=” hover_color=” border_color=” hover_border_color=” background_color=” hover_background_color=” font_style=” font_weight=” text_align=” margin=”]

And let’s get talking!


Author: Emmanuel Edidiong

Read More From Our Blog

Location

7a Milverton Rd, Eti-Osa, Lagos, Nigeria.

Email Address

hello@astract.com

Phone Number

07016504685

Connect With Us