SCHEDULEPRO DESCRIPTIVE PAPER – Lab 1 | Lab 1: Descriptive

SCHEDULEPRO DESCRIPTIVE PAPER – Lab 1
Lab 1: Descriptive Paper
Version # 3
Steven L. Small
Old Dominion University
Professor Brunelle
February 27, 2012
|1
SCHEDULEPRO DESCRIPTIVE PAPER – Lab 1
|2
Table of Contents
1. INTRODUCTION.…………....………………………………………………………………3
2. PRODUCTION DESCRIPTION……………………………………………………………..5
2.1. Key Product Features and Capabilities.…………………………………………………..5
2.2. Major Components.………………………………………………………………………6
2.3. Target Market/Customer Base…………………………………………………………..12
3. SCHEDULEPRO PRODUCT PROTOTYPE DESCRIPTION.…………………………….12
3.1. Prototype Functional Goals and Objectives………………………………………….….13
3.2. Prototype Architecture…………………………………………………………………..14
3.3. Prototype Features and Capabilities……………………………………………………..15
3.4. Prototype Development Challenge...……………………………….…….………….…..16
GLOSSARY …………………………………………………………………………………….17
REFERENCES…………………………………………………………………………………..18
List of Figures
Figure 1. Current process flow of meeting creation………………………………………………3
Figure 2. Main Functional Components Diagram……………………………………………….10
Figure 3. Administrator interface – Room and Resource Management…………………………11
List of Tables
Table 1. Competition matrix……………………………………………………………………..5
Table 2. Profile comparison between real world product and prototype………………………...13
SCHEDULEPRO DESCRIPTIVE PAPER – Lab 1
1
|3
INTRODUCTION
Scheduling meetings for large groups of people is a complex, frustrating, and inefficient
process. The current process of organizing a meeting often involves having a coordinator take
the time to search for employees who are required or asked to attend, review their schedules and
attempt to find the best meeting time that accommodates the maximum attendance (Figure 1).
The introduction of SchedulePRO will effectively allow a business or organization to plan
meetings while keeping personnel and resource availability in mind. SchedulePRO will
streamline current business practices by replacing the pen-and-paper, and other time consuming
methods of planning techniques. It takes the grunt work out of coordinating meetings, allowing a
business to focus on the real goal - an effective and well attended event.
Figure 1. Current process flow of meeting creation
[This space intentionally left blank]
SCHEDULEPRO DESCRIPTIVE PAPER – Lab 1
|4
Unfortunately, the coordinator is unable to decide the best type of scenario for all
employees to meet, especially if there is a large number required to attend. This problem occurs
in all environments: schools, large businesses, and personal use. Tools such as Outlook and
Doodle have tried to mitigate the problem by invoking shared calendars, but still do not provide
an optimal solution. SchedulePRO plans to accomplish this goal.
For example, a CEO wants his/her coordinator to set up a meeting seminar with the CEO,
several key members, and over 50 employees. The coordinator simply runs the SchedulePRO
software which will: mine data from the attendee’s calendar, select the best room and the best
time/date to hold the meeting to maximize attendance. A list of optimized meeting results is
given to the coordinator from which he/she selects.
In the SchedulePRO prototype, the program will be run through a web service. The data
receive from the attendee is imported from their Google calendar (if they have one) and is
integrated into the infrastructure. It saves time for the coordinator, becomes more efficient for the
attendee, and acquires all the necessary information needed to create an event. The intention for
creating a web-based prototype is for its use-case and feedback potential. With so many users,
the prototype can eventually become scaled for commercial use.
[This space intentionally left blank]
SCHEDULEPRO DESCRIPTIVE PAPER – Lab 1
2
|5
PRODUCT DESCRIPTION
The goal of SchedulePRO is to build upon the products currently used today, such as
Microsoft Outlook of Google Mail. The software is able to integrate itself onto existing
infrastructures which do not possess an effective feature that allows meetings to be scheduled.
Businesses that run the software will come to understand its usefulness and will no longer have
to worry about another scheduling tool again and save precious time and money in the process.
2.1
Key Product Features and Capabilities
Software such as Doodle, ResSchedule, ScheduleView, and the Outlook Calendar
implement features that mimic SchedulePRO (Table 2); however, there are features and
capabilities that SchedulePRO has and others do not. The major features and components consist
of:

Automatic importation of calendar data

