If you understand UML your best bet is to first start off with a Sequence diagram that determines events for what needs to be done. Obviously you'll have to do some research to refine the Sequence diagram to have the functionality that you want at the right time.
Of course you'll have to add and remove objects as you do and implement conditions.
The easiest second solution is to interface this idea.
Basically construct interfaces that have the tools that you need (such as the display for the project, and the main ideas that you need).
For example, you could make interfaces such as VotingCenter (user interface that allows users to vote), VoteList (stores the votes), Security (most likely has some security-handling mechanism), etc.
I'm guessing you have a close deadline. The best thing to do is create an incredibly dumb and watered down version of the program that LOOKS like it does some of the main things and have someone (your professor, or client) review it and see if that's close to what they want. If they want more they'll just tell you obviously.
Your absolute best bet is to ask someone else who has done a similar project. I'm just giving you some ideas to help you get started. These methods always work for me when starting something from scratch.