CSNS Bulletin Board System

Version: 1.0

Background

The Computer Science Network Services (CSNS) is a web application developed by the Computer Science Department at California State University, Los Angeles. It is designed as a platform to provide a number of online services to instructors and students to enhance the teaching and learning experience. Currently, the main service provided by CSNS is the course assignment service, which allows instructors to create, manage, and grade course assignments, and allows students to submit their work and receive the grades online.This project is part of the effort to provide more useful tools and services through CSNS. In particular, the goal of the project is to develop a high quality bulletin board system that uses the latest technologies and is tightly integrated with other CSNS services.

Motivation

1.  Why Bulletin Board?

It’s generally agreed that more communication among students/instructor help improve the education outcome. The most common communication methods online are email listing, bulletin board, chat room, news group, wiki, blogs and instance messaging.One significant difference between forums and electronic mailing lists is that mailing lists automatically deliver new messages to the subscriber, while forums require the member to visit the website, and check for new posts. Due to the possibility of members missing replies to threads they are interested in, many modern forums offer an "e-mail notification" feature, where an e-mail is automatically sent to all users who have chosen to be notified of new replies, informing them that a new post has been made.

The main difference between newsgroups and forums is that additional software is usually required to participate in newsgroups, a newsreader. Visiting and participating in forums normally requires no additional software beyond the web browser.

Forums, unlike wikis, do not allow people to edit other's messages. Some users, however, may be given this ability in order to moderate content (for example, if spam is posted to the forum).

Unlike blogs, forums typically allow anyone to start a new discussion (known as a thread), or reply to an existing thread. The range of topics discussed on forums is typically wider—as a website running forum software may have more than one forum, each dedicated to a different topic. While many blogs allow visitors to post comments in reply, the number of people who can create entries is normally very limited, and the range of viewpoints and beliefs on a blog are also limited.

Forums differ from chat rooms and instant messaging because forum participants do not have to be online at the same time; forums also usually deal with one topic and personal exchanges are typically discouraged. Participants in Internet forums should realize that what they have to say will be public knowledge for years to come. Forum archives are sometimes the best way to find an answer to very obscure questions, such as how to fix a particular computer problem.This bulletin board will extends and ease communication between instructors and students.

2.  Why not use an existing bulletin board?

This bulletin board will integrate with CSNS. That’s why we have to write a customized bulletin board which can use existing architecture and database of CSNS. We want to provide features which are not available in existing Bulletin Board. For example, phpBB (the one used by ACM) does not have forum subscription, which is very inconvenient. It also doesn’t use a rich text editor, doesn’t allow file attachment. The Bulletin Board will also implement advanced UI.

Objectives:

This project is to create a web based Bulletin Board which will enhance the services of CSNS. The Bulletin Board will provide extra services for instructors and students to create forums. It will also allow them to create and reply threads. There will be a default forum for course offered in quarter and instructor of the course will be moderator by default. The system will also have all the common features provided by a traditional Bulletin Board.

The primary goal of project is to provide a Bulletin Board services to students and instructors who are registered to CSNS and to maximized the efficiency of the click-economy. User should be able to find the required information with less page visit. And should be able to see all he wants at once while filtering out what he does not (Using Threshold feature). Threshold will maintain the viewing posts on page. User will be able to see all the post by setting threshold to zero. Higher threshold will display lesser posts. Nothing will ever get deleted, it will just get pushed below user viewing threshold. It will be all in realtime, no refreshing needed.

Information like new posts, threads and quick quotes will be viewable to user without refreshig the page. It will save the refreshing time and bandwidth. After reviewing the AJAX and Web 2.0, it is possible to achieve these goals. Mostly frontend of this project will use features from AJAX and Web2.0 models. But this project will make sure that Back buttons will work, Browser Histories will stay intact. Contents will not be hidden behind AJAX, so Google or Lucene will able to see them.

Proposed Features

1.  Standard features:

The standard features are

·  Create new forum by administrator or moderator

o  Administrator or Moderator (Need to discuss with Dr. Sun about Moderator) will have privileges to create new forum.

·  Create new thread in forum by registered users

o  Registered users of forum will be able to create new thread.

·  Post replies on a thread

o  Registered users of forum will be able to post reply to the thread.

·  View forum

o  Guest user will able to view the forum, threads and replies (Need to talk with Dr. Sun about this feature)

·  Edit threads or replies by user

o  User will be able to edit his own threads and replies (To be discussed)

·  Send personal messages to other users

o  User will able to send a personal messages to other registered users

·  Delete post by user

o  Registered users will be allowed to delete their post

·  Edit threads and replies by Administrator or Moderator

o  Administrator and moderator are allowed to edit a threads or replies. They can also put a comment on a thread or reply. An email notification will be sent to user

·  Move reply into other threads by administrator or moderator

o  If administrator or moderator of that forum feels that reply belong to other thread, they will be allowed to move this reply into other thread. And an email notification will be sent to user.

·  Delete a thread or reply by administrator or moderator

o  Administrator or moderator will be allowed to delete a thread or reply. And an email notification will be sent to user.

·  Ability to ban a user from a thread or forum by moderator (Need to be discussed)

