Threaded BBoard Requirements
part of the ArsDigita Community System
by Tzu-Mainn Chen
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.
- 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.
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
VI.D Requirements: Alerts
- 300.0 Alerts
300.10 Alerts must be emailed to the appropriate users based on:
- 300.10.1 Topic
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).