Specifically:
1. now handling exceptions in the encryption process (according to voter's choice)
2. handling files in storage manager (now reading election parameters and system messages from files)
3. Controller's init() now already sets all the info and parameters. No need to call extra functions
4. some more changes to the method structure
Summary:
The initial code for the voting booth.
Some things are still missing:
1. comments EVERYWHERE
2. an implementation for the encryptor (program crashes when trying to encrypt PlaintexBallot)
3. the OutputDevice class should become a thread, (runnable with a queue of commands as the UI component)
Test Plan: Currently only simply run it with another main class.
Reviewers: arbel.peled
Differential Revision: https://proj-cs.idc.ac.il/D3
Still missing components:
1. An implementation of the encryptor (currently program crashes when trying to encrypt the PlaintextBallot)
2. The output device implementation should change to a runnable thread (with commands queue as the ui)
Also needs to add comments EVERYWHERE.
Interfaces were now shortened even more.
Many changes were made according to Arbel's instructions.
Most important change is now that the controller passes ALL questions for UI
to ask voter, instead of chunks of questions and back-and-forth messages
between the controller and UI which were always quite redundant.
1. Especially tried to fix the callback mechanism I previously used.
2. 'long sessionID' changed to 'int requestId'
3. Introduced a generic class VotingBoothResult
4. Quite some other local changes
Summary:
Planned some basic interfaces for my revised Voting Booth componenets.
No implementation yet, though...
Test Plan: There are none, yet
Reviewers: arbel.peled
Differential Revision: https://proj-cs.idc.ac.il/D2
Removed dependency on large Protobufs (BulletinBoardMessageList and BatchDataList).
Partial implementation of Sync Query.
Current version supports only H2 and MySQL (no SQLite support).