Homework 6
CS520, Spring 2012


Due: Friday, June 1

Package all the source files of your project into a zip file as you did 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.

[Class Websites for CSNS2]

Continue to work on Class Websites for CSNS2 and implement the following features. This assignment builds on top of your work in the previous assignments, so make sure that all the functions from the previous assignments work properly; otherwise you will not receive any credit.

1. (40pt)  Class Website Listing

Add an entry Sites to the top menu Resources. When a user clicks on Sites, the application displays a listing of the existing class websites organized by quarter. For example:

Fall 2012

Fall 2010

The site listing must be implemented using jQuery UI Accordion. Furthermore, the implementation must meet the following requirements:

2. (40pt) Full Text Search.

Add a search function to class websites to allow users to perform full text search on items. The search should include item name, and item content if the content is an URL or text. The search results should be ordered by their relevancy scores with the most relevant result first. For each item in the results, display the item name, and the part of the text that matches the query with the query terms highlighted. Clicking on the item name should perform the action described in Homework 5 based on the item content type.

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

3. (Extra Credit +20pt)  FTS on Uploaded Files..

Improve your item search implementation so it also searches the content of the uploaded files. Both .txt and .pdf files must be supported. For this exercise please also submit a hw6.txt file which lists the Maven dependencies that you added to the project in order to parse the PDF files. 

[About Submission and Grading]

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

To test your project, we will use the following SQL scripts in your zip file 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 any errors.