CIS 24: CGI and Perl Programming for the Web

Functional Specification for the Calendar of Events Project

Below are the requirements your project is expected to meet. Each section also provides some implementation suggestions. For each of our remaining labs, I'll suggest an area of the project to focus on, and possibly provide some additional suggestions.

  1. Overview
  2. For this project, you will create a web-based application that allows users to view a calendar of events. The calendar can be about whatever you wish: upcoming concerts at various locations, movies at theatres, a lecture series, etc. The calendar page will be dynamically generated to include events that only occur within the range of dates the user has requested. You will also create management forms for the calendar, which will be used to add, modify, and delete events.

    The specifications for this project are as follows:

  3. Calendar Management Page
  4. This will be a simple page containing a form with the following options to choose from:

  5. Event Entry Page
    1. This page should contain a form where the user provides the following information for an event:

      • Year
      • Month
      • Date
      • Start Time (Hour and Minutes, including AM or PM)
      • Event Title
      • Description (used for entering up to a few sentences that describe the event)
      • URL of a web page with more information (the URLs can be fictitious - you do not need to create the corresponding pages for them)

    2. Your script must receive the form submission and check to make sure that the date and time entered for an event are valid (e.g. February 30 is not a valid date), and that all of the form fields have been filled out. Your script should not accept a submission that has missing data or invalid dates. If there are errors, it should provide a response page that prompts the user to return to the form and correct them.

    3. If there are no errors or omissions in the for submission, your script should save the event data to the Event Data text file.

    Implementation suggestions:

  6. Event Viewing Page
  7. Based on the date range the user entered, your script should generate page listing, in datetime order, the appropriate events from the Event Data file. For each event, display all of the attributes for it that were entered into the management form. Hyperlink the event's Title so that it points to the URL that was given for the (fictitious) page containing additional information.

  8. Page for Selecting an Event to Delete or Modify
  9. This page will be the same as the Viewing Page, with the following exceptions:

    Implementation Suggestion: for keeping track of which event is which, you may want to read each line of your data file into an array. Then you can keep track of which event you're handling since you'll know its position in the array.

  10. Event Modification Page
  11. This page will look the same as the Event Entry page, but the form elements must be pre-filled with the information for the event the user wishes to modify. The user can then edit the existing information on the event. When the user submits the form, the previous information for that event should be removed the the Event Data file, and replaced with the new information.

Return to CIS 24 home page