Welcome to WASS (Web Appointment Scheduling System).
This file contains download and installation/update instructions for WASS.
Before you download and install WASS, you may want to read about what WASS does to see if it might meet
your needs. An overview of the function and operation of WASS is provided at the end of this document. Please
skip down and read that section (Overview) if you are unsure about whether or not you want to install WASS. Otherwise, please proceed to the section below on requirements.
Requirements for installing and running WAS:
Before downloading and installing WASS, make sure you have access to the following:
1. A LAMP server running Apache and PHP 5+. WASS will not run under PHP 4. It has not been tested on a Windows server.
2. The following RPM packages: mod_ssl, php-xml, php-ldap, php-soap and elinks. (The mod_ssl install will also do dependent
updates of the distcache and httpd packages.)
3. A directory on that server in which WASS will be installed. Typically this would be somewhere in your Apache
document root structure. WASS can run out of htdocs or out of a user's public_html directory.
4. A MySQL 3+ server and a database on this server. WASS creates tables within this database. The MySQL server can
be on the WASS Apache server or on a different server.
5. An LDAP or CAS server for performing user authentication (login).
WASS cannot run without either LDAP or CAS for authentication (unless you want to re-write the authentication code
located in classes/wassDirectory.class.php). The LDAP server can be a Windows Active Directory (AD) server, or any other
server that supports the LDAP protocol (e.g., Sun).
[NOTE: WASS 3.0.2+ includes a primitive local password facility that allows you to run WASS without LDAP or CAS.
This facility consists in a MySQL tables (wassUser) that you must manually maintain, and in which you store userids
and passwords, using a tool such as phpMyAdmin. This is not intended to be a full-blown local login facility, but rather
something that can be used if you have a very limited set of users that you need to authenticate. If you are
using LDAP for authentication, you can still use this facilty to create "private" WASS users. See the local_user.txt file
6. An LDAP server for directory lookups. The LDAP server can be a Windows Active Directory (AD) server, or any other
server that supports the LDAP protocol (e.g., Sun). WASS expects to be able to lookup people's office locations, telephone numbers, and other
particulars by consulting your local LDAP server. If you are not running an LDAP (or AD) server, or it does not contain directory
information about users at your institution, you can still run WASS; users will have to fill in this information themselves
whenever they use the system (e.g., schedule appointments). You can use LDAP for both user authentication and for
directory lookups, or you can use CAS for user authentication and LDAP for directory lookups.
[NOTE: The primitive local password facility in WASS 3.0.2+ also allows you to specify directory information about
users (name, email, telephone number and office address. You can use this local password facility instead of LDAP if you
are maintaining a very limited set of users. If you are using LDAP fort authentication,, you can still use this facilty to
create "private" WASS users. See the local_user.txt file for details.]
If you can meet these requirements, then proceed with the installation.
Note: If you have already installed an earlier version of WASS and are upgrading to a newer release, please skip to the section entitled "Upgrading".
1. Download the current WASS release. It will have a filename of the form "wass.release.tar.gz". You will want to download
this file to the place from which it will run on your Apache server (either somewhere in the Apache document tree, or in
a user's public_html space, for example).
2. Uncompress the release file. The file was created with the Unix command:
tar -cf - * | gzip wass.release.tar.gz
You would typically uncompress it with (subsitute the name of the release file for "wass.release.tar.gz"):
zcat wass.release.tar.gz | tar -xf -
Please note that the resulting files and directories include a ".htaccess" file (which will not show
up on a standard Unix "ls" command; use "ls -a" to see all of the files and directories). You may need to rename
this file to something like "htaccess" (without the leading ".") to allow the installation to proceed (see below).
The directories and files will need to be readable by your apache server. You may need to issue a "chmod" and/or
"chown" command to set permissions/ownership to allow read access by your apache server.
3. The distribution includes a .htaccess file with rewrite rules.
It is possible that the apache configuration under which you are running does not support having a site issue
trewrite rules (or other directives in the ,htaccess file). If this is the case, you will get an "internal server error"
when you execute the following step. You need to talk to your Apache administrator to make sure your site is configured so
as to allow these directives to be issued from an htaccess file. The directives do the following:
set error flags; redirect an non-https URL to an https URL; redirect an unspecific URL to the login page; set the PHP
error reporting level.
You do not need to have the .htaccess file in place to run the installation, but you do need to have it in place to run WASS (otherwise the URLs that
WASS advertises for accessing calendars will not work).
4. Step 2 will have created a set of files and directories. One of the directories is named "admin", and in that directory
is a file named "install.php". Run this file from a web browser, using a URL of the form:
Note that you must use "https", not "http". Substitute for "apache-server-name" the hostname of the apache
server on which you have downloaded and expanded WASS. Substitute for "path-to-wass" the path to the
location where you have downloaded and expanded WASS. The rest of the URL must be entered exactly as above.
Do not substitute for "themysqlpassword"; enter that literally in the URL.
If you get an "internal server error" message, then that is probably due to your Apache server
not allowing the directives encoded in the .htaccess file. If you wish to proceed with the installation
anyway, simply rename the .htaccess file to "htaccess" (without the leading .). At some later time,
you will want to allow the directives to be issued.
5. Follow the instructions of the install.php script.
6. Following installation, you should read the administer.txt file (in the same directory as this file) for an overview of
If you are upgrading from an earlier WASS release, please follow these steps:
1. Save any customizations you have made. You do not need to save your local copy of wassParms.class.php (which contains all of you local configuration information) or wassLocal.class.php (if you have coded your own user exits). The WASS distributions never include a copy of these files, so installing WASS will never over-write your version of these files. WASS distribitions DO, however, include an .htaccess file, the help file (help.page.php) and the faq (faq.html), so if you have modified these file or any other files, save you local versions in a separate directory so that you can re-install them later.
2. Carry out steps 1 and 2 above (download and expand the tar.gz file). You can download the new distribution on top of the current one, or into a new directory. If you download into a new directory, make sure you copy over any modified files (including wassParms.class.php) into the corecponding sub-directory in the directory (if you don't do this, WASS will think that you are doing an initial install).
3. Run the install.php script in the admin sub-directory, and skip to the MySQL table build step. This step will run the maketables.php script, which contains a cumulative set of "ALTER TABLE" statements that add or remove any database fields needed by the current release of WASS. You can skip the other steps. The install.php script will also add any new class contants needed in your wassParms.class.php file (but will not otherwise alter that file). YOU MUST RUN THIS STEP. If you do not, and the new version of WASS includes class constants that are not in your current version,
then WASS will abort (you will get an error message about a missing class constant).
4. Now retro-fit any of you local customizations (in particular, restore your .htaccess file and/or any other files you have modified).
If you have any questions, please contact:
WASS is licensed under the Educational Community License,
Version 2.0 (http://www.osedu.org/licenses/ECL-2.0).
WASS contains a copy of the phpCAS distribution. phpCAS is licensed under the New BSD License,
an OSI-certified ("open") and Gnu/FSF-recognized ("free") license.
Overview of WASS
The WASS system supports appointment scheduling over the web. Unlike traditional scheduling systems,
which allow people to specify when they are busy (e.g., when they have meetings), WASS allows people to
specify when they are free. WASS allows appointments to be scheduled only for these free times, which WASS
refers to as "blocks".
The way WASS works is as follows:
1. Someone who wants to be available for appointments (let's call her "PROFESSOR SMITH") goes into WASS and
creates a calendar for themselves (they only need to do this once). They then add blocks of available time to
that calendar. They can add or delete such blocks whenever they like. The blocks can either be single blocks
(a block of time on a specific date) or recurring blocks (e.g., every Tuesday from 9:30 to noon between a start
and end date). Each block corresponds to a date and time when PROFESSOR SMITH is available to met with other people
(e.g., their "office hours"). PROFESSOR SMITH can divide any of these block into individual appointment "slots", or
treat them as a monolithic unit (first-come, first-served). PROFESSOR SMITH can also assign various kinds of access
limits to the blocks (e.g., restrict access to specified users and/or to users in specified courses).
2. A person wishing to make an appointment (let's call her "STUDENT JANE") with PROFESSOR SMITH goes into WASS,
looks up PROFESSOR SMITHS's calendar, finds a block of available time that is covenient for her,
and schedules an appointment with PROFESSOR SMITH at that time. STUDENT JANE can only schedule an appointment
during one of the blocks of available time that PROFESSOR SMITH has added to her calendar. If the block she
selects has been divided into appointment "slots" by PROFESSOR SMITH, then STUNDENT JANE must select an available
slot. PROFESSOR SMITH can set limits on how many appointments an individual student can sign up for, as well
as the total number of appointments for a given block.
3. STUDENT JANE and PROFESSOR SMITH each receive email notifications and reminders about the appointments,
and they can go into the system to view and/or cancel these appointments at any time.
What differentiates WASS from standard calendar/scheduling systems is its ability to allow people to specify
their availability. This is useful in situations such as office hours scheduling (the professor is only available on
specific dates for specific periods of time). It can also be used to schedule things such as specialized equipment
(which has limited aviability) or rooms (e.g., squash courts). WASS is useful in cases where a person or resource
is available only on specific days during specific periods of time. It is not intended to replace a standard calendar system
(such as Outlook), but can be used an an adjunct to such systems (WASS can generate iCal streams which can be imported into
systems such as Outlook).
The WASS system is fundamentaly asymetric. It consist of a set of calendars created by people who hold office hours
(e.g., professors, deans, advisors), and appointments made by people who meet with the calendar owners (e.g, students).
Students do not need to create calendars; only people who hold office hours create calendars. WASS also supports the notion
of managers, people who manage a professor's calendar. It should be noted, however, that WASS does not enforce any kind
of role assignment. Anyone who can authenticate to the system can create a calendar. Thus a student could create a calendar
that other people would access to make appointments with the student (e.g., a student who was the leader
of a student organization could create a calendar on which they indicate their avaialbility for appointments with other students
who wish to meet with them). A given user could use WASS both to publish their availability, and to make appointments with
other users. For example, a professor who has a calendar in the system could use WASS to schedule an appointment with another
professor who has a calendar in the system.
In the interests of security, you should probably move this text file out of the WASS admin directory and into a directory that
is not accessible to web users. It is not needed by the running WASS system.