Midterm Report of Stirme at GSoC
The project is in a state where one can manually create elections and the user can cast his/her vote from the GUI for any available election. For now the remote capabilities aren't present.
Our main objective until now is to design and implement an easy to read and understand code turning this project also into an educative one for children and not only as a decision tool.
We've been unsing our time trying to figure it out how to make the project in the cleanest way possible. First starting with a sqlite based solution for the persistance of the data and then moving to a simpler serialization of it and saving the data into a text file.
For the communication layer we still have many doubts concerning our possibilities: xml-rpc, pyro or tubes.
The architecture is as following:
A VotingCentre object contains a list of available elections in which the users can vote. Each election has a list of choices available and the votes already casted as well as the metadata from the election like dates, signatures, hash, etc. The choices are objects containing all the metadata for each available choice like the title, description and an url for further information about that option. The votes are objects containing each casted votes, it means it holds the choice and the signature from who casted the vote.
Over this structure we'll implement the communication layer but first we want to make it full featured to work in a local state.
For the security level we're waiting for the security group of OLPC since they're working on stuff we can use so we don't duplicate efforts doing a cryptographic framework just for Stirme.