Homework 7
CS520, Summer 2008


Due: Thursday, August 21

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.


[Calendar for CSNS]

For this assignment, complete the following features of the CSNS calendar described in Homework 3. Note that a feature must be functional in order to receive any credit at all.

1. Full Text Search (30pt)

A user may perform full text search on event. The system should search both the titles and the descriptions of the events that the user has access to. The search results should be ordered by their relevancy scores, with the most relevant result first. For each event in the results, display the title, description, start and end time of the event with the query terms highlighted. Clicking on the title of the event should take the user to the page showing the details of the event.

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

2. Event Authorization (extra credit +30pt)

Use the tools provided by Spring Security, e.g. URL security, access decision voters, security tag library and so on, to implement access control for events. In particular:

3. More Extra Credit

[Additional Requirements]

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

Scripting elements (i.e. JSP Scriptlets, JSP Expressions, and JSP Declarations) are not allowed in JSPs.

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:

Please make sure these scripts are up to date and can be run in their entirety without generating any errors.