Open Sourcing SmartElect: Libya's SMS Voter Registration System | Caktus Group
The Caktus team at the SmartElect launch.

We are proud to say that, with the Libyan High National Elections Commission (HNEC) and consultative support from the United Nations Support Mission to Libya, we have open sourced their elections management platform today under a permissive Apache 2.0 license. Open sourcing means other governments and organizations can freely adopt and adapt the elections tools which cover nine functional areas. The tools range from SMS voter registration, the first of its kind, to bulk alerts to voters and call center support software. You can learn more at our brand new SmartElect homepage. This is the cumulation of two years of work, so we’re incredibly excited to share SmartElect with the rest of the world.

With an established partner network, others interested in adopting or adapting this code can easily find experienced partners who've worked on this project before. The network consists of those of us that worked on the original code base and can provide commercial support.

How SmartElect got its start

Initially, the building of SmartElect was entirely driven by the Libyan High National Elections Commission’s need for a voter registration alternative. The interim Libyan government and HNEC faced extraordinary challenges in access to elections: challenging terrain, nomadic populations, and civil unrest. They turned to text message voter registration as a low-cost and more accessible alternative to reach more people safely.

Caktus joined the team at the start of HNEC’s efforts in Fall 2013. We then took over as a primary contractor after the February 2014 elections and open sourcing was immediately one of HNEC’s priorities for us. This thrilled us since we have long believed in the importance of open source to building affordable tools for others. We’ve been steadily working on open sourcing the project since then while simultaneously continuing to develop and strengthen the system for Libya.

SmartElect took shape as we discussed amongst ourselves the best way to grow the open source community around it.

What can SmartElect be used for

We hope to see SmartElect used for other organizations and governments. While the system used for Libya was highly customized to support Libya's electoral process, the SmartElect features have been generalized for open source use and must be adapted to each unique electoral process. Since each government is different, customization will be necessary. SmartElect includes the following adaptable components for governments to select from:

  • Voter registration and polling center management
  • SMS voter registration
  • Citizen call center support
  • Voter roll generation (a truly tricky task that involves literal tons of printed rolls)
  • Dashboards that show the public real-time registration data
  • Bulk messaging to registered voters
  • Voter registration verification tools
  • Text message reporting tools for poll workers
  • Quick vote tabulations to improve electoral integrity (built by

How we open sourced SmartElect

To open source Libya’s system, we examined two years of work—approximately 8,482 team hours since Fall 2013 and 83,095 lines of code. (We had some fun crunching the numbers and the code in length is equivalent to 1,179 sedans lined up end to end.) Parts of the system were built with open sourcing in mind, but there was much untangling to do between Libya’s system and what could be released securely and usefully. Our team of developers worked incredibly hard with our partners at HNEC to ensure the open source code met the highest security and usability standards. We also had a third party security firm audit both Libya’s system and SmartElect for potential technical vulnerabilities. We’re happy to say they gave us a clean bill of health.

The technology behind SmartElect

SmartElect is built using Django, the open source framework we specialize in and RapidSMS, a Django-based framework we helped UNICEF build especially for SMS tools. Django’s tagline, “the Web framework for perfectionists with deadlines,” is a true reflection of what this project needed. In the original development, there were elections deadlines looming and the weight of knowing we needed to build something quickly and well to support a new democracy.

Who was involved in building SmartElect

A system as complex and robust as SmartElect had many key players. Reboot, a consulting firm, first got the technical experts together so we could partner with HNEC, so we owe them a great thanks for connecting us before they left in the initial phase of the Libya project. As lead on the project, we subcontracted with Elliott Wilkes, the future principal and co-founder of Forsa Consulting, for in-country coordination and project management (an invaluable role). Together with our developers, Praekelt Foundation, Ona Data, and the MIS Department all provided critical components of Libya’s system. At HNEC’s behest, Caktus took the lead on open sourcing the code base.

What our hopes are for SmartElect

We’re looking forward to seeing new iterations of SmartElect take place as other developers build upon HNEC’s work. We’ve created a developer’s mailing list and a partner network to support both developers and organizations interested in adopting or adapting SmartElect. We’re excited to see what new versions of the software will take shape.

Read our official press release

Lead Developer Vinod Kurupmakes the repo public Lead Developer Vinod Kurup makes the SmartElect repo public.

SmartElect Team

Download Shipping Faster: Django Team Improvements
blog comments powered by Disqus