ZopeMag's mascot the ZOPE fish


Article Finder
People
Issue 10 - Revision 3  /   March 25, 2005 


 
  ZopeMag Links:
Latest Issue
About the Fish
Issue 10
Issue 09
Issue 08
Issue 07
Issue 06
Issue 05
Issue 04
Issue 03
Issue 02
Issue 01
 
 
Downloads
     
  Letter from the Editor:
   Issue 10

Interviews:
Each issue we interview important people in the Zope ecosystem.

  Jim Fulton

Articles:
Throughout the quarter we cover topics of interest to Zope developers, designers, and users.

  Why Zope 3

  Localization (Part II)

  School Tool

Book Review:
Every issue we review a Zope technology related book.

  Building Websites with Plone


Product Review:
Too many Products, too little time? ZopeMag keeps you up-to-date which Zope Products are worthwhile checking out.

  Issue Dealer


Guides:
This quarter we bring you a new SuperGuide. Our miniGuides and SuperGuides give you the background knowledge you need to mastering Zope.

  SuperGuide to Zope Security - Part II
 
 
Downloads
     
  URLs / Download
Products we talk about in this issues Articles and Reviews

     


SchoolTool Project

- - - - - - - - - - - -

By Brian Sutherland  | 

print

The SchoolTool project is an Open Source project based on Zope X3. Its purpose to provide a free administration system for schools. This unique set of applications is a philanthropic project funded by Mark Shuttleworth to facilitate education worldwide. It is targeted at school administration, which is a critical aspect of education where small improvements can yield great returns. This article will give a brief introduction to the three main SchoolTool development areas: the SchoolBell calendaring Zope component, the SchoolTool server itself and the yet to be named timetabling client.

SchoolBell Calendaring Server and Zope 3 Component

One very important function in the administration of a school is timetables and calendars, i.e. which groups/people/resources need to go where at what time. This is also a much wider problem that affects almost every organization. There has been a noticeable lack in Open Source software of a good calendar server providing sharable calendars for people, resources and groups of people/resources.

As there was a pressing need for a good calendar server, we created SchoolBell, which groups the libraries to be used in later SchoolTool development as a separate application. By design, SchoolBell can be used as a standalone calendaring server, a Zope 3 component integrated into the Zope Management Interface (ZMI) or as a library for other Zope applications (e.g., future SchoolTool development).

SchoolBell is currently the most mature part of the SchoolTool project and it has been the focus of a concerted development effort over the past few months. SchoolBell has just reached version 1.0, which marks the first release completely based on Zope 3, as well as an application we consider to be practically usable (more info on what "1.0" means for SchoolBell is here).

Originally, SchoolBell/SchoolTool was based partly on Twisted and selected Zope 3 packages. Now that it is clearer where Zope 3 is going, we can commit to it completely.

So, what can SchoolBell do? Some of the most important features included in the 1.0 release are:

  • Calendar Sharing and Overlays
  • Full-featured Access Control based on the Zope3 security model
  • Individual calendars for people/groups/resources
  • iCal Import/Export

