Homework 2
CS520, Fall 2012

Due: Thursday, October 11

Please upload your files to CSNS. The files should include all the source code, documentation (optional), and an HTML file hw2.html, which contains a link to your application deployed on the CS3 server. Note that file uploading will be disabled automatically after 11:59PM of the due date, so please turn in your work on time.


[Project Listing]  In this assignment, you are going to implement a web application that hosts a project listing like the one on CSNS. A project has a name, a description, and a number of resources. A resource has a name and content, and the content of the resource is either a URL (which we will refer to as a URL resource) or a piece of text (which we will refer to as a text resource). 

Your implementation must use servlet, JSP, and the MVC architecture. The data can be stored in application scope, i.e. you do not need to use a database for this assignment. Note that no scripting elements are allowed in JSP pages.

1. (30pt) The default page of the application lists the projects of the most recent quarter. For example:

Senior Design Projects

Project Resources
Abstract Compendium Of Models, Environments, and Tools Project Report, Presentation Video Add Resource
Supply vs. Demand-Driven Economies Project Report, Experimental Results Summary Add Resource

Add Project

A use may select a different quarter from the drop-down list to see the projects in that quarter.

2. (10pt)  A user may click on the name of a project to see the project description. For example: 

Supply vs. Demand-Driven Economies

Quarter Spring 2012
Description The system is meant to be able to dump data and have various configurable properties that can be used to change how the model works and runs. Currently, the code needs to be modified to change the simulation, but future work will include a GUI for editing model parameters.
Resources

3. (10pt) Clicking on a URL resource should take the user to that URL, and clicking on a text resource should show the content of the resource.

2. (25pt)  To add a new project, a user must provide the following information about the project:

Add Project
Quarter:
Name:
Description:

Clicking the Add Project button should create the project then redirect the user to the project list.

3. (25pt) A user may also add resources to a project. For example:

Supply vs. Demand-Driven Economies
Name:
URL:
or Text:

Clicking the Add Resource button should add the resource to the project then redirect the user to the project list.