Implementation Spotlight: Spiral Universe
What is Spiral Universe?
Spiral Universe is one of the most ambitious projects to rely on the GWT platform and the Ext GWT Ajax framework. Currently available in 5 languages and comprising more than 1 million lines of code, Spiral manages all aspects of a school’s operations.
Spiral features a proprietary browser-based desktop (also known as a “webtop”) and includes modules for assessments, calendar, course management, email, file storage, gradebook, medical records, report cards, scheduling and more. Spiral Universe is a comprehensive software suite used by schools to increase efficiency, reduce costs, and improve their management and administration. It is used by a K-12 public, independent, religious and charter schools as well as small colleges, universities and other organizations in over 15 countries throughout the world.
Why did you choose Ext?
Do you have any advice for developers just starting out with Ext for the first time?
Absolutely. When we first adopted the Ext GWT Ajax toolkit, we ran into the problem that the look and behavior of screen components varied widely depending on who coded that particular module. There was also a large class of common errors that we had to fix in each location. One prominent bug class example would be forgetting to execute a refresh of view.
To address these issues, we created Spiral versions of each Ext GWT component by subclassing the Ext GWT components. These “Spiral Components” imposed restrictions on the components to enforce a common look, uniform behavior. Most examples of common errors could be fixed across the application by putting the correct code in common code.
This approach has many other benefits. Certain kinds of theming and program options are much easier. It is also easier to make design experiments. The Spiral components also provide common code paths which serve as a quasi-AOP scaffolding upon which cross-cutting concerns such as security and logging can be placed.
What makes Spiral Universe unique?
It’s hard to look at our company from any perspective and not immediately see that we are doing things completely differently from anyone else. Our business model is unique. To our surprise, no other integrated, web-based offering with a “software as a service” model existed. Our delivery model is “hosted” and is offered free-of-charge to all schools. We are using open-source solutions.
Perhaps most pertinent to this audience, our interface looks nothing at all like a web page. We didn’t want to create a “web site”. We wanted to create an environment that users could “live in”. A place where they could not only just perform school-related functions, but also read emails, chat, research, maintain their calendars and collaborate.
To accomplish that, we decided on using a “webtop”. A webtop is a web-based “desktop”. Our webtop has all the components of a standard Windows or Mac desktop including application shortcuts, a menu system, resizable/drag-able/shrinkable windows, and a notification area. The webtop, being server-based, also has all the advantages of a web application (accessibility from any connected PC, automated backup and virus protection, etc.) but provides an interface that is entirely familiar to all users.
How have your customers responded to your new interface?
Early in our research and development phase, we learned something very important: most of the competition in our domain sees the “customer” as the school’s IT administrator. We learned that while they may be the sales target, the “users” are the school community: the teachers, the students, the parents, the staff, and of course, the students. Complex systems that offer lots of on-screen options are attractive to IT administrators, but are a turn-off to the end-users. Most IT administrators seem to have come to the conclusion that the hardest part of the adoption process for a new system is getting people to use it.
So where most competitors are looking to see how much they can pack onto a screen, we are looking to see how little we can provide without compromising the workflow. As such our interface is very simple, clean and easy to use. It is probably the #1 reason why Spiral is the fastest growing School Information System. The extensive and flexible features of Ext GWT played a key part in this success.
What features could we add to the Ext GWT ajax framework to make building a rich application easier in the future?
The first thing that comes to mind is, of course, better documentation. But as must be the case with all of your users, we managed to learn the system fairly easily by looking at the code examples that Ext JS provides on the website. So putting that aside, I’d say that our priority from here on out is a more robust architecture for controlling the layout such as the Swing notion of “preferred size” and a deeper collection of layout managers. In fact, we’ve written our own layout manager patterned after Miglayout. ??We’d also like to see a top-quality visual designer. Not so much to write our code for us, but for creating mockups using actual Ext GWT and Spiral components. We know that you provide one for the Ext JS library and hope to see it adapted to Ext GWT.
And very high on our list is support for right-to-left languages such as Arabic and Hebrew.
Ext GWT is usually referred to as a “component library.” But to think of it that way ignores half of the value. Ext GWT provides a ready-made rich client-side architecture that is well outside the reach of typical Ajax toolkits and would be the envy of even Swing and SWT developers. The contribution this makes in accelerating development and quality could not overstated. ??We think the combination of Ext GWT and GWT itself is unbeatable.