Author Archives: Waldemar Bautista

Halalan 1.5.0 Released

Multiple election instances, voter page for viewing/printing/downloading of votes, lots of refactoring, updated system requirements, and dropping of PostgreSQL support.

Download it here.

1.5.0 20100614
— All changes from 1.5.0-alpha
— Added minor enhancements
— Fixed minor bugs

Wikifying the Documentation

Wikifying may not be a word but the (little) documentation of Halalan is now using the wiki provided by Google Code.

Link is here:

Here’s hoping that using a wiki may improved the quality and quantity of the documentation.

Halalan 1.5.0-alpha Released

Multiple election instances, voter page for viewing/printing/downloading of votes, lots of refactoring, updated system requirements, and dropping of PostgreSQL support.

Download it here.

1.5.0-alpha 20100209
— Added a voter page wherein viewing/printing/downloading of votes by the voter is possible
— Added json.js
— Added support for multiple election instances
— Fixed minor bugs
— Refactored admin controller to use CI’s validation library
— Removed PostgreSQL support (lack of manpower)
— Updated system requirements (PHP 5.x.x, MySQL 5.x.x)

Multiple Election Instances

A new feature is slowly coming in to Halalan. This is the ability to hold different elections simultaneously. This is in respone to the need of the UP Diliman student council elections where different precincts have different closing times and some other issues. This feature will mostly answer the stated need but will also take into consideration other use cases to make Halalan as general as possible.

This post will discuss the changes in the administration side of Halalan. The voting side will be tackled in another post.

Elections Page

This is a new page in the admin side. An election is (as of now) composed of only its name and its parent. An election can be linked to another election to facilitate managing of connected elections. As of now, only two-level (parent-child) elections are possible. A parent election is the one who has no parent election. A child election is the one who links to another election. The idea behind this parent-child link is if a precinct holds a college-level and university-level elections at the same time then the parent will be the university-level and the child will be the college-level. This way, the precinct can close the college-level election anytime it wants because it has the sole control over it while the university-level election will remain running since some precincts may still be voting under it. An advantage of this is voting for the university-level election (parent election) can be statistically broken down to the college-level election (child election). In other words, votes for a, say university student council chairperson, can be broken down to how many votes each college has. One more thing to point out is that starting/stopping a parent election will also start/stop all its children election. On the other hand, starting/stopping a child election will only start/stop itself. This is also true with regards to showing/hiding election results.

One of the functions of this page is to add/edit/delete election instances. An election is closely tied with the other components (e.g., positions, voters, candidates) so modifying one has repercussions all over the system. It is strongly recommended that once an election has been started to never edit or delete it unless its data are not needed anymore or it is long over. Another function of this page is to control the status of an election whether it is running or not and to show/hide its results. Another thing one can do in this page is to view all positions related to an election which brings us to the next page.

Positions Page

As mentioned before, one can view all positions related to an election in the elections page. This is because an election is directly connected to positions which is the only change in this page. A position should now be tied to one or more elections in addition to its usual elements such as name, maximum, ordinality, etc. since an election needs some positions.

Candidates Page

The only change here is that a candidate is now required to run in a specific election. Choosing an election will change the position dropdown to reflect all positions available under the chosen election only.

Voters Page

Just like in the candidates page, voters now also belong to elections. The main difference is the a candidate belongs to only one election and one position while a voter may vote in one or more elections and one or more positions.

In Summary

This post may not be clear enough to be understandable so here is a list that hopefully will make things clearer.

  • Elections are created. A parent-child election may exists. Actions done (start/stop election and/or show/hide results) to the parent will happen to the child but not the other way around.
  • Positions belong to one or more elections.
  • Candidates may only run for one election and one position.
  • Voters may vote in one or more elections and one or more positions.

If questions remain unanswered, please consider joining the Halalan mailing list and start a discussion there.

Admin Reloaded

The admin side of Halalan recently received some changes. It now uses CodeIgniter’s Form Validation library instead of the manual and tedious error-checking in the previous releases. With all the changes that happened, some bugs may have crept into the code. Helping in testing the changes is very much appreciated.

Here’s how to test the recent changes:

  • Checkout revision 550 of the 1.x.x branch (e.g., svn checkout -r 550 halalan-test)
  • Input the database settings at system/application/config/database.php
  • Go to the Halalan URL + install (e.g., http://localhost/halalan-test/install)
  • Copy the generated configuration to system/application/config/halalan.php
  • Update: For easier installation, just copy this halalan.php to system/application/config/ and change $config['halalan']['image_trail_path'] and $config['base_url'] to reflect your settings
  • Create writable directories: public/captcha, public/uploads/logos, public/uploads/pictures, public/uploads/csvs
  • Update: Make sure that the folder specified in $config['halalan']['image_trail_path'] is also writable
  • Login to the system and play with it

If any problems are encountered, send an email to the mailing list or post a comment below.

1.x.x in Branches, 2.x.x in Trunk

1.x.x is now found in branches. Only bug fixes are expected to be made but some necessary features (as requested by users and we deem necessary) cannot hurt. On the other hand, fresh ideas are very welcome for 2.x.x. Trunk will be started from scratch and the development of 2.x.x will be done there.

Halalan 1.4.0 Released

Realtime results and results per position.

Download it here.

1.4.0 20090307
— Added admin option to clear login timestamp
— Added viewing of results per position
— Added realtime viewing of results
— Added minor enhancements
— Upgraded to CodeIgniter 1.7.1
— Upgraded to jQuery 1.3.1