Homework 4
CS520, Fall 2012


Due: Thursday, November 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.


[Readings]

[Project Listings 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. (25pt) A user may select from the top menu Curriculum -> Projects to see the project listing of a department. The URL of the page should be  http://<host>/csns2/department/<dept>/projects, where <dept> is the abbreviated name of the department, e.g. cs for Computer Science Department. By default the listing shows the projects of the latest year in which projects are available, and a user may choose a previous year from a drop-down list to see the projects in that year. For each project, the listing displays the name of the project, the advisor(s) of the project, and the student member(s) of the project.

2. (15pt) A user may click on the name of a project to see the details of the project. For this assignment, the project detail page should show the project name, description, and the participants.

3. (20pt) A user may add a new project to the listing. The user must provide the name, description, and the year of the project. The user who adds the project should be automatically added as either an advisor of the project (if the user is an instructor or a faculty of the department) or a student member of the project.

4. (40pt) A user may edit a project in the following ways:

Note that the user who edits a project cannot remove him or herself from the project.

[Notes]

In this assignment you do not need to implement security, input validation, or project resources. We will deal with them in future assignments.

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.