PlaNet - Overall Design Document
Technical Specifications



Technical Specifications



Function Specifications

MMS Functions

Add Meeting
Input:
  1. Meeting Title
  2. Starting Time
  3. Ending Time
  4. Location
  5. Meeting Attendees
  6. Notes
Output:
  1. "Message Sent" dialog
Actions:
  1. The Add Meeting function creates an instance of Meeting, with the Starting Time, Ending Time, Location, and Notes attributes as given from the user inputs. It also creates at least one instance of the relationship "is attending", joining the meeting with one or more employees. The originator, by default, must attend his own meeting. The system checks the meeting database to ensure no other meeting occurs in the same location and containing any common time slots. If one does, a message will appear on the screen to notify the user that his or her attempt to schedule a meeting has failed and why. The system databases will be left unchanged.
  2. The location field is an input which would specify the room (and building if we consider the expansion of the company and our system) if it entered, and can be left as '0' for personal meetings or any non-business related appointments which the user can use to ensure his diary will let the the system - and therefore the other co-workers - that he or she is busy for the given time and date.
  3. Messages will be sent to employees entered in the "Attendees" section - with the exception of the originator - and a dialogue box will be displayed on the screen, telling the meeting originator that the appropriate messages are being sent to the appropriate personnel. All messages on the system are automoted and in an impersonal format.
If Time Permits:
Modify Meeting
Inputs: Any of the following (or none)
  1. Meeting Title
  2. Starting Time
  3. Ending Time
  4. Location
  5. Meeting Attendees
  6. Notes
Output:
  1. "Message Sent" dialogue
Actions:
  1. The function, Modify Meeting, displays information about a particular meeting, including its Starting Time, Ending Time, Location, Meeting Attendees, and Notes. If the user viewing the meeting information is the originator of the meeting, he or she is also allowed to edit any of that information if the user so desires with this function. If information is altered, the diaries of every employee attending will be updated. The system does check whether a conflict occurs in the same manner as the Add Meeting function, and will display a proper error message, refusing to change the meeting time and location.
  2. If a meeting is modified, Messages will be sent to employees entered in the "Meeting Attendees" section (and the ones that have been removed from the meeting, if such a modification was made) - with the exception of the originator - and a dialogue box will be displayed on the screen, telling the meeting originator that the appropriate messages are being sent to the appropriate personnel.
Cancel Meeting Attendance
Input:
  1. Meeting Title
  2. Location (see below)
  3. Time Slot (see below)
Output:
  1. "Message Sent" dialogue
Actions:
  1. Any user can use this function to remove a meeting from his or her diary, i.e. the person will not be attending the meeting. Through our user interface, the "time slot" and "location" inputs are querried automatically by the system and are not manually entered.
  2. If a meeting is deleted from a user's diary, the originator of the meeting will be sent a message of notification, telling the originator who, from his or her requested list of employees, will not be able to attend his or her meeting.
Cancel Meeting
Input:
  1. Meeting Title
  2. Location (see "Cancel Meeting Attendance")
  3. Time Slot (see "Cancel Meeting Attendance")
Output:
  1. "Message Sent" dialogue
Actions:
  1. If an originator of a meeting cancels one of his meetings, the instance of that meeting is removed from the database, along with all diary entries corresponding to it.
  2. If a meeting is cancelled, Messages will be sent to employees entered in the "Meeting Attendees" section - with the exception of the originator - and a dialogue box will be displayed on the screen, telling the meeting originator that the appropriate messages are being sent to the appropriate personnel.
Change Password
Input:
  1. Old Password
  2. New Password
  3. New Password - verification
Output:
  1. A message will be displayed indicating one of three things:
    1. The password update was successful.
    2. The old password entered is incorrect.
    3. The new passwords don't match.
Actions:
  1. When a user requests to change his password, he or she is required to enter his or her current password, his or her new password, and the new password again. If the entered current password does not match the user's current password, or if the entered new passwords do not match each other, a request failed message appears. Otherwise, a request succeeded message appears and the user's password is changed to the new password the user had entered.
Call Periodic Meeting
Input:
  1. Meeting Title
  2. Starting Time
  3. Ending Time
  4. Ending Date
  5. Period
  6. Location
  7. Meeting Attendees
  8. Notes
Output:
  1. "Message Sent" dialogue (optional)
