WimpyPoint II

by Jon Salz
Revision 2 (13 Nov 1999)

Overview

This document outlines the design and implementation strategy planned for improving WimpyPoint, including (in order of priority):

Data Model

The tentative new data model is available here. It differs from the old data model in the following ways:

Naming Conventions

All tables will begin with the prefix wp_. This provides consistency with ACS and will ease migration (see Migration).

ACS Integration

There will be no table specifically tracking WimpyPoint users - instead, we will use WimpyPoint users and groups.

Access Control

The new wp_user_access and wp_group_access tables describe the set of privileges available to particular users/groups with respect to a presentation. A user or group may have

An administrator can invite another user to collaborate (or co-own the presentation) by adding him to the ACL list. (WimpyPoint will notify the invitee via E-mail if requested.) If the user is not already an ACS user (and thus cannot be added to the ACL), WimpyPoint will issue a "ticket" (a row in the wp_user_access_ticket) which can be redeemed for an ACL entry once the account is created. The ticket is protected by a secret text string which is encoded into the URL sent to the invitee as part of the invitation request.

Versioning

WimpyPoint will allow authors to freeze presentations, causing the server to maintain a copy of the current state of the presentation. To freeze a presentation we set a "checkpoint," causing WimpyPoint to make any future modifications to any slide in a separate copy. The current checkpoint ID for a presentation is stored in wp_presentations.checkpoint. Operations on slides are handled as follows:

Images and Attachments

Users will be able to upload images and attachments to display in slides, either inline or with an explicit link.

Users can upload attachments and images to be displayed inline (embedded in the page) or separately. These are stored in a separate table (wp_attachments) so that multiple versions of a presentation can share them.

Styles

Style information is not limited to a CSS file name - styles will be stored as rows in the wp_styles table. A style contains a name, a description, CSS source (included inline when presentations are displayed), and optionally an owner who can maintain the style. Users will be able to upload images associated with their style sheets (stored in wp_style_images).

Individual readers can override authors' style preferences, e.g., if the reader prefers black text on white text because he/she needs to deal with a finicky projector.

Implementation

Implementation steps: It would also be very cool and useful to allow the user to download a tarball/zipfile of an entire presentation (thanks, Richard Tibbets), but this is really low priority.

Migration

All existing presentations will be migrated to the new data model. We will write a script which: This will be fairly easy because the new data model is a functional superset of the old data model.
jsalz@mit.edu