elections project

Elections project is project running for 11 years, since national elections on 2004. It is a project that gave us experience with php, web servers, communication with other people, specially people from the media and some money. But we (George Koukas and I) never talked in public about the project.

George and Me (left to right)


The purpose of the system is to enter data as they flow from election stations to central office of prefecture and present results almost in real time to the media and the region’s site. Also help the officers to control the procedure and have an insight of the bottlenecks or any other problems arising during the process. The testimonial of prefecture’s personnel is that election process is faster and error free with our system. Also provides aggregated results and reports for further use for the rest of counting procedure. Also historical data are kept in to the system open to the public, which makes it a loved tool to the politicians or wanna be politician of the region.

In the next image you can see an overview of the project.


Project overview

As long time running, low budget projects there are many legacy systems and technologies involved. It evolves third party applications that are even more legacy than some parts of our system.

Data entry application, which also contains tools to setup elections, is build with Visual Basic 6 using mysql as its data store. Communication of VB and mysql is done via mysql odbc driver. There are two web applications for presenting results. The first one, which presents prefecture’s results, is build with flat php and the newer one, which presents results from 5 prefectures, is build on top of Symfony 2 framework. The mobile application is a native Android application.

Data entry application and first web application use the same database schema and data are transferred ftp-ing sql dumps. The second web application that aggregates data from our data entry and the data from the other four prefectures uses a newer schema (concrete inheritance, normalized etc).


Domain model of the new web application


It is updated from text files that are ftp-ed to that web server. Data servers are updated either with replication or transfer of sql files. We don’t use REST api other than the mobile application. This is done due to legacy (one of 3rd party applications is a Cobol application) applications that have to communicate.

Local database server. Still does it! Since 2004.

In total there are data of all elections held in Greece since 2004, that counts to 20 elections (including second rounds of city elections), aggregating to more than 16000 candidates and more than 2 million votes!

The timeline of the project is

In collaboration with George Koukas, we developed a system for election results presentation over the internet. It is a distributed application. The data entry (written in Visual Basic) part is installed locally in the data collection location, where data entry is done and sends data to the web server. There is the presentation application written in php. Gnosis Computers sold the application to the Fthiotida Prefecture and it was used for: 2004 National elections, 2004 EU parliament elections. The web server was located in Gnosis’ basement connected with an ISDN connection to the internet.

The first upgrade of the elections application. It was to support the Municipality and Prefecture elections. It was used by the Prefecture of Fthiotida that year. Web hosting was moved to a data center in USA.

The second upgrade of the elections project. This time only web-design changed. It was used for National Elections 2007. It was used by the Prefecture of Fthiotida that year.


Without any modifications or upgrades the product was used from the Fthiotida Prefecture for 2009 National Elections.

This time there was an upgrade to support the new local administrator format that was applied. Specially for regional elections I build a little site sterea-ekloges.gr to present results for the whole region. It aggregated results from the five prefectures that form prefecture of Sterea Ellada, in political party and city level only, and presented them, with colored maps and tables. There is also a back-end application for defining parameters and if needed manual entry of the results. This application is written with symfony 1.4 and propel.

Just minor bug fixes and changes to the communication with the other regions.

I had to build an extra site to collect and aggregate results from the five regions of the prefecture of Sterea Hellas, but this time in all levels, and present them. Symfony 2, doctrine, responsive template. Also the mobile application was released that year. Web applications are hosted to Azure cloud. My friend George is an Azure expert 🙂

ΣτερεαΕκλογες - Εθνικές 2015 2015-04-26 20-36-49

No new code developed, just maintained previous software.

Comments are closed.