ArsDigita Archives

Threaded BBoard Requirements

part of the ArsDigita Community System by Tzu-Mainn Chen

I. Introduction

This is a requirements document for threaded-bboard - an implementation of bulletin boards based on general-comments. It provides the following advantages over the ACS 3.x bboard:
  • Flexible threaded user interface
  • Alerts based on keyword, topic, thread, or message author
  • Support for replying to a message via email

II. Vision Statement

The ACS 3.x bboard package was one of the first applications written for the ACS; as a result, its implementation is unwieldy and over-sized, containing items such as a permissions model within its code (more recent applications use general-permissions). In addition, the ACS 3.x bboard package has limited support for threaded discussions.

The threaded-bboard package was developed in order to solve both of these problems. By using general-comments, the package is able to use pre-existing data models and code; general-comments also allows for a tree-like structure of comments, which makes it ideal for threading purposes.

III. Application Overview

The threaded-bboard supports the following usage::
  • Site Users can:
    • View the number of new messages and total messages in a topic or thread
    • View the contents of a message thread
    • Create or respond to a thread
    • Sign-up for alerts based on topic, thread, keyword, or contributing author
    • Respond to messages via email (requires qmail setup)
  • Group Administrators can:
    • Create group-scoped bulletin boards which can be group or public usable. Scoping is done through general-permissions.
    • Administer a group-scoped bulletin board by:
      • Approving/disapproving messages
      • Editing messages
      • Deleting message branches
  • Site Administrators can perform all the functions of a group administrator for any bulletin board.

IV. User-scenarios

  • Site user

    Joe User logs onto the website and checks the main bulletin board page for new messages in those topics which he is allowed to views (i.e., public topics and topics scoped to a group that he belongs to). He sees a list of topics; the top topic has had three new responses in the past day. Intrigued, he clicks on the topic and sees the complete thread. After finding the new post, he clicks on the post and reads the new message. Infuriated by the message he reads, he clicks on the respond link and writes a nasty reply.

    Jane User, who wrote that message, has subscribed to the entire thread; thus, she receives Joe's reply in the form of an email. Angered by Joe's rude response, she pushes the reply button on her email handler, writes her own nasty message, and sends the email. The email is parsed by the site, which automatically creates a response to Joe's message using the content of Jane's email.

  • Administrator

    Arnold Administrator, who is also subscribed to that thread, receives both of these messages. Since the content is inappropriate to the board, he logs onto the web site and goes to the administration page for that board. He then has three options:

    • Edit the messages to remove the offensive items
    • Disapprove the messages so that they are no longer displayed (although they are still stored in the database)
    • Delete the messages so that they are wiped from the database

V. Related Links

VI.A Requirements: Data Model

  • 10.0 Use of General-Comments Data Model

    10.10 The threaded-bboard package must be built on top of the general-comments data model with a minimum of changes.

  • 20.0 Group Scope

    20.10 Topics must be scopable by group.

  • 30.0 Alerts Mappings

    30.10 Users must be able to be mapped to topics.

    30.20 Users must be able to be mapped to threads.

    30.30 Users must be able to be mapped to authors.

    30.40 Users must be able to be mapped to keywords.

VI.B Requirements: API

  • 100.0 Use of General-Comments API

    100.10 The package must support the basic functions of the general-comments API with the minimum of changes.

  • 110.0 Thread Display Information

    110.10 The package must allow messages in a thread to be pulled out in a Tcl list with all relevant information needed for display.

VI.C Requirements: Scoping and Security

  • 200.0 Support for General-Permissions

    200.10 The package must be integrated with general-permissions.

  • 210.0 Group Scoping

    210.10 Topics must be scopable bu group.

VI.D Requirements: Alerts

  • 300.0 Alerts

    300.10 Alerts must be emailed to the appropriate users based on:

    • 300.10.1 Topic
      300.10.5 Thread
      300.10.10 Author
      300.10.15 Keyword

    300.20 Alerts must contain links back to the appropriate page on the origination site.

  • 310.0 Email Response

    310.10 A user who receives an email alert must be able to reply to that message by sending an email reply.

VI.E Requirements: User Interface

  • 400.0 Site User Interface

    400.10 Site user can view topic listing, limited by permissions restrictions.

    400.10 Users can view threads in a topic.

    400.10 Users can view messages in a thread.

    400.10 Users can create or reply to a thread.

    400.10 Users can enable and disable various alerts (300.0).

  • 410.0 Group Administrator Interface

    410.10 Group administrator can view list of topics which they can administer.

    410.20 Group administrator can approve/disapprove messages.

    410.30 Group administrator can edit messages.

    410.40 Group administrator can delete message branches.

    410.50 Group administrator can create new bulletin boards.

    410.60 Group administrator can scope bulletin boards to be viewable by their group or to be public.

  • 420.0 Site Administrator Interface

    420.10 Site administrator can view list of all topics.

    420.20 Site administrator can perform all the functions of a group administrator (410.0).