Availability editor for users without calendars

Resource management capabilities, allowing for customizable room creation

Attendee prioritization, which determines who is required to attend the meeting for it
to take place

An “Easy Button” optimization algorithm computes and displays the best meeting
instance available
[This space intentionally left blank]
SCHEDULEPRO DESCRIPTIVE PAPER – Lab 1
|6
Table 2. Competition matrix
2.2
Major Components
A SchedulePRO user will interact with the SchedulePRO web server through the
following user interfaces that facilitate successful meeting creation:

Coordinator interface

Attendee interface

Administrator interface
The coordinator GUI is specifically designed for the user who is planning the meeting.
Most of the software revolves around the coordinator, whose responsibility is to create the
meetings in the first place. The GUI itself will consist of interactive screens allowing the
coordinator to quickly and effectively select parameters for creating a meeting. A database,
populated with emails of attendees, is viewable to choose and prioritize who is needed for each
particular meeting.
Once the attendees are selected, the coordinator is tasked to choose a venue. Room
selection, created by the administrator, becomes available, in which the coordinator can select
SCHEDULEPRO DESCRIPTIVE PAPER – Lab 1
|7
single or multiple venues. Each venue contains its own resource data, such as maximum
capacity, and can be outfitted with various objects such as:

Projector

Media PC

Blue-Ray

Drawing Board

Podium

Speakers
When attendees are chosen and a venue is selected, the coordinator will have to decide the date
and time range of when the meeting should occur. The range of dates covered can vary from one
day to two months. The interface will automatically exclude dates such as weekends and
holidays from the meeting times available.
Once parameters are selected the coordinator can either submit the information and run
the algorithm or send out a notification email to the attendees. All parameters are submitted to
the algorithm. The scheduling algorithm initiates a data fetcher process for the attendees listed in
the meeting parameters and waits till it finishes. The algorithm then retrieves the appropriate
availability data from the SchedulePRO database and produces a meeting report with optimal
meeting times using that data. Finally, the meeting coordinator reviews the meeting report and
requests attendance confirmation for the generated optimal event time(s).
The attendee is sent a notification after the coordinator creates the meeting and is given
an option to import data from their current calendars or manually input their schedule.
Information sent back to the coordinator is processed through the optimization algorithm to
SCHEDULEPRO DESCRIPTIVE PAPER – Lab 1
|8
provide a fitness of best meetings available. The end decision of which event to choose is
always made by the coordinator.
Figure 2. Main Functional Components Diagram
There are several hardware components required to run SchedulePRO (Figure 2):

SchedulePRO web server

SchedulePRO database

Schedule and calendar software databases

Coordinator web terminal

Attendee web terminal
SchedulePRO is a server-deployed software package. It requires a network connection to
possible third party availability data sources, such as Microsoft Exchange. Users (meeting
coordinators and meeting attendees) connect through web terminals that are not provided as part
SCHEDULEPRO DESCRIPTIVE PAPER – Lab 1
|9
of the SchedulePRO solution. Users can also input their schedule and availability by integrating
another calendar software such as Google calendar.
Figure 3. Administrator interface – Update Deamon configuration
The SchedulePRO web server will contain the scheduling algorithm, data fetcher, and
data update daemon (Figure 3). When the update daemon is started, it loads the settings stored
in the daemon configuration file. The daemon then sits idle until it is time to retrieve data. The
update daemon starts a data fetcher process, which retrieves availability data from an outside
source using the appropriate interface. The acquired availability is then written to the
SchedulePRO database. SchedulePRO can be configured to update on demand. When a
coordinator submits meeting parameters to the scheduling algorithm, the algorithm process will
begin a data fetcher process that updates only the information pertinent to the meeting being
planned. Daemon configurations are made through the administrative interface, and saved to a
configuration file.
SCHEDULEPRO DESCRIPTIVE PAPER – Lab 1
| 10
The availability of rooms and attendees is stored in the SchdeulePRO database.
Availability objects consist of a set of events which occur in (known or unknown) rooms, and
have (at least one known) attendee. Rooms contain resource instances, which are defined to be a
type of resource. Groups are made up of attendees, and attendees can belong to multiple groups.
The administrative interface can also be used to:
2.3

Create rooms

Edit rooms

Edit resources

