Homework 6
CS520, Spring 2010


Due: Thursday, June 3

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.

[CSNS Wiki]

Continue to work on CSNS Wiki and implement the following functionality. Note that all the functionality from Homework 4 must work; otherwise you will not receive any credit.

1. (15pt) Revision list.

Allow users to see a list of all the revisions of a page. For each revision, the list should include the revision number, the author of the revision, and the date and time when the revision was created. The revisions should be displayed in reverse chronological order with the most recent revision first.

2. (15pt) View previous revisions.

Allow users to view a previous revision by clicking on the revision number in the revision list.

3. (20pt) Revert page.

Allow users to revert a page to a previous revision.

4. (50pt)  Full text search.

Implement full text search for the wiki. The system should search the title and the content of the most recent revision of each page. The search results should be ordered by their relevancy scores with the most relevant result first. For each page in the results, display the title and the content (or partial content) of the page with the query terms highlighted. Clicking on the title of a page should take the user to the page.

This feature must be implemented using the full text search support provided by PostgreSQL.

2. (Extra Credit +50pt) Compare two revisions.

A user may select two revisions from the revision list to compare them. The system should display the differences between the two revisions using daisydiff or a similar HTML comparison library. Note that you will not receive any credit if you just do a simple text comparison.

[About Submission and Grading]

For this assignment, in addition to csns.zip, please submit a hw6.txt which includes the following:

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

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, we will use the following SQL scripts in your csns.zip to create, populate, and then clear the database:

Please make sure that these scripts are up to date and can be run in their entirety without generating any errors. You can check out http://sun.calstatela.edu/~cysun/public/cs520-grading/instructions.txt for more details about the grading procedure.