Homework 6
CS520, Summer 2008


Due: Thursday, August 14

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. Section Events (40pt)

When an instructor creates a new assignment, a section event is created and added to the calendar automatically. The title of the event is the name of the assignment, and the start time and end time of the event are the due time of the assignment.

When an instructor edits an assignment, e.g. changing the name or due date of the assignment, the event associated with the assignment should be changed automatically. And if an assignment is deleted, the event associated with it should be deleted as well.

Make sure that date highlighting in the calendar display still works correctly after you implement section events. In particular, a date should not be highlighted if there is a section event on that date but the current user is not enrolled in that section.

2. Event attachments (30pt)

Allow users to to add file attachments to an event. File attachments are uploaded one file at a time, with no limit on how many files can be attached to an event (i.e. similar to file upload for homework submission in CSNS).

The attachments of an event are displayed in the event details view, and a user may click on an attachment to download or view it.

3. Event reminders (30pt)

Every day at midnight, an email reminder is sent to the users who have private and/or section events on the next day. The email should include the title, start time, and end time of the events for the user on the next day.

Extra credit will be awarded if the implementation for this feature is particularly efficient.

[Additional Requirements]

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

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.