CSC309 Assignment #4: Online Multiple-Choice Tests
(due December 7th in tutorial)
Create a multi-tiered Web application for the creation, maintenance and administration of
multiple-choice tests.
The front end is a web browser (html), the middle layer is Java Servlet based,
the backend is a relational database (see tools below).
This application will allow a test administrator to create a multiple choice test,
and add participants.
Participants (once logged into the system) can take any test (only once).
The test will be marked and feedback given to the participant
immediately or at a later date.
Tests, administrator and participant information (including participants'
choices for the tests they took)
are recorded in a relational database.
The administrator has access to a set of statistics pages which summarize
the performance of participants on any given test.
- Administrators and participants are identified by a globally unique userId.
- Administrators and participants both must login by presenting a valid userId and password.
- Administrators can create tests, view test statistics, view participants' test results.
- Participants can take any test exactly once and once started must finish within
the test's duration.
- Test names are unique.
- Each test has a maximum duration (in minutes). This is enforced by preventing test
submission after the specified time. Include a clock on the participant's page.
- A new test is added by
- stating its name and duration
- adding the questions:
- Add the question text.
- Add each of the 4 possible responses (automatically numbered 1, 2, 3, 4)
- Indicate the correct response
- committing the new test all at once or aborting it all together.
Note: You should use a session based object for the creation of a test.
Once the administrator is finished and wants to commit the test,
the test is completely written to the database.
It is not entered into the database before that, but exists only as a
collection of objects inside the administrators session.
- To keep the assignment shorter, you need not add any capabilities for editing or deleting tests.
- Statistics for the chosen test should include
- The average (across all takers) score (percent) on the test
- for each question, the percent correct and percent incorrect
responses.
- Viewing an individual participants test result:
- Choose a participant by userId and test by name
- View their mark on the test
- View their answers
What to hand in
Hand in hard-copy of the following items.
- External design documentation describing
- The tiered structure and the responsibilities of the various tiers.
- A map diagram with explanations showing the front-end pages.
- The middle-tier (Java) object model using diagrams and explanations.
- The back-end database model.
- All source code, (Java, HTML, JavaScript, whatever, ...) well-commented and neatly formatted.
Tools to be used, resources, design information, and electronic submission infomration
will be made available on the CSC309 Web site.
Good Luck!