Homework 6
CS520, Spring 2008
Due: Thursday, May 22
Package all the source files of your project into a zip file using the zip Ant target you
developed in Homework 1, and
upload the zip file to CSNS.
Note that file
uploading will be disabled automatically after 11:59PM
of the due date, so please turn in your work on time.
[Reading]
- PostgreSQL Documentation
- Hibernate Documentation
- Evelyn Source Code
[Bulletin Board for CSNS]
For this assignment, complete the following features of the
CSNS bulletin board described in Homework
3:
- (30pt) Allow a user to subscribe to or unsubscribe from a forum.
You must use AJAX to implement the subscribe/unsubscribe operation.
- (20pt) Subscribers of a forum will receive an email notification
whenever a new post (i.e. a topic or a reply) is created in the forum. The email should include a link to the post (i.e. not
the actual content of the post), as well as a link that
allows the user to unsubscribe from the forum.
- (40pt) Allow a user to perform full text search of the posts in a
selected forum. The search results should be ordered by their relevancy
scores, with the most relevant result first. For each post in the
results, display the subject and the content (or part of the
content) of the post with the query terms highlighted. Clicking on the
subject of the post should take the user to the topic which this
post belongs to. This feature must be implemented using either Lucene
or the full text search support provided by PostgreSQL.
- (Extra Credit +40pt) Full text search of the forum posts includes
searching the names and the content (for text, pdf, and MS doc formats)
of the file attachments.
Note that a feature must be functional in order to
receive any credit at all.
[Subversion]
Before submitting your work, commit all the changes to your
Subversion repository, and
create a tag called cs520-hw6.
[About Submission and Grading]
If you use any libraries that are not in the original CSNS and
are
not included in your csns.zip, please upload the library jar files
together with csns.zip when you submit your work.
To test your project, I will use the following SQL scripts in
your csns.zip to create, populate, and then clear the database:
- db/csns-create.sql
- db/csns-test-insert.sql
- db/csns-drop.sql
Please make sure these scripts are up to date and can be run in their
entirety without generating any errors.