CSc 8711. Databases and the Web
Fall 2006, Programming Project 2 (Online Exam Management System)
Due: Friday, October 13th
In this project, you will design and implement a Web based application
that allows multiple choice exams to be created as well as administered.
The system should be implemented in Java using Java servlets.
For the database you will use Oracle 10g.
The data requirements for this project have already been analyzed and a
relational database schema has been designed.
The database stores information about multiple-choice exams, their questions
and possible options for answers along with the correct answer.
The project should be implemented in two separate modules:
- Admin Module: The admin module should allow administrators
to create multiple-choice exams. This is basically a data input/update module
that allows admin user to
- Create Exam: After collecting top level exam details such as exam title
etc, the user should be allowed to add questions one at a time. The add
question screen should contain input boxes and text areas for top level
question data and a pull down list for number of options (2 through 5).
Using Javascript, you should create the right number of answer option
data input text areas for answer option text along with a check
box that can be checked for "correct answer" option.
Once all information is given, the user can submit the question to be
added to the database. The user should be presented with the add question
screen in case they want to add the next question.
- Delete Exam: Given a list of exams, the user chooses exam to be deleted.
Only exams in which no one has signed up should be presented. A "confirm delete"
screen should be presented before the exam is deleted.
- Edit Exam: The user should be able to add new questions at a particular
position and delete a question.
- User Module: The user module should allow ordinary users to
register, sign in, update profile, sign up for exams, take exams, and see their results.
- Register, Change Password, Sign In, and Sign Out: A standard login page
(with email and password text boxes) along with a "If you do not have an
account, register here" link. Once logged in successfully, the user should be
presented with several options including "Update Profile" in which they can
change some of the data about themselves such as password, address etc.
- Enroll in Exam(s): A menu option for the user - used to
enroll in a particular exam (you may present a select list of all
available exams and ask the user to choose one). Note: If the student is
already enrolled in the exam and has finished taking the exam or is
currently taking the exam (i.e. has started taking the exam but not yet
finished), a warning should be issued stating that his answers will
be reset. You may confirm that the user wishes to reset the old exam.
Once enrolled, you should present the user with a confirmation which includes
details about the exam he or she has just signed up for.
- Take an Exam: The user should be presented questions from where they
left off the last time they signed on to take the exam. Questions should
be presented in order using the pre-defined number of questions per page.
Once answers are submitted, they cannot be revisited. The user is then
presented the next set of questions until time runs out or there are
no more questions..
- View their Grade Report(s): The user chooses the exam for which they
like to view results. Only list of exams that have been completed should be
presented. The format of the grade report is up to you, but must include
number of questions answered correctly, total number of questions,
percentage coorect, and a detailed listing of user responses and
correct answers.