SmartElect is a free open source platform to build an SMS voter registration system and the tools needed before, during, and after an election to support it. It includes multiple components including web-based administration, voter roll generation, parallel voter tabulation, and more.
SmartElect was built by many technical and consulting partners hired by Libya’s High National Elections Commission and with consultative support by the UN Support Mission to Libya. Caktus Group was the lead technical implementer and responsible for the code base. You can learn about all partners in the partners section.
You are free to use any part of SmartElect you like. Please mind the Apache 2.0 open source license agreement.
SmartElect uses the Apache 2.0 license, a permissive license that allows developers to use the software for any purpose and to distribute modified versions under other licenses.
SmartElect is a free open source platform. You can access the code via GitHub. The code represents the open-sourced components of the Libya SMS voter registration system. You can freely customize SmartElect to your needs with developer support. Per the open source license, there are requirements for sharing changes. If you would like the original creators of the system to work on customization, you may request their assistance at [email protected]. You can also have any developer work on it.
Prior to open sourcing SmartElect, Caktus Group, the technical lead, had a third party firm assess the code for vulnerabilities using common attacks. The code itself was reliable and did not experience security compromises across two Libyan elections in 2014. Each implementation of SmartElect itself, however, will require additional checks for code quality and vulnerabilities.
Please join our developers’ mailing list and ask your questions there. The original developers of the system, Caktus Group, will be monitoring the list. We hope that as adoption grows, other technical experts can join Caktus in mailing list maintenance and oversight.
SmartElect is a mix of SMS and web-based tools. The SMS components were built with RapidSMS, an open source framework created by UNICEF. The web-based portions were built with Django, an open source web framework.
Yes, SmartElect uses Transifex to support localization. It enables easy toggling between multiple languages.
Volunteers maintain SmartElect. If you have a development team, they can use the existing code base as a guide to implement your own system. You can send specific questions about the code to our developers’ mailing list.
SmartElect relies on the robustness of the volunteer open source community. You can monitor updates by reviewing contributions in Github.
Each deployment of SmartElect is unique and reflects local electoral practices. Those seeking to implement SmartElect should have a means for contacting registrants, have a means to validate that registrants can vote, and be able to identify and characterize voting locations. Implementers should arrange for a contract with Mobile Network Operators (MNOs) to have a phone number, ideally a short code, that citizens can text. Alternatively, for elections that are not national or are smaller in size, third party tools such as Twilio can also work.