Project 2 - Online Course Registration
Part 1 - Due - Wednesday, March 3, 2004
Part 2 - Due - Wednesday, March 10,2004
The goal of this assignment is to give you some experience with
Servlets, JDBC, and mysql. You are going to create a web site
that will allow a student to do online course registration.
Your website will use Java Servlets to accept information from the
user and display information for the user. Your Servlets will
access a back-end mysql database which
stores information about the students (student table), all courses
offered (course table), and the entries detailing which students
are registered for which courses (reg_entry table). Your Servlets
may retrieve information from the database and display it for the
user as well as take information from the user and update the
information currently stored in the database.
Your assignment is to design and implement a website that will
allow the following functions:
- Login: A student should be able to log in using a student id
number and password. Your site should accept the username and
password and verify that the user is in the database (student
table) and that the password matches the password stored in the
database.
- Display Current Registration Status: Once logged in, a
student should be able to view a list of the courses for which
she is currently registered (join the reg_entry table and the
course table). Also, note that the user may not be registered
for any courses. You must determine what you will display in
this case.
- Add a Course: A student should be able to view the list of
courses offered (course table in the database) and select to add
one of those courses to her schedule. Also, note that if the
user tries to add a course for which she is already registered,
she should receive an error message.
- Delete a Course: A student should be able to select one of
the courses for which she is registered and delete it from her
schedule.
The following documents should help get you started using the
necessary technology:
Getting Started with mysql
Getting Started with Servlets
The following pieces of code should help you get started with
writing Servlets and using a database:
Welcome.java
Login.java
Part 1 Turnin
For Part 1, you need to (1) turn in a full specification of your
design, (2) turn in the implementation of functions 1 and 2 above
(Login and Display Current Registration Status), and (3)
demonstrate to me your current progress. Your specification
should include all of the components (classes/servlets) you will
implement, the functions of each component, and the interaction
between the components. You will be graded on your design, so I
encourage you to think carefully about how to design your system.
Your implementation should include placeholders for the latter
functions. For example, your part 1 implementation might provide
the user with the option of adding a class even though you may not
have completed the code to actually add a course to a user's
schedule.
On March 3, class will be held in Clapp 202. You required to be
there to demonstrate your progress. If you do not
demonstrate your project on this day, it is your responsibility to
come and speak with me about alternate scheduling before
March 3. Points will be deducted if you do not complete your
demonstration by March 3.
Part 2 Turnin
For Part 2, you will demostrate the full workings of your
website. Your website should support all of the functions
outlined above. You will give a short (5 mintues) presentation
where you demonstrate all of the features of your website and tell
the class about any interesting design choices you made, or any
particularly challening problems you came across. It is likely
that we will not complete the demonstrations during the class
period. Therefore, I will bribe you to stay for the first part of
the lunch hour by providing pizza. If you need to leave early,
you need to speak with me and we will schedule your demonstration
for the first part of the class. If you are allergic to pizza, or
have any other dietary restrictions, let me know! If you do not
demonstrate your project on this day, it is your responsibility to
come and speak with me about alternate scheduling before
March 10. Points will be deducted if you do not complete your
demonstration by March 10.
Misc Info: This assignment is to be done individually. You
may speak with other students about your design and your
implementation. However, any work you turn in must be your own,
original work. You are not to look at another student's code or
written documentation.
Efforts above an beyond the requirements will be rewarded with
extra credit. For example, you could modify the Add a Course
function to allow the student to browse available courses by
department and/or you could provide the ability to add a new
student to the database using an online form. If you want to
discuss the amount of extra credit you will receive for adding a
particular feature, come and speak with me.
Sami Rollins