Please upload your files using the online turnin server.
The files should include all the source code, documentation, and an
HTML
file hw4.html, which
contains a link to your JSP page on the CS server. Note that file
uploading will be disabled automatically after 11:59PM
of the due date, so please turn in your work on time.
[Reading]
For this assignment, add support for events to
the web calendar you developed in Homework 3,
and keep all information about users, tasks, and events in a database.
Again, all features described in previous assignments must work;
otherwise there will be a credit penalty of up to 30pt.
[Events] (40pt)
Events are things that are associated with certain time periods,
e.g.
"CS320 Lecture on Tuesday from 1:30PM to 3:10PM". More specifically, an
event has at least the following properties:
Date - each event is associated with a particular date. For
simplicity we assume that there are no multi-day events.
Name - the name of an event, e.g. "CS320 Lecture".
Location - the location of the event, e.g. "E&T A210". This
property is optional.
Start and End Time - the time when the event starts and ends,
e.g. the start time "CS320 Lecture" is 1:30PM, and end time is 3:10PM.
Your web calendar should allow a user to add a new event, and when the
user selects a date, the calendar should display the events that are
associated with that date. The interfaces for adding new events and
displaying existing events are completely up to you. Particularly good
interface design will receive up to 20pt extra credit. The following
two figures are screenshots of Mozilla Calendar, from which you might
find some inspiration.
Figure 1. Display Events
Figure 2. Add a New Event
[Database] (40pt)
Design database tables to store information about users, tasks, and
events. Since this is not a database class, you do not have to worry
about normal forms and such. However, you have to make sure your
database design is functional and correct, for example, a username
attribute should have a UNIQUE constraint to ensure that no one can
register a user name which is identical to an existing user name. For
this part of the assignment, you need to turn in a calendar.sql
file which includes all the CREATE TABLE statements for your database.
Once your database is set up, modify your calendar application to use
the database for storing tasks and events, as well as for user
authentication. Note that you do not have to create a user registration
page - we will leave that for the next assignment.