ArsDigita Archives
 
 
   
 
spacer

Bulletin Board Module Requirements

by Branimir Dolicki

I. Introduction

The following is a requirements document for the Bulletin Board (Bboard) module written by Philip Greenspun. The Bboard module enables community members to communicate by posting questions and answers online. This document is for ACS 3.x version of the module.

II. Vision Statement

This module combines benefits of the two most popular traditional internet applications: newsgroups and mailing lists. Newsgroups are good for public discussions but have a disadvantage of having to check them on a regular basis in order to see whether somebody answered your question. Mailing lists have the advantage that participants in the discussion get alerted immediatelly but the audience is limited to the people who have subscribed to the list.

As it is a database-backed web application, with the Bboard module every new posting goes online immediatelly (even faster than on USENET where there is always a delay) and all participants in the discussion get instant email alerts. Furthermore all the messages are stored forever and full-text intdexed.

This system has been in use at photo.net since 1996.

III. System Overview

The Bboard module consists of the following components:

  • a user interface for viewing lists of messages, individual messages, searching as well as for posting new messages
  • a forum moderator interface for editing/deleting bad postings
  • a site-wide administator interface for creating and deleting whole forums

The version of the Bboard module described here works only as a part of ACS 3.x. As it is one of the first ACS modules it doesn't use many kernel services - actually just user-groups for determining who is allowed to use and administer a particular forum.

IV. Use-cases and User-scenarios

Perry Photographer wants to learn about using filters in black and white photography. She posts a question in the photo.net Forum. Her posting immediatelly triggers a keyword email alert to Fany Filterer who is an expert on filter issues. Fany visits the photo.net website and posts an answer. Her answer triggers a thread email alert to Perry. At the same time, as her answer contains the word "tripod" it triggers the email alert to Tom Tripodlover...

Nick Novice has the same question about filters Perry posted some months ago. As he is not aware that the question was already answered he clicks on the Post a New Message link. There he is asked to use the search function to see if his question has been asked and answered before. He enters "filter black white" and finds Perry's thread. As he is happy with the answer he doesn't post the same question again.

Marc Moderator visits the admin interface and notices that Joe Loser has posted the question "Should I buy the cheap Nikon 70-210 zoom, the cheaper Nikon 80-200 zoom, or the Sigma or Tokina equivalent?". As it is against the forum policy to ask such questions Marc deletes the posting and uses the system built-in feature to send email to Joe explaining why his posting was deleted.

V. Related Links