Edit attendee database entries
Target Market/Customer Base
Colleges are the ideal market with a vast customer base. There are over 7,000 colleges in
the United States alone. Faculty and staff all work in their individual department and have
different schedule sets. SchedulePRO is an ideal solution to organizing and solving the conflict
of scheduling a faculty meeting that works best for all employees. Students, who juggle school,
work, and family would find this tool useful in terms of planning and coordinating group
assignments. Initially, students would get a free version of the product with the addition of
advertisements to help mitigate the costs. The faculty and staff would also be given a trial period
with the expectation of the software being purchased.
A second target market for SchedulePRO consists of a variety of businesses. Companies
that consist of multiple office locations would benefit from using SchedulePRO as well as
businesses which frequently network with other institutions. SchedulePRO will minimize the
time-consuming process of planning a meeting or event, and will allow businesses to maximize
meeting benefits by ensuring the highest attendance rate possible.
SCHEDULEPRO DESCRIPTIVE PAPER – Lab 1
3
| 11
SCHEDULEPRO PRODUCT PROTOTYPE DESCRIPTION
In the SchedulePRO prototype, the program will run through a web service rather than a
software package. Instead of data being mined, it will be imported. Excluded from the
prototype are third party data sources and the update daemon. The scale will also be reduced to
make it for personal use more than business. SchedulePRO users can interact with the system
through multiple user interfaces that facilitate successful meeting creation.
3.1
Prototype Functional Goals and Objectives
The prototype scales down the components of SchedulePRO, with the absence of an
administrator, the bulk of the functionality runs through the coordinator (Table 2). In the actual
product, the administrator will be tasked with inputting all the data into the database, such as:
attendee information, venue capacity, and resources. The objective is to allow the coordinator to
select different meeting instances to provide unique scheduling results and use them as test cases.
Another difference in the prototype and the real world product is that the type of information that
can be import has be limited to come from one source – Google calendar. This will allow for
pin-point accuracy when all the attendees are extracting information from the same source. The
approach, from start to finish, is the following:

Analysis of the system

Requirements

Top-down design

Program

Test
SCHEDULEPRO DESCRIPTIVE PAPER – Lab 1
Feature
General
Update daemon can automatically import
calendars
Login page
Administrator Interface
Administrators can add, remove, and
modify rooms
Administrators can add, remove, and
modify available resources
Administrators can add and remove users,
as well as modify user rights
Coordinator Interface
Coordinator can manage a list of attendees
to invite
Coordinators can send out availability
update requests to attendees
| 12
Final Product
Prototype
Fully Implemented
Full implementation,
including best practices
for security
No Implementation
Basic implementation
Full Implementation
Uses premade test data
Full Implementation
Uses premade test data
Full Implementation
Uses premade test data
Full Implementation
Full Implementation
Full Implementation
Full Implementation
Full Implementation
using test data
Coordinators can specify room preference
Full Implementation
Coordinator can place different priorities
on each property
Full Implementation
No Implementation
Attendee Interface
Attendees can import calendar data from
Google Calendar
Full Implementation
Full Implementation
Attendees can import calendar data from
Exchange
Full Implementation
No Implementation
Attendees can edit the availability stored
by SchedulePro
Full Implementation
Full Implementation
Algorithm
Scheduling algorithm can produce results
Limited
based on fitness of individual properties
Full Implementation
Implementation
Table 2. Profile comparison between real world product and prototype
[This space intentionally left blank]
SCHEDULEPRO DESCRIPTIVE PAPER – Lab 1
3.2
| 13
Prototype Architecture
The interface of the coordinator has been simplified by limiting the customization of the
parameters and resources. In the prototype, the user will only have the option to:

Select attendees

Add third party attendees

Remove attendees

Select time range

Select date range

Select venue

Exclude venue
The update notification sent to the attendee will only allow importing information from a
Google calendar account or manually inputting their schedule in a calendar GUI. The data will
be sent by to the meeting database allocating the attendee completion percentage. There is no
longer an administrative interface; instead, the data available will be generated as test data. The
“Easy button” optimization algorithm starts by:

Creating a comprehensive list of possible meetings

Calculating fitness for each potential meeting, based on parameters set by the
coordinator

Ordering potential meetings based on fitness

Present ordered list to coordinator review interface
A web server and database are required to run, process, and store the information. The
prototype will be built using Java for the algorithm and SQL for the database. The application is
SCHEDULEPRO DESCRIPTIVE PAPER – Lab 1
| 14
PHP generated HTML involved for all interfaces. The SchedulePRO web server will function in
order to:
3.3

