Governance functional specifications

(high) = high priority
(medium) = medium priority
(low) = low priority

Content Workflow

  • Content status indication:
    • Status for completeness: complete / in progress. (high)(FLUID-1414)
    • Visibility: public / not public. (high)(FLUID-1414)
    • Ability to set other states at a later time.(low)
    • Users of a certain profile should be allowed / restricted from seeing "not public" patterns
  • Trigger content publishing
    • After 3 approvals, if pattern is not public, then make it public.(low)
  • Track revisions
    • maintain a list of contributors to a design pattern. (high)
    • ability to easily revert to previous versions. (high)
    • Drupal does this currently, but is it what we want?
    • Display the list of contributors somewhere on the page. (high)
  • Not allow removal of design patterns by author once public (medium)
  • Public / Not public viewability
    • Allow author to specify a draft design pattern be viewable by public (high)
    • Once a design pattern is public, it can not be made private by the author (medium)
  • Ability for a small group to work on a document. (medium)
    • How do we allow co-authoring or collaboration amoung normal users?
    • How easy is it to set up organic groups?

Communication

  • Messaging / notification system for: (medium)
    • new comments
    • new viewable content
    • Reviewers notified of new drafts
    • new user messages
    • change notification

Comment System

  • Ability to rank comments (low)
    • also allow a user to filter content that is above/below a threshold.
    • notify Reviewers / moderators when a comment has gone above / below a particular threshold so appropriate actions can be taken.
  • Investigate alternative approaches to the comment system (low)
    • We are relying heavily on user interactions on the OSDPL. Therefore comment system should be robust and easy to use.
    • look for ways to place comments higher in the page.
    • experiment with various UI placements of text directing action to Comments.
  • Threaded comments may be helpful in making different conversations easier to follow. (low)

Security

  • Implement spam filtering and spam prevention (high)
    • commenting does not require a user account, so how do we prevent spam? Captcha? Use a system like Akismet?
  • User registration security (captcha or something similar?) (high)

Content Presentation

  • Visually separate in progress patterns from complete patterns. (high)
  • Ranking content as form of filtering.(low)
    • hide content if it falls below a certain threshold. (low)
    • user configurable?
  • Ranking as a form of content moderation(low)
    • If content reaches a certain threshold for a rank, moderators should be notified.(low)

Users

  • Ability to promote / nominate user accounts from normal to Reviewer. (low)
    • Based somehow on User Ranking?

User profiles: (high)

    • Unregistered user (Content consumer)
      • can view public content on the site including announcements, design patterns, and comments
      • can comment on other people's patterns (proper spam deterrent/filtering should be in place)
      • can not create content design patterns
    • Registered user (Content author)
      • The basic user account allowing a person to create design patterns, rank users and content.
      • anyone can become a registered user and begin writing patterns
    • Reviewer (Content editor and moderator)
      • Someone who has demonstrated an understanding of design patterns and can help edit and polish draft patterns.
      • A reviewer can also moderate comments and facilitate discussion.
    • Patterns Administrator (Content Administrator)
      • responsible for administering content, pattern users, and keeping an eye on activity
      • can create, edit, and delete design patterns, comments, announcements, users
    • Site Administrator (Technical Administrator)
      • Same as the patterns administrator, but with full site access.
      • responsible for the operation of the OSDPL site
      • updating modules, data backup, security, etc.