COMP 204
Use Case for Voting System


System Startup Use Case
The system is started up when the operators turns the switch on the panel to the "on" position. If the welcome screen appears then the machine can begin servicing - ending when the operator turns the switch to the "off" position.

Actor Type: Administrator
Administrator Session Use Case
The administrator session begins when the admin enters a valid username and password. If the username or password are invalid, an error screen is displayed, and no session is started. The administrator is allowed to perform one or more tasks, choosing the task each time from a menu of options. THe session will initiate the appropriate task. After each successful task the administrator is asked if he/she would like to perform another task. If the task fails for any reason, an error screen is displayed and the user is asked if he/she would like to perform another task. When the administrator is finished with the session, the session is closed.

Administrator Update Documents Use Case
An administrator selects the update documents task from the session options list. The administrator chooses what document type to update based on various categories (election, candidate, etc.). The user is then asked to provide the documents to the system. If the task fails, and error screen will be displayed and the user is asked to input the documents again, if the task fails a number of times, the task is ended and the user is asked if he/she would like to perform another task. Once a document is provided, the user is asked if he/she would like to update another document. This continues until the user is finished, at which point the user is asked if he/she would like to save the changes made. If the user answers "no", the changes are discarded and the task is ended, sending the user back to the administrator session. If the user answers "yes", the changes are committed to the system, the task is ended, and the user is sent back to the administrator session.

Administrator Talley Use Case
An administrator selects the talley task from the administrator session option list. The administrator chooses what election he/she would like to talley the current results for. The system then talley's the results for the specified election. If the talley fails, an error screen is displayed to the administrator, the administrator has the option of attempting to run the talley again, or exiting the task. If exit task is chosen, the task is ended and the administrator is returned to the administrator session. If the talley is successful, the administrator is presented with the results. The results can be used in the update documents use case. The task is ended and returned to the administrator session.

Administrator Create Election Use Case
An administrator selects the create election task from the session options list. The administrator is presented with a series of choices: What is the scope of the election (national, state, local). When is the election to be held (single day, length of time). Proper error handling will be done, dates will be checked and if a date is invalid the user must enter a new date or exit. After all questions are answered satisfactorily, the administator is asked if he/she would like to save the changes. If the admin answers "no", the election is discarded. If the answer is "yes" the election is saved. The admin is then returned to the administrator session.

Administrator Add/Delete Candidate Use Case
An administrator selects the add/delete candidate task from the administrator session options list. The administrator then selects the appropriate election to add/remove a candidate. The admin then selects if he/she wants to add or remove a candidate. If add is selected, the user is then asked to enter the name and personal information about the candidate. If delete is selected the admin is presented with a list of candidates to delete. The admin selects the desired candidate to be deleted and presses 'ok', otherwise pressing 'cancel' to not delete anybody. When completed the admin is asked if he/she would like to save the changes, If the admin answers "no", the changes are discarded. if the answer is "yes" the changes are saved. The admin is then returned to the administrator session.

Administrator Create Ballot Use Case
An administrator selects the create ballot task from the administrator session options list. The administrator then selects the appropriate election to create a ballot. The admin is presented with a list of election candidates which can be placed on the ballot. The admin selects the candidates that should appear on the ballot and presses 'ok' or 'cancel'. If 'cancel' is pressed the task is ended and the administrator session is presented. If 'ok' is selected then a ballot is created. If the task fails for any reason, an error screen is displayed and the admin is asked if he/she would like to perform the task again, continuing until the task completes or the admin cancels the task. If completed the admin is asked if he/she would like to save the changes, If the admin answers "no", the changes are discarded. if the answer is "yes" the changes are saved. The admin is then returned to the dministrator session.

Administrator Manage Voters Use Case
An administrator selects the manage task from the administrator session options list. The administrator then selects the appropriate election to manage the voters. The admin is presented with a list of voters which can be managed for this election. The admin selects the voter to manage, and then updates the voter's attributes (such as if he/she can vote in the electoral college, etc.). If the task fails for any reason, an error screen is displayed and the admin is asked if he/she would like to perform the task again, continuing until the task completes or the admin cancels the task. If completed the admin is asked if he/she would like to save the changes, If the admin answers "no", the changes are discarded. if the answer is "yes" the changes are saved. The admin is then returned to the dministrator session.

Administrator Report Results Use Case
An administrator selects the report results task from the administrator session option list. The administrator chooses what election he/she would like to report the results for, only elections that are completed will be selectable. The system then report's the results for the specified election. If the report fails, an error screen is displayed to the administrator, the administrator has the option of attempting to run the report again, or exiting the task. If exit task is chosen, the task is ended and the administrator is returned to the administrator session. If the report is successful, the administrator is presented with the results. The results can be used in the update documents use case. The task is ended and returned to the administrator session.

Administrator Manage Administrators Use Case
An administrator selects the manage candidate task from the administrator session options list. The admin then selects if he/she wants to add or remove an administrator. If add is selected, the user is then asked to enter the name and personal information about the administrator. If delete is selected the admin is presented with a list of administor to delete. The admin selects the desired administrator to be deleted and presses 'ok', otherwise pressing 'cancel' to not delete anybody. When completed the admin is asked if he/she would like to save the changes, If the admin answers "no", the changes are discarded. if the answer is "yes" the changes are saved. The admin is then returned to the administrator session.

Administrator Set Voting Policy Use Case
An administrator selects the set voting policy task from the administrator session options list. The administrator then selects the appropriate election to set the voting policy. The admin must choose the new voting policy (single day, length of time). Proper error handling will be done, dates will be checked and if a date is invalid the user must enter a new date or exit. If the task fails for any reason, an error screen is displayed and the admin is asked if he/she would like to perform the task again, continuing until the task completes or the admin cancels the task. If completed the admin is asked if he/she would like to save the changes, If the admin answers "no", the changes are discarded. if the answer is "yes" the changes are saved. The admin is then returned to the administrator session.