Actions:
  1. This function creates meetings in the same way Add Meeting does, but allows periodic meetings to be scheduled. The user would enter a period (monthly, weekly, daily) and an ending date and a meeting will be scheduled multiple times based on the given period, up until the given ending date - or until one year from the present day, whichever comes first. The same database error checking will be done as with Add Meeting.
  2. A message will be sent in the same manner as it is sent in Add Meeting, but is only sent once per periodic meeting set (not once per meeting).
Find Common Time
Input:
  1. Employee Names
  2. Duration
  3. Period
Outputs:
  1. List of Available Times
Actions:
  1. This functions looks up the entered employees' schedules and returns a list of available times of the duration specified within in the specified time period.

PAS Functions

Add Employee
Input:
  1. Employee Name
  2. Employee Password
  3. Employee Comments
Output:
  1. None
Actions:
  1. The Add Employee function takes the Employee Name (first and last), Password, and Comments (an unformatted string containing employee information such as office position, age and/or birth date, address, family status, and any other information the system administrator may wish to include, and creates an instance of Employee to put in the system database.
Modify Employee Information
Inputs: Any of the following (or none)
  1. Employee Name
  2. Employee Password
  3. Employee Comments
Output:
  1. None
Actions:
  1. The Modify Employee Information function lets System Administrators view and edit any or all information about an employee in the system database, these include the employee's Name, Password, and Comments information. If any change is made, the employee entry is updated in the system's database.
Delete Employee
Input:
  1. Employee Name
Output:
  1. "Message Sent" dialogue (optional)
Actions:
  1. The Delete Employee function calls the function "Cancel Meeting" on all meetings the specified employee had called/originated and the function "Delete Diary Entry" on all entries in the specified employee's diary. It then removes the employee from the system database. To put it simply, all data associated with the deleted employee is removed from the system. A warning message will be displayed to prevent accidental deletion.

Auxiliary Functions

Login
Input:
  1. Employee Name
  2. Password
Output:
  1. (report of success)
Actions:
  1. The Log In is the first and most important window that is displayed upon the normal boot up of the system. It asks for the user's Name (as he is identified with on the system) and Password, and then verifies the user's authentication. If the user has administrator status he or she is provided with the MMS window as well as the PAS window. Otherwise, successful authentication results in bringing up the MMS window, only.
Logout
Input:
  1. None
Output:
  1. None
Actions:
  1. This exits the MMS and PAS systems.

Entity Relationship Diagram

ERD Diagram

Data Flow Diagrams


Structure Charts


Module Specifications

  • The following module specification was derived from the structure chart describing the calling procedures at the screen shots level. Each module describe the flow of the screens as other modules are invoked.


  • PlaNet System:
  • login:
  • Main screen:
  •      case request {
           help: call help screen
           v/m: call view modify
           print: call print
           chpwd: call change password
           exit: close all form and exit
         }
  • help:
  • View modify:
  •          case
               1: call meeting selection
               2: prompt for information and update
               3: remove current selected meeting
               4: remove a user out of meeting
               5: call find time module
               6: call set periodic meeting module
               7: prompt for information and add 
    
  • Print:
  •           print the current schedule to print
    
  • change password:
  •           prompt user to enter old password check
              if password is correct prompt user to enter new password
              prompt user to enter new password again 
              compare the last two strings
              if ok call
                    return to main screen 
              else 
                    call change password again 
    
  • Administration module:
  •           case {
                    employee: 
                            call employee module 
                    location: 
                            call location module
              }
    
  • Employee module:
  •           case {
                    ADD: prompt for information and add 
                    DELETE: remove current employee record 
                    MODIFY: modify information and update current record
              }
    
  • Location:
  •           case {
                    ADD: prompt for new information 
                    DELETE: remove current location record
                    MODIFY: modify information and update current record
              }
    

    Table Definitions

    TABLE: Employee

    Key Attribute Data Type Comment
    Primary EmployeeID Integer Unique ID to identify the employee
    (Automatically generated)
    Secondary LoginID String[10] Unique name for user identification
    . FirstName String[20] First name
    . LastName String[50] Last name
    . EmployeeNotes String[500] Administrator comment regarding employee
    . Password String[8] Private code for user authentication
    . Administrator Boolean True for administrators, false for regular users

    TABLE: IsAttending

    Key Attribute Data Type Comment
    Primary EmployeeID Integer The ID of the employee
    Primary MeetingID Integer The ID of the meeting

    TABLE: Meeting

    Key Attribute Data Type Comment
    Primary MeetingID Integer The unique ID for the meeting
    (Automatically Generated)
    Secondary LocationID Integer The ID of the location
    Secondary Date Date The day of the meeting
    Secondary StartTime Time The start time of the meeting
    Secondary EndTime Time The end time of the meeting
    Secondary Originator Integer The ID of the employee that originated the meeting
    . MeetingNotes String[500] A description of the meeting

    TABLE: Location

    Key Attribute Data Type Comment
    Primary LocationID Integer The unique ID for the location
    (Automatically Generated)
    Secondary Desc String[40] The unique string description of the room

    TABLE: Notice

    Key Attribute Data Type Comment
    Primary NoticeID Integer The unique ID for the notice
    (Automatically Generated)
    . EmployeeID Integer The ID of the employee
    . MeetingID Integer The ID of the meeting
    . DefaultNoticeID Integer The ID of the default notice to include

    TABLE: DefaultNotice

    Key Attribute Data Type Comment
    Primary DefaultNoticeID Integer The unique ID for the default notice
    (Automatically Generated)
    . Text String[256] The text of the default notice.


    Data Dictionary

    Administrator = [ "true" | "false" ]
    * Non-key attribute of the entity "Employee". This value will be "true" if an employee is a system administrator, and will be "false" if an employee is a user. * Data flow corresponding to a particular employee's status to indicate whether or not they are a system administrator.
    Date = string
    * Secondary key attribute of the entity "Meeting". Consists of a string of 6 digits: the first two represent the year, the next two represent the month, and the last two represent the date.
    Default Notice = @DefaultNoticeID + Text
    * Entity: a list of possible messages that the system can send to employees to inform them of changes to their schedule. * Data flow corresponding to a particular instance of "Default Notice".
    Default Notices = {Default Notice}
    * Data store in DFD corresponding to the entity "Default Notice".
    DefaultNoticeID = integer
    * Primary key attribute of entity "DefaultNotice". A unique integer used to refer to a particular instance of "DefaultNotice".
    Desc = string
    * Secondary key attribute of the entity "Location". A string of up to 40 characters which serves as a unique description of the room.
    Employee = @EmployeeID + LoginID + FirstName + LastName + EmployeeNotes + Password + Administrator
    * Entity: represents employees who are currently employees of the company that this system remembers information about. * Data flow corresponding to a particular instance of "Employee".
    Employees = {Employee}
    * Data store inDFD corresponding to the entity "Employee".
    EmployeeID = integer
    * Primary key attribute of the entity "Employee". A Unique ID used to identify a specific employee.
    EmployeeNotes = string
    * Non-key attribute of the entity "Employee" A string of up to 500 characters containing information that is important about an employee. * Data flow corresponding to the "EmployeeNotes" of a particular instance of "Employee".
    EndTime = string
    * Secondary key attribute of the entity "Meeting". A string of 4 digits, the first two of which represent the hour (with a range of 1 to 24) and the second two representing the minutes (must be in 15 minute intervals). Used to indicate the time at which a meeting is scheduled to end. * Data flow corresponding to the "EndTime" for a particular instance of "Meeting".
    FirstName = string
    * Non-key attribute of the entity "Employee". A string of up to 20 characters that is the first name of the employee. * Data flow corresponding to a particular employee's first name.
    is at a = @MeetingID + @LocationID
    * Relationship between the entity "Meeting" and the entity "Location". Indicates that a particular meeting is scheduled to be held in a particular location. Type 1:1 - Each meeting must be scheduled to take place in one location and a location may only be scheduled to be used for one meeting at a given time.
    is attending = @employeeID + MeetingID
    * Relationship between the entity "Employee" and the entity "Meeting". Indicates that an employee is scheduled to attend a particular meeting. Type Mc:Mc - each instance of "Meeting" can have zero or more employees attending it, and each employee may be attending zero or more meetings.
    is chosen from = @NoticeID + DefaultNoticeID
    * Relationship between the entity "Notification" and the entity "Default Notices". Indicates that a particular default notice is part of a particular notice. Type 1:Mc - each instance of a "Notification" must contain only one "Default Notice", but each "Default Notice" can be in zero or many instances of "Notification".
    LastName = string
    * Non-key attribute of the entity "Employee". A string of up to 50 characters that is the last name of the employee. * Data flow corresponding to a particular employee's last name.
    Location = @LocationID + Desc
    * Entity: represents the locations in which a meeting can take place. * Data flow corresponding to a particular instance of "Location".
    Locations = {Location}
    * Data store in DFD corresponding to the entity "Location".
    LocationID = integer
    * Primary key attribute of the entity "Location", and Secondary key attribute for the entity "Meeting". A unique ID used to refer to a particular instance of "Location".
    Location Information = {is at a}
    * Data flow in the DFD representing the relationship "is at a" between the entities "Meeting" and "Location". This is all of the instances of "Meeting" that are scheduled to take place at a particular "Location".
    LoginID = string
    * Secondary key attribute of the entity "Employee". A string of up to 10 characters used as a unique name for user identification. This string is used to identify an employee when the log in to the system. * Data flow corresponding to the LoginID of a particular employee.
    Meeting = @MeetingID + LocationID + Date + StartTime + EndTime + Originator + Title + MeetingNotes
    * Entity: represents a meeting that an employee has called. * Data flow corresponding to a particular instance of "Meeting".
    Meeting Attendees = {is attending}
    * Data flow representing the relationship "is attending" between the entities "Meeting" and "Employee". A list of all instances of "Employee" scheduled to attend a particular instance of "Meeting".
    Meeting Information = {is attending}
    * Data flow representing the relationship "is attending" between the entities "Meeting" and "Employee". A list of all instances of "Meeting" that a particular instance of "Employee" is scheduled to attend.
    MeetingID = integer
    * Primary key attribute of the entity "Meeting". A unique ID that is automatically generated when an instance of "Meeting" is created.
    MeetingNotes = string
    * Non-key attribute of the entity "Meeting". A string of up to 500 characters input by the originator of the meeting to provide a description of what the meeting is about.
    Meetings = {Meeting}
    * Data store in DFD corresponding to the entity "Meeting".
    NoticeID = integer
    * Primary key attribute of the entity "Notification". A unique ID that is automatically generated when an instance of "Notification" is created.
    Notification = @NoticeID + EmployeeID + MeetingID + DefaultNoticeID
    * Entity: contains all notices that the system is 'holding' for each employee. * Data flow corresponding to a particular instance of "Notification".
    Notifications = {receives}
    * Data flow in DFD corresponding to the relationship "receives" between the entities "Employee" and "Notification". This is all instances of "Notification" that a particular employee is to receive. * Data store in the DFD corresponding to the entity "Notification".
    Originator = integer
    * Secondary key attribute of the entity "Meeting". Corresponds to the EmployeeID of the employee who originated the meeting. * Data flow corresponding to the EmployeeID of the employee who originated a particular instance of "Meeting".
    Password = string
    * Non-key attribute of the entity "Employee". A string of up to 8 characters which are used in combination with their loginID to verify a user's identity and allow them to log in to the system. * Data flow corresponding to an individual employee's password.
    receives = @EmployeeID + @NoticeID
    * Relationship between the entity "Employee" and the entity "Notification". Type 1:Mc -each employee can have one or more messages, but each message is for only one employee.
    Schedule Information = {is attending}
    * Data flow in DFD corresponding to the relationship "is attending" between the entities "Employee" and "Meeting". This is all of the instances of "Meeting" that a particular employee is scheduled to attend.
    StartTime = string
    * Secondary key attribute of the entity "Meeting". A string of 4 digits, the first two of which represent the hour (with a range of 1 to 24) and the second two representing the minutes (must be in 15 minute intervals). Used to indicate the time at which a meeting is scheduled to begin. * Data flow corresponding to the "StartTime" of a particular instance of "Meeting".
    Text = string
    * Non-key attribute of the entity "DefaultNotice". A string of up to 256 characters that is the text of the default notice.
    Title = string
    * Secondary key attribute of the entity "Meeting". A string of up to 50 characters used to specify the title of a meeting. * Data flow corresponding to the "Title" of a particular instance of "Meeting".


    Back to top - Table of Contents - ISSI Home Page