Homework 4
CS520, Spring 2012

Due: Friday, May 11

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 your work in Homework 3 and implement the following features in CSNS2. Feel free to change your model classes if necessary.

1. (30pt) When an instructor clicks on a section title (with the hyperlink added in Homework 1), the application should take the instructor to the class website of the section. If the class website does not exist, the application should display the following:

The class website does not exist. Do you want to create it? Yes No

Clicking on Yes should take the instructor to a page where the class website can be created, and clicking on No should take the instructor back to the previous page. Note that during the process of creating a class website, the application should not ask the instructor to enter any information that is already in the system.

2. (20pt) Once a class website is created, it should be accessible at the URL http://<host>/csns2/sites/<quarter>/<course>/<section>/, where the content of the website (as described in Homework 3) is displayed.

3. (20pt) An instructor should be able to add announcements to the Announcements block.

4. (10pt) The Assignments block should list the name and due date of the assignments of the class.

5. (20pt) An instructor should be able to add more blocks to a class website. For this assignment you do not need to implement adding items to a block.


The user interface design is up to you. Good user interface design will receive up to 30pt extra credit after the whole project is completed at the end of the quarter. Particularly bad UI design will receive extra penalty. Note that a good UI design is not necessarily fancy or colorful, but it has to be functional, intuitive, convenient, and pleasant.

[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.