Homework 4
CS520, Spring 2007


Due: Friday, May 18

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]

[Full Text Search] (40pt)

Enhance the CSNS Mailing List you developed in Homework 3 by allowing the users to perform full text search on message text. For example:

csns-announcements:    Messages contain: 
Subject Sent by Date
CSNS server will be down for maintenance on April 9, 2007 cysun 04/02/2007
New features added cysun 03/10/2007

Note that full text search must work in coordination with other search criteria. For example, if a user selects mailing list "csns-announcements" and "Messages from last 30 days", and then search for "cs520", the system should only display the messages of csns-announcements from the last 30 days that contain the text cs520.

You will receive 15pt extra credit if you use Hibernate Search to solve this exercise.

[Daily Digest] (40pt)

Further enhance your mailing list to allow users to subscribe to a mailing list for daily digest. In other words, instead of receiving every email sent to a mailing list, a daily digest subscriber will receive at most one email from a mailing list per day, and the email will contains the subjects of the messages sent to the mailing list in the previous day, as well as links to CSNS where the user can access the full text of these messages. Note that there is no need to send out a daily digest if there's no message sent in the previous day.

[Libraries]

In this assignment you may need to use additional libraries such as Lucene and Hibernate Search. Please add the necessary jar files to your project, and list the names of the jar files, e.g. lucene-core-2.1.0.jar, in the README file.

[Subversion]

Before submitting your work, commit all the changes to your Subversion repository, and create a tag called cs520-hw4.