Comments Service Requirements

Motivation

Enable users to comment in a threaded manner on website items through a generalized commenting service. Site designers should be able to "Comment-enable" aspects of the website, for example: articles, image galleries, blog entries etc

Comments

Composition of a comment
  • Date
  • Author ID
  • external ID (for top of thread to relate item to external id)
  • Comment ID (internal) numeric)
  • Reply to ID (internal numeric, Null if root)
  • Title (use is optional)
  • Body
  • Requires moderation flag
  • Approve / Decline moderation flag
Relate a thread to an object

Service should be able to relate a thread to a unique key. Example keys

  • Article URL
  • Image URL
  • Content item UUID
  • Forum name

Authentication

The commenting system allows authenticated users to interact in a read/write capacity while unauthenticated users have a read only interaction with the comment content. High level requirements for authentication include

  • loosely couple with a concept of profile
    • Know who the user is:
      • User/Screen Name
      • Email address
      • First Name
      • Last Name
  • loosely couple with authentication and authorization service
Anonymous
  • Read comments
Logged in
  • Read comments
  • Post a new comment
  • Reply to an existing comment

Administrative capabilities

Administrators should be able to

  • lock out abusive accounts.
  • Perform Moderation

Moderation

Back-office/Editorial moderation

Administrative users should have the ability to moderate the comment stream

  • Ability to approve or decline a message at any time
    • Messages can be declined (unapproved) at any time
      • If a thread exits, the children in the particular branch of the thread should be removed at the same time
Citizen policing

Users should have the ability to flag articles as containing questionable content / requiring moderation.

Scalability and Data Volume

  • No part of the model should prohibit the following implementation characteristics
    • Use of read-write separation
    • Use of sharding

Technical Requirements

  • System should be service oriented in order to support RESTful invocation
  • profanity filtering
  • filtering for cross-site scripting and other browser hacks
Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.