Obtain Google credentials

Download Google calendar data for data range

Format schedule data and present for attendee to edit

Format data

Submit data to the coordinator and SchedulePRO database
Prototype Features and Capabilities
In the software design, there are customer and technical risks that must be mitigated
through the prototype. The large quantity of parameters and preferences, initially available to the
coordinator, can result in a cumbersome, difficult interface. In the prototype, the parameters
available are reduced to allow for an easier process and demonstration of the algorithm itself.
The data provided may prove to be inaccurate, based on the user’s promptness and efficiency in
updating their calendar. To mitigate, all attendee data is generated in a test case. Calendars
entail a sense of privacy and attendees might feel their personal information is not secure. Best
security practices will not be utilized for the prototype. Legal roadblocks may prevent software
from accessing data from a proprietary system and the data may not exist. Tools are going to be
provided to the attendee that will allow availability input and update.
3.4
Prototype Development Challenges
The greatest challenge that will be faced in development is the learning curve for SQL,
defining the optimization algorithm, mining data from the attendee, and understanding the
languages used to create the interactive coordinator/user interfaces. This is a prototype built by
college students and there is still a learning phase. Development will begin with building and
SCHEDULEPRO DESCRIPTIVE PAPER – Lab 1
| 15
installing a virtual machine. The workstation will serve to store the test data and algorithms used
for SchedulePRO. It will take a couple of weeks to get familiar with manipulating languages
such as:

PHP

XML

AJAX

JSON

SQL
Despite the challenges, the prototype will serve as a foundation that is going to be further built
upon. SchedulePRO will be the future in innovative approach to coordinating group events,
utilizing the technological infrastructure present in many business or organizational
environments.
SCHEDULEPRO DESCRIPTIVE PAPER – Lab 1
| 16
GLOSSARY
Administrator – any person that is given access permission to create and modify the resources
available for parameter input.
Attendee – any person that is requested or directed to be present at a meeting that include the
personnel directing the meeting and those whose presence is requested.
Attendee web service – method at which the attendee interacts with the software through a web
based user interface requiring little knowledge of its use but plays a large role in its
success.
Availability – blocks of time/days in which a person or resource can be added to a meeting event
instance.
Calendar – electronic version that can be used interchangeably among an attendee or coordinator
from an outside data source.
Coordinator – any person that is given access permission to create and modify meeting events.
Coordinator web service – method at which the coordinator interacts with the software through a
web based interface requiring advanced knowledge of its use and is directly responsible
for picking the best fit outcome.
Data Fetcher – background running application called at sporadic intervals to allow for the
inflow of information for algorithm input.
EULA – End User License Agreement.
Fitness – numerical representation (percentage) of how meeting scenario generation compares to
the ideal case scenario of all parameters being fully met.
GUI – Graphical User Interface.
LAMP – Linux, Apache, MySQL, & PHP.
MySQL/SQL – Structured Query Language.
Optimization – determining a best-fit outcome or a set of outcomes based upon the input
parameters.
Outside – refers to attendees that are not on the shared network and whose schedule is not readily
accessible through the business server.
PHP – Hypertext Preprocessor.
SCHEDULEPRO DESCRIPTIVE PAPER – Lab 1
| 17
Priority – ranking system given to any parameter of a meeting such as personnel, resources, time
and date availability that give a weighted value to such parameter.
Resource – a physical component not limited to: a classroom, conference room, partitioned
space, or removable object that will be utilized during a meeting instance, such as:
overhead projector, tables, whiteboards, smart boards, camera recording devices, sound
system, etc.
Test Interface – modeled and simulated data accessed through our virtual machine to replicate
the real world product interface with external servers and proprietary scheduling systems.
Window – a term that is used in connection with the graphical user interface (GUI) through a
windowed environment.
SCHEDULEPRO DESCRIPTIVE PAPER – Lab 1
| 18
REFERENCES
The State of Meetings Today. Retrieved from
http://www.effectivemeetings.com/meetingbasics/meetstate.asp
12 Stats and Facts. Retrieved from http://www.perfectlaborstorm.com/2011/workforce-trends/
12-stats-and-facts-time-wasted-work-adds-up/
Roberts, J., Niles, C. Green Team. Retrieved from http://cs.odu.edu/~411green/collaboration.htm