MIDTERM
CS320, Winter 2012


Please upload your files to CSNS. The files should include all the source code, documentation (optional), and an HTML file midterm.html which contains a link to your application deployed on the CS3 server. Note that file uploading will be disabled automatically after 8:10PM, and late submission will not be accepted.

[Problem Description]

In this exam you are going to develop an online course management application for the CS department. Your application  must use the MVC architecture as discussed in class, and the application must meet the following requirements:

1. Display Courses

The application should have a course listing page that lists all the courses that are currently managed by the application. For example:

Code Name Prerequisites Operation
CS120 Introduction to Web Site Development   Edit
CS202 Introduction to Object Oriented Programming   Edit
CS203 Programming with Data Structures CS202 Edit
CS320 Web and Internet Programming CS120 CS203 Edit

Add Course

Note that a course consists of a code (e.g. CS120), a name, and zero or more prerequisites. The course listing should be sorted by course code in ascending order.

2. Add Courses

A user should be able to add courses. For example:

Code:
Name:
Prerequisite(s):
  • CS120
  • CS202
  • CS203
  • CS320

Note that the prerequisites of the course are selected from the list of existing courses, and after the new course is added, the user should be redirected to the course listing page.

3. Edit Courses

Code:
Name:
Prerequisite(s):
  • CS120
  • CS202
  • CS203

The Edit Course function should allow a user to change the code, the name, as well as the prerequisites of a course. Note that the edit course form should be pre-filled with the current information of the course, and the list of courses for prerequisites should not include the course itself. After the changes to the course are saved, the user should be redirected to the course listing page.

[Grading Criteria]