2.  Advanced features:

Advanced features are related to Ajax, full text search, rich text editor, file attachment.

·  Users are allowed to preview threads without entering to the thread. Don’t need to refresh page and see extra information.

o  There will be a small icon on next to each thread. User will be able to see the contents of the thread in a popup by moving mouse on this icon. There will be no page refresh and will be done using AJAX.

·  Ability to re-order the post on the thread based on last updated time without refreshing page.

o  If user has an open page for a forum and somebody reply to a thread, then this thread will become a live thread and it will move to the top of the page without refreshing it. (To be discussed)

·  Enable/disable live thread feature

o  Users will be able to enable and disable live thread feature for a forum to save the processing time. (To be discussed)

·  Ability to post a reply on a thread without refreshing page

o  There will be a small icon to post a reply. When user will click on this icon, he will see a popup window. He will be able to write and post a reply in this window. After posting the reply, it will be displayed on the page without refreshing the page (To be discussed)

·  Allow users to have an avatar

o  users will be allowed to have a small picture located around their name, this is called an avatar.

·  Allow users to have a signature at the end of each message

·  Ability to write quick quoting post on separate parts of multiple people’s post (Need to be discussed)

·  Ability to rate a thread (Need to be discussed)

·  Ability to change a threshold to control the number of posts (Need to be discussed)

·  Ability to show unread posts in each thread and when other user replied(Need to be discussed)

·  Full text search of posts

o  Users will be allowed to search a post using full text search. Lucene will be used to provide this feature

·  Ability to have file attachments

o  Users will be allowed to attach a file with their post

·  Ability to view the file attachment

o  Click on file attachment icon, user will view the file in a new window.

3.  CSNS Integration:

These are features that are specific to CSNS

o  Create a default forum for a course offered in the quarter and assigned moderator role to the instructor of that course.

o  This will be done by Bulletin board. So for each course, there will be a forum. Instructor and students taking this course will be registered to the forum by default. And they are allowed to create threads and post replies in the forum.

o  Each course (not a section, which can be thought as a course in a quarter) has a forum associated with it. When a new course (again, not a section) is created, its associated forum is created automatically. (Commented by Dr, Sun. Need to discuss)

o  Ability to create other forum, e.g. Announcements, General Discussion, and Job Opportunities. These forums are not associated with courses

o  Role-based access control. In particular, only ROLE_ADMIN can create new forums, Only ROLE_INSTRUCTOR can post in Announcements, ROLE_USER can create new posts and replies, and ROLE_GUEST can only read (include search). Create a new role ROLE_FORUM_MODERATOR. Only moderator can edit posts (including pinning threads etc.).

o  Subscriptions – A user will be able to “subscribe” to a forum or a thread. There will also be an option about receiving daily digest. “Subscriable” objects like forums or threads will implement a Subscriable interface; this will (at least) allow easy implementation of un-subscription. Subscriptions can be managed in account profile. (Need to discuss)

o  . Automatic role assignment and subscription – each instructor of a course automatically will receive the forum moderator role for the course forum during the quarter, and the role will be automatically revoked after the quarter ends. The coordinator of a course remains a moderator of the forum for that course. Students enrolled in a course automatically subscribed to the course forum (unless they manually unsubscribe in their account profile), and automatically unsubscribe after the quarter.

o  The most recent five topics in Announcement forum will be displayed on the CSNS front page.

User Characteristic:

The primary users will be instructors and students who are registered to CSNS. Bulletin Board also defined its own role called moderator. Moderator will able to manage forums and threads.

1.  Administrator and Moderator

A forum administrator typically has the ability to edit, delete, move or otherwise modify any thread on the forum. Administrators also usually have the ability to close the board, modify the board, ban, delete, or create members. Moderator privileges will be delegated to other forum members. Moderators will help the Administrator (Admin), but have fewer abilities, which may include editing, deleting, and moving threads, mass pruning, warning members for offenses, and changing minor forum details.

The reasons for having these abilities are often to allow peace to be maintained and the rules to be enforced. Moderator can be directly appointed by the board administrator or chosen by an automated process combined with the existing instructor role.

2.  Members and Users

Members of a forum usually will have basic rights. They will be able to post in threads, edit their posts, start new topics, and change their settings. On most forums, users have a small picture located around their name, this is called an avatar. An avatar is a small picture that is chosen by the user. Members also have the ability to use and send personal messages to each other. Members will be given the ability to close their own topics, or delete posts in topics they have started. Members will also have the choice of a signature, which will be usually words at the end of every post.

Participants:

1.  Dr. Sun Chengyu (Advisor)

2.  Habib Khan (Student)

Tasks:

To be decided

Technologies

Dev Platform: Windows XP

Deployment Platform: laptop, CS3

Language: JAVA, J2EE

Database: postgresql

Security: Acegi

Build: Ant, XDoclet

Front-end: JavaScript, JSP, JSTL, AJAX, display tag library, taconite and Spring WebFlow

Backend: SPRING, HIBERNATE

3rd Party Api: JUNIT, Log4J

Version Control: Subversion

Application Server: Tomcat

Full Text Search: Lucene

3