Actor Type: Voter
Voter Session Use Case
The voter session begins when the voter enters a valid social security number, voter id number, and password. If the information entered is not valid (i.e. there is no registered user with that information) an error screen is displayed and the user is asked to enter the information again, or register. If the information is correct, the voter session begins and the voter is allowd to chooose one or more tasks from a menu of options (if the voter is actually a electorate voter, he/she will have a greater list of options). The session will initiate the appropriate task. After each successful task, the voter is asked if he/she would like to perform another task. If the task fails for any reason, an error screen in displayed and the voter is returned to the last "valid" state, at which point he can continue with his current task. If the task fails a number of times, the task is ended, and error screen is displayed, and the voter is asked if he/she would like to perform another task. If the task is successful, the voter is asked if he/she would like to perform another task. This continues until the voter declares that he/she is done, at which point the voter session is ended.

Voter Register Use Case
The voter begins the use case by entering a valid social security number and voter id number. If the information is invalid, he will recieve an error message and asked to enter the information again. If the information is valid, he will be asked to enter information about himself: phone number, address, party affiliation, demographics information, etc. If any information is invalid, the user asked to re-enter the information which was previously invalid. If the user cancels the registration at any time, no information is saved. If all the information is validly entered, the user is asked if he would like to save the information. If he selects no, the information is discarded; if he selects yes, the information is saved into his profile.

Voter Research Use Case
A voter selects a research task from the session options list. The voter can choose what type of research he/she wants to do: documents on state/national laws, election laws, candidates, party platforms, bills, referendums, etc. The voter is then presented with the appropriate type of documents. He/she can choose to view any number of documents from a menu of options for this category of research. If there is an error at any time, the voter is taken back to the last valid state, where he can cancel or continue his task. When the voter is done viewing documents, he/she clicks the "stop viewing documents" button. At this point, the voter is asked if he/she would like to perform any other tasks in the voter session.

Voter Vote Use Case
A voter selects a vote task from the session options list. The voter first selects what election type he would like to vote in: local, state, national. Once the voter selects the voting type, he will either be asked to enter a new vote, or change his vote if he has already voted in this election, and the election is not yet over. The voter enters his vote by selecting from a choice of candidates for the current election type. If anything goes wrong an error screen is returned and the voter is asked to select another voter transaction type from the voter session. If the voter successfully enters his vote, the vote is logged and the user will be asked if he/she would like to perform any other tasks in the voter session.

Voter Change Vote Use Case
A voter selects a change vote task from the session option list. The voter is then asked for which election he would like to change his vote. He is only presented with elections in which he is registered, and which are still open for voting. If the voter selects an election which he has not yet voted in, he will be presented with an error screen and rerouted to the voting screen for that election. If he has already voted in this election, then he is presented with options allowing him to change his vote. Once he has changed his vote, he is asked if he would like save his changes. If he answers no, his original vote is kept; if he answers yes, his new vote is kept and his old vote is discarded. The voter is then asked if he would like to perform any other tasks in the voter session.

Voter Update Registration Use Case
A voter selects the update registration case from the session option list. The voter is then presented with a menu of options, listing which registration attributes he can change: party affiliation, address, phone number, password. After the voter selects an attribute, he is presented with a screen to change this attribute. After he is done, he can choose to save or discard his changes. If the changes are invalid, he will be presented with an error, and prompted to enter the information again. If he chooses to cancel the transaction at any point before saving, his old information is kept intact. If he chooses to save his changes, his old attribute will be discarded. The voter is then asked if he would like to change other attributes. If he says no, he will then be asked if he would like to perform any other tasks in the voter session.

Voter Check Results Use Case
A voter selects the check results case from the session option list. The voter is then presented with a menu of elections from which he can check results. He can only check results when the election is closed. After the voter selects an election, he is presented with a menu of results he can check: winner, statistics, demographics, etc. Once he is done checking results for this election, he clicks on "stop viewing election results". He is then asked if he would like to check results for other registered elections. If he says no, he will then be asked if he would like to perform any other tasks in the voter session.

Actor Type: Candidate
Candidate Session Use Case
The candidate session is derived from the voter session, however it has a two additional options, "update personal information", and "register candidacy".

Candidate Update Personal Information Use Case
A candidate selects the update personal information task from the session options list. The candidate chooses what document type to update based on various categories (personal statement, background information, etc.). The user is then asked to provide the documents to the system. If the task fails, and error screen will be displayed and the user is asked to input the documents again, if the task fails a number of times, the task is ended and the user is asked if he/she would like to perform another task. Once a document is provided, the user is asked if he/she would like to update another document. This continues until the user is finished, at which point the user is asked if he/she would like to save the changes made. If the user answers "no", the changes are discarded and the task is ended, sending the user back to the administrator session. If the user answers "yes", the changes are committed to the system, the task is ended, and the user is sent back to the candidate session.

Candidate Register Candidacy Use Case
A candidate selects the register candidacy case from the session options list. The candidate is then presented with a menu of elections he can register for. If the candidate is ineligible to register for this election type, he is presented with an error screen and prompted to select another election type or cancel the registration process. If the candidate is eligible to register for this type of election, he is then presented with an official form to fill out. If at any time, the candidate cancels the registration process, the information is discarded and he will be taken back to the registration menu. If he completes and submits the information, he will be presented with a screen detailing the registration procedure for candidates (the official laws), and will be asked if he would like to perform other tasks from the candidate session.