The National Writing Project is a national non-profit that facilitates the professional development of teachers in order to increase access to high-quality writing education for all learners. This is done through the disbursement of funds to satellite organizations nationwide, and then tracking the activities of those organizations over the course of the year.
High-quality data is critical to any mission-oriented organization, from which decision makers can ascertain to what extent the mission is being completed. For NWP, the Site Profile System is the key reporting application from which the organization can draw its understanding of the current state of its mission. The Site Profile System is critical to the NWP.
When I began working with NWP, the Site Profile System was implemented in an outdated Perl framework called Community Servers; this framework is proprietary and has not seen a new version in many years. I persuaded the IS unit to implement the future Site Profile using a modern framework, and to give the frontend an overhaul.
The Solution
Rapid Prototyping
The Site Profile System is critical to the National Writing Project, and is therefore subject to input from many different units within the organization. In cases such as this, many decision makers will have to be convinced of a particular vision. It was crucial to make sure that all participants feel that their input is heard, so my process included near-immediate turnaround on as many design requests as possible.
Rapid turnaround gave the key decision makers a tangible sense of the impact various design decisions would have. Accordingly, the management team was able to arrive an optimized and mutually agreed upon set of mockups that best captured the focus and intent of the application.
Symfony
I pushed for the Symfony framework, which we ended up using for the project. Symfony’s MVC approach to web design enabled us to focus on individual layers within the application. This layered focus allowed us to test pieces of the application individually and to compartmentalize changes for maximum impact with fewer side effects.
Symfony is an object-oriented framework, which enabled good encapsulation of various functionality into distinct objects and modules. We were able to implement access control, database abstraction and other server-side functionality in a piecemeal fashion because of the object-oriented design of Symfony.
ExtJS
The interface for the previous implementation of the Site Profile System used JavaScript sparingly and often with inconsistent results across browsers. Frequently, the previous interface reinvented functionality found in many JavaScript frameworks. For the new interface, I deployed the high-quality ExtJS JavaScript framework.
Unlike Prototype or jQuery, ExtJS contains reusable and extensible user interface controls. ExtJS has a class system which improves greatly upon the JavaScript prototype-based object model, allowing me to extend many of the standard controls for specific purposes within the Site Profile System. The final product is quick, responsive and dynamic web application which organizes, presents and collects a very complex set of data in a user-friendly way.

Creator.