Enterprise web programming

Units ENTWA (Level 6) and APSW (Level 7)

Rules change requirements


IFAF is the world governing body for American football. As such it is responsible for the "rules of the game" that are used in most countries of the world (except the USA).

System requirements

  1. All users of the system must be identified and only identified (logged in) users can access the following functionality. New users may register online and can use the system once:
    1. they have clicked on a link in a message sent to their email address
    2. a system administrator has approved them
  2. The information stored about a user includes:
    1. their real name (given name and family name)
    2. their email address
    3. the country (actually national federation) to which they are affiliated (see http://ifaf.org/ for a current list)
    4. whether they are (more than one choice is possible):
      1. a player
      2. a coach
      3. an official (referee)
      4. a club/team manager/administrator
      5. a league/competition administrator
      6. an officer (employee or volunteer) of the national federation
    5. the timestamp when they last logged in to the system
  3. The following user roles can be identified:
    1. not-yet-approved user
    2. approved user
    3. commenter
    4. voter
    5. system administrator
  4. Only a system administrator can set/change a user's role. A system administrator can't change roles such that there isn't at least one system administrator.
  5. Users may submit rule change proposals to the system. A proposal can be amended by its submittor until it is first voted upon, after which it cannot be altered (but can be withdrawn).
  6. A rule change proposal consists of:
    1. the identity of its proposer (the user who submitted it)
    2. the timestamp of when the proposal was submitted or last amended
    3. some text identifying the rule or rule to be changed
    4. some text describing the proposed change
    5. some text justifying the proposed change
    6. what state it is in, viz:
      1. newly submitted (by the submittor)
      2. voting open (only when in this state can votes be made; the system administrator only can set this when voting is opened)
      3. voting closed (the system will set this automatically after the deadline has passed)
      4. withdrawn (only the submittor or system administrator can set this)
    7. whether it is visible (the default) or not - only the system administrator can set this
  7. Comments can comment on proposals. Commenting can take place anytime after a proposal is submitted and/or amended.
  8. Voters can comment and vote on proposals. Voting can only take place if a system administrator has opened a proposal for votes and set a deadline for them to be cast. After the deadline, no further votes can be cast. A vote cast can be changed at any time while the voting is open. The deadline can be changed by a system administrator.
  9. A vote consists of:
    1. the proposal being voted on
    2. the identity of the voter
    3. the timestamp the vote was cast or last recast
    4. the vote cast:
      1. for
      2. against
      3. abstain
  10. Once a proposal is submitted, it is open for comments by commentors. Comments can be made before, during and after the voting phase of a proposal.
  11. A comment consists of:
    1. the identity of the commentor
    2. the timestamp of when the comment was submitted
    3. the proposal being commented on
    4. the text of the comment
  12. Users should be able to:
    1. see all visible proposals (most recent first)
    2. search for a proposal by free text search
    3. edit ones they submitted (up to the time voting starts)
    4. withdraw ones they submitted
  13. Commentors should be able to:
    1. see all visible proposals (most recent first)
    2. see all comments and votes (most recent last)
    3. add comments to a proposal
  14. Voters should be able to:
    1. see all visible proposals (most recent first)
    2. see all comments and votes (most recent last)
    3. add comments to a proposal
    4. cast votes for any proposal for which voting is open
  15. Having defined this as an American football rule change proposal management system, it has obvious generalisability to any sort of proposal management/discussion/voting system.

Last updated by Prof Jim Briggs of the School of Computing at the University of Portsmouth

The enterprise web programming units include some material that was formerly part of the WEB1P and WEB2P units.