Main purpose of this project is to develop an Open Source system to deploy easily customizable learning applications for the disabled. A specialized trainer should be able to access an online editor where he/she can specify a set of parameters. Those parameters are stored on the system and are accessible to the trainer. Once the exercise is completely defined, it can be used to train a disabled pupil, and, if the trainer agrees, it can be published and made available to other trainers and pupils. Every time an exercise is used, response times and success rates are recorded and sent to the server, to form a base for statistical analysis.

How does the whole thing work?


A number of facilities are defined inside the system:
User area: it's the most important part of the system. Here trainers can load the exercises they've built and use them with pupils. These exercises can be used in two different ways, both online with a browser and downloaded and used offline. Online use is encouraged, since it allows better personalization  and, mostly, results can be returned to servers.
Trainer area: it's a restricted access area, where only registered trainers can access. Trainer registration should be free, as it is on most common free online services. A moderated registration should be possible, but should not be set as a default. Inside this area, the system will provide an editor to create exercises from an extensible library of symbols, an area to register pupils and keep track of their results, for monitoring purposes by the trainers.
Talk area: three different forums. A technical one, where developers can interact and carry out the development of the various parts of the system. A second group of forums is meant to be used for interaction between developers and trainers, where trainers can ask for new features and influence the developement of the system itself. The last one is a discussion area between trainers, to share ideas and results, and to keep the trainer community in touch.
Documentation repository: for each subject the community shows interest, a documentation mirror should be kept. There must be a way to publish manuals, papers, thesis and articles, both in public and in restricted way. Documents produced by the community itself are published and commentable by the registered trainers.
Development area: using standard cooperation instruments, this area keeps track of components versions and development stages.
Research and management area: this area allows administrators to configure and assign roles to the users, to expand the system with new modules and to enable functions. This is the only area that allows direct access to the informations about trainers and pupils stored into the system, with the sole purpose of creating a data set for statistical analysis and user monitoring.


The entire system is a web application, mostly developed with Open Source components. It must be usable from different platforms (Windows, Linux, MacOS and so on) and with many different input devices, such as special keyboards or visors. Exercises must be customizable on most aspects. The server must be portable on the most common server operating systems, and the entire archive must be easily manageable. A change in the interface mustn't force developers to change all the backend of the system.


To meet server's portability requirements, we choose Zope as a development platform. It allows easy integration with database and there's a good choice of components already developed. It allows a quick deployment of almost every part of the system, included a non-visual exercise editor, useful for a first demonstration prototype. The use and integration of ready-to-use Zope products for all non-visual areas is highly encouraged.
As data storage, for users, exercises and everything else useful, we choose MySQL 4. This is just a techincal decision, the database must be portable over other different DBMS, such as PostgreSQL. A change in the database must be easy to implement, while a change in the server engine is necessarily more difficult.
As data interchange format, we choose XML. Data from the visual exercise editor to the server travels in XML, so does data travelling from the server to the user's workstation. The XML document contains all the variables needed by the single exercise. The results are sent to the server as an XML document too. XML-RPC communication between the server and the client must be considered.
On the user's side, we choose Macromedia Flash to deliver multi platform multimedia content, easily scriptable and customizable. Flash allows dynamic component loading, XML parsing and powerful scripting. It also supports mp3 audio playback and standalone playing.
No assumption (except the availability of a flash plugin) is made for the user's workstation.


Macromedia Flash, unless SWF specifications are made public, must be considered a temporary solution, until a public standard is developed, made available and widely used. To avoid usability issues, every function inside the exercises must be accessible with the keyboard. All exercises are developed to be used with 1:1 zoom, readability issues must be addressed by the trainer inside the editor, during the exercise setup.