But we are not finished yet and want to complete some features in the next SchoolBell versions before returning to work on SchoolTool proper once again (development on the project is very fluid, so this list was probably already out of date as it was being written. These features include:

  • Time Zones
  • REST interface
  • All day events

There will be three ways of communicating with SchoolBell: (1) through a Web interface (with lots of eye-candy for humans):

web_interface

(2) via iCal clients such as Mozilla Sunbird, Apple's iCal or even Outlook (Mozilla Calendar pictured here):

calendar

and finally, (3) in SchoolBell 1.1, a REST interface for integration with other programs such as fat clients, system administration utilities, etc.

For Zope developers, particularly interesting are the libraries used by the SchoolBell application:

  • A calendaring library for Zope 3 which is storage-independent, can display several calendars in a single view and supports recurring events
  • An iCalendar parser supporting a "sensible subset" of the ICalendar spec
  • A relationship library for managing "arbitrary many-to-many binary relationships"

SchoolBell provides us with a good basis for continuing SchoolTool development, as well as with a usable product "right now". It has been exciting to see the up-tick of interest as SchoolBell 1.0 was released. Hopefully, this is only the beginning.

SchoolTool Server

The SchoolTool server is intended as a complete administration suite for schools. It does not try to deliver educational content, but rather focuses on improving the mechanism for delivering that content. Especially in places with a low level of technology, administration and organization provide a big lever for facilitating all other kinds of improvements. If the administration works, nobody may notice it, but it facilitates valuable educational activities; when it fails, however, everything grinds to a halt.

We want SchoolTool to be inclusive, i.e. eventually applicable to almost every type of school. Also, we want SchoolTool to address almost all of the organizational tasks a school faces. One of the best ways to achieve this is to provide a toolkit to enable developers to quickly write administrative applications. With this in mind, SchoolTool will be easily extensible/customizable so that its look and functionality can be extended or adapted to different environments according to need. One of the reasons SchoolTool development has taken so long is that writing fundamental infrastructure correctly takes time.

This freedom of extensibility by users and transparency of the code is one of the major advantages users get from SchoolTool's being Open Source.

In addition to the functionality of SchoolBell, some sample reference implementations of student information systems that SchoolTool may provide are:

  • Management of class rosters
  • Student attendance tracking
  • Demographic information
  • Managing student grades

Providing these features in a sensible way will take time and, as with all Open Source projects, requires community support and involvement.

Timetabling Client

At this time the timetabling client is an imagination fragment with a specification. The desire is to create a SchoolTool fat client that will provide a rich GUI for educators to solve the types of time-tabling problems they are faced with in a school.

Schools face a number of different and difficult timetabling problems. Currently, the ones we are aiming to solve are:

  • Scheduling classes, classrooms and teachers
  • Further, scheduling students as well
  • Exam/Test timetabling

Another aim of the project is to be able to export time-tables to an automatic solver. Automatic solution of timetabling problems is a difficult problem in two ways. Firstly, it is difficult to describe the problem in a general way understandable by both machines and humans. Secondly, the solution suffers from a complexity explosion.

Fortunately, in recent years very advanced algorithms have been developed to deal with the complexity explosion. What is now lacking is a way to move the problem from a non-technical user to this advanced algorithm and return the results. This is where a general method for describing time-tabling problems is required.

We hope to use a recently prototyped language, Time Tabling Markup Language (TTML), as the basis for communication between algorithms and users, as well as an internal data model in the fat time tabling client. Pie in the sky? Maybe...

Development

Finally, a little about the development process of SchoolTool. Its core development team comprises about eight geographically dispersed developers, most of whom are sponsored for their time by the Shuttleworth Foundation. Within this group are active members of the Zope, Ubuntu and Debian projects, as well as developers with previous experience in education. This gives the project a broad base of overlapping skills which are proving invaluable.

Additionally, the level of quality control of the project is high with a large emphasis on code review and a comprehensive unit/functional test framework. It is common practice for new code to be committed along with comprehensive tests. Developers have virtually been roasted alive in the past for testless commits. Joking aside, SchoolTool development provides an excellent place for new developers to learn the intricacies of Zope 3, Web interface design and test- driven development with Python. The project atmosphere is also free of the flamage which plagues some other Open Source projects. This working environment will serve SchoolTool well towards keeping the quality of our product high in future releases.

The project itself was started in 2000 and then re-started in 2003. It has taken a long time to reach the point where we can produce something useful. This is mostly because we are trying to create a fundamental piece of architecture. It requires a lot of time to ensure that this architecture is robust, reliable and easy to use/develop. One only has to think of the different regulatory requirements in the educational systems of different countries to realize how complex the problem is. Throughout this long initial period, The Shuttleworth Foundation has provided funding to push development to a point where it is self-sustaining.

Closing

In short, SchoolTool is a project just reaching the point where it can start to produce useful products, with SchoolBell being the first example. SchoolTool will take a little while longer, but has a much wider scope and needs contributions from the community to reach its full potential. As the ancient saying goes: It is the beginning of interesting times.


Brian Sutherland

shim
shim  ZopeMag is committed to bringing you the best in Zope Documentation. shim
shim


Home   Subscribe   FAQ   Contact   Write for us   Privacy Policy   Weekly News   PyZine   opensourcexperts.com  

Reproduction of material from any of ZopeMag's pages without prior written permission is strictly prohibited. Copyright 2003 - 2005 ZopeMag Zope/Plone hosting by Nidelven IT