VI.A. Requirements: Data Model

  • 10 Bboard Messages

    10.10 Bboard messages have a unique identifier.

    10.20 Every message has zero or one parent messages. If a message has no parent messages it is the beginning of a thread.

    10.30 Every message belongs to one forum.

    10.40 A message may have a category associated with it.

    10.50 We keep the IP address of the client who posted the message.

    10.60 Only registered users may post messages and we store the user_id of the poster.

    10.70 Every message has a short one line description.

    10.80 Every message has an arbitrary long body.

    10.90 For each message we store whether it is in HTML or plain text.

    10.100 We keep the posting time of each message.

    10.110 A message may have an expiry date.

    10.120 A message may have a numeric interest level.

    10.130 A message may have a custom, forum-dependent sort key.

    10.140 A message may be marked as urgent by the user.

  • 20 Bboard Forums

    20.10 Bboard forums (also called topics) have a unique identifier.

    20.20 Forums have unique names.

    20.30 A forum's read policy can be one of the following:

    • Anybody can read it, even unregistered users
    • Only registered users can read it
    • Only users who belong to a particular group can read it

    20.40 A forum's posting policy can be one of the following:

    • All registered users can post
    • Only registered users who belong to a particular group can post

    20.50 A forum can be set up so that only administrators can initiate threads.

    20.60 A forum can have a URL associated with it to provide backlink possibility.

    20.70 It is possible to provide backlink title (usually the title of the linked page).

    20.80 One user must be designated as primary maintainer

    20.90 The subject line displayed in a list of postings is customizable so that the forum maintainer may decide which of the following information to display:

    • poster's name
    • poster's email address
    • date

    20.100 It is possible to turn on and off whether the system sends the maintainer email when a new posting is added

    20.110 The message displayed to the user before he posts something is customizable for each forum.

    20.120 A forum may have a moderation policy which can be used for presenting the list of forums in a more organized way

    20.130 A forum may have a policy statement which is displayed to the user when he clicks on the About link.

    20.140 It is possible to specify whether the forum should by default be presented in a threaded or Q&A (question and answer) interface.

    20.150 For the Q&A interface it is possible to specify whether messages should be sorted in ascending or descending order when default sort (by date) is used. For custom sort key order see 20.260 below.

    20.160 It is possible to turn on and off categorization for a particular forum.

    20.170 It is possible to turn on and off categorization for a particular forum.

    20.180 It is possible to specify the number of days a message is considered new in the forum.

    20.190 It is possible to specify whether users are asked to categorize their postings themselves.

    20.200 It is possible to specify whether user is allowed to define a new category to categorize his posting.

    20.210 It is possible to specify whether the interest level system should be used in a forum.

    20.220 It is possible to specify whether to show all new messages on the front page or just categories.

    20.230 It is possible to specify whether the custom sort key (see 10.130 above) should be used.

    20.240 It is possible to give a name to the sort key from 20.230 for display purposes.

    20.250 It is possible to specify the Oracle data type for the custom sort key.

    20.260 It is possible to specify whether the custom sort key should be used in ascending or descending order.

    20.270 It is possible to specify whether the user is asked to solicit the sort key himself.

    20.280 It is possible to specify whether the user should enter the custom sort key in a "pretty" format. For example, if the custom sort key is a date it may make sense to solicit it as "Fall 1997" instead of 97-09-29.

    20.290 It is possible to specify an explanation to be displayed to the user when asked to enter the sort key in a "pretty" format.

    20.310 It is possible to specify a fragment of Tcl code that evaluates to 0 if the user-entered sort key is bad, 1 if OK.

    20.320 It is possible to specify whether the forum is category-centric, which means that every message must be categorized.

    20.330 It is possible to specify whether the forum should accept attachments to messages (file uploads).

    20.340 It is possible to specify whether attachments are images (to be displayed inline), files (to be offered for download) or both.

    20.350 It is possible to activate/deactivate the forum.

    20.360 If the forum is group-private it is possible to specify the group it belongs.

  • 30 Bboard categories

    30.10 It is possible to associate a simple list of categories with each forum.

  • 40 Bboard bozo patterns

    40.10 It is possible to prevent usage of specific words or phrases by specifying regexp patterns. Each forum has its own list of patterns.

    40.20 It is possible to specify whether the one line description (10.70), the body (10.80) or both should be tried against the patterns to determine whether to reject the message. This can be different for each pattern.

    40.30 When a posting matches the forbidden pattern the user is presented with an explanation why his message has been rejected. This explanation can be different for each bozo pattern.

    40.40 We store information on when the bozo pattern was created.

    40.50 We store information who created the pattern.

    40.60 It is possible to enter a comment describing the purpose of each pattern.

  • 50 Bboard forum email alerts

    50.10 Each user can set an arbitrary number of email alerts on each forum

    50.20 Each email alert can be either instant, daily, Monday/Thursday, weekly, etc.

    50.30 For each alert user can specify a list of keywords. The allert will fire only if at least one keywords matches.

    50.40 Each alert can be turned on and off by user.

  • 60 Storing the information about the last forum alerts

    Whenever we send a weekly, daily or monthly forum alert we update the following information:

    60.10 The time we sent the last weekly alert

    60.20 The number of emails sent with the last weekly alert

    60.30 The time we sent the last daily alert

    60.40 The number of emails sent with the last daily alert

    60.50 The time we sent the last monthly alert

    60.60 The number of emails sent with the last monthly alert

    We don't keep the full history information, just the last time.

  • 70 Bboard thread email alerts

    70.10 Each user can set one alert on each thread. The alert is set automatically if the user has contributed in the thread. The alert fires whenever a new message is posted in the thread.

  • 80 Bboard uploaded files

    It is possible to upload a file with each bboard message (if the forum is set up to accept uploaded files - see 20.330 above)

    80.10 Every uploaded file has a unique ID.

    80.20 Every uploaded file is associated with one bboard message.

    80.30 We store information about whether the file is a photo or other kind of a file.

    80.40 We store information about original three-letter extension the file had on the client machine (e.g. jpg, gif, png).

    80.50 We store the file size.

    80.60 We store the full name the file had on the client machine.

    80.70 We store the name the file has on the server.

    80.80 For images, we store the caption to display when we show it inline.

    80.90 For images, we store the filename of the thumbnail image on the server.

    80.100 For images, we store the original height and width.

VII. Revision History

Document Revision # Action Taken, Notes When? By Whom?
0.1 Creation 10/25/2000 Branimir Dolicki


kai@arsdigita.com
Last modified: $Date: 2001/01/22 04:24:12 $
spacer