10.10.10 Each poll has a unique identifier
10.10.20 Each poll has a name, which will used in constructing a list of available polls.
10.10.30 Each poll can have an optional description which will be used when displaying the poll.
10.10.40 Each poll can have an optional start date, before which the poll is not available to users
10.10.50 Each poll can have an optional end date, after which the poll is not available to users
10.10.60 Each poll can be designated as being available only to registered users.
10.20.10 Each poll can have an arbitrary number of choices
10.20.20 Each poll choice has a label which is used during poll display
10.20.30 The order of presentation of the choices is controllable by the publisher.
10.30.10 Individual votes will be stored
10.30.20 If the voter is a registered user, the user's ID will be stored with the vote
10.30.30 The voters IP address will be recorded. The IP address will be used to detect possible voter abuse.
10.30.40 The date and time of the vote will be recorded.
20.10.10 Publishers can create polls, set their name and description.
20.10.20 Publishers can set the optional start date and optional ending date
20.10.30 Publishers can change the poll's name, description, starting and ending dates
20.20.10 Publishers can create poll choices and set the visible label.
20.20.20 Publishers can modify poll choices by changing the visible label.
20.20.30 Publishers can change the order in which poll choices are displayed.
20.30.10 Publishers can use UI pages that show possible voter abuse (ballot box stuffing)
20.30.20 Publishers can use UI pages to correct voter abuse by deleting votes
30.10.10 Users can see a list of available polls.
30.10.20 Polls are considered "available" if the current date is between the poll's start and end dates (if they exist), and if the user is a registered user and the poll requires registration.
30.10.30 Users can select an available poll to vote on
30.10.40 If the user has already voted on this poll, they are told that they cannot vote again.
30.10.50 The poll and its choices are presented to the user. The poll choices are ordered according to publisher specification.
30.10.60 The user can select one choice and submit the vote
30.10.80 The user's choice, their IP address, and the date and time of the vote are recorded
30.10.90 The user can then view the current poll results
30.10.100 The user can also view the current poll results without having to vote.
40.10.10 There should be an easy to use, yet flexible API for generating the HTML used for presenting the list of available polls, the polls and their choices, and the poll results
40.10.20 For generating the HTML for the list of available polls (the "front page"), publishers should be able to specify the type of item (e.g. list item vs table row), the style, the style and wording to be used when registration required to vote, and the style and wording used when there are no active polls.
40.10.30 For generating the HTML for the display of a single poll, publishers should be able to specify the type of item (e.g. list item, table row, or simple paragraph breaks between items), the style each choice should be in, as well as the style and wording used when there are no choices for a poll.
40.10.40 For generating the HTML for the display of a single poll's bar-chart results, publishers should be able to specify the color and size of the bars, whether to display numeric values, and whether to display a scale
40.20.10 The HTML used for presenting the Poll module's pages will be ADP pages living in the ACS /templates/poll directory
40.20.20 The Poll API and variables passed to the page will be used for generating the dynamic (database-generated) HTML
| Document Revision # | Action Taken, Notes | When? | By Whom? |
|---|---|---|---|
| 0.1 | Creation | 08/29/2000 | Mark Dalrymple |