4. Developer Overview

As outlined in the UI Overview, E-Class consists of two distinct applications with respective interfaces for instructors and for students. The student application is more limited in functionality and displays a login screen immediately on launch.

The student application will be opened on many different client computers, so it is desirable that it be quick to download and install. It could even be implemented as a web application, but this may not be worthwhile considering the functionality overlap with the instructor application, which is better suited to a desktop application.

The major document object is the Presentation. Its implementation will need to maintain an efficient representation of the intricate relationships between slides and topics.

The implementation of E-Class will also have a significant amount of state synchronized across the network during a presentation session. For network efficiency, actions will probably need to be transmitted as individual events and replayed on each client application. A central server could proxy communication, and store the current state to be replayed to any new user joining the session.

A central server is likely necessary to store persistent class roster data, provide authentication and maintain a directory of active sessions. The combined size of class rosters, users, and session information is probably large enough that a database management system would be appropriate.

Since E-Class files (presentation documents and recorded sessions) are likely to be transmitted by external means, their format should be compact, perhaps using a common compression algorithm.

The distributed processing of the networked E-Class environment will require specific development expertise. In particular, the developers need knowledge of client/server design and implementation, and some knowledge of database management systems.