Project Overview
Question Writer is software that allows users to create professional quizzes and assessments, complemented with a strong theming engine, powerful user interface and various kinds of question types, Question Writer allows you to quickly build and preview quizzes. With Question Writer, you can create different questions like multiple choice, multiple response, fill in the blank and others, the application provides a unique set of features, with support for external integration and SCORM compliance, the quizzes can fit in a variety of scenarios seamlessly.
InspirationGate has been responsible for building Question Writer’s architecture, core components and first release of the application.
Challenges
- One of the primary objectives and challenges was to build a strong and reusable framework that can serve as the foundation of the first set of features along with paving the road for future enhancements and features.
- The system allows the users to add several types of questions where each question has its own data structure and set of attributes, not just that, each type of question could have one or more standalone features like pages, sections, scoring, feedback and this presented a challenge in building out an extensible system that can support various question types and attributes along with the relations between various options and their impact on the user interface.
- The final quiz needed to be exported to a predefined XML representation to be converted to flash SWF and this creates a number of challenges, mainly that for each font the user chooses to use, the system had to generate the glyph representational meta data of each character so flash knows how to render it on the UI.
- The system needed to support different versions, licensing models and automated build scripts.
Provided Solution
InspirationGate’s design plan was to build a tool that allows the system owner to design all question types, their attributes, how each attribute would be presented in the UI and also define which options would can be assigned to which nodes, behavioral patterns and other business rules, thus allows the system to be totally dynamic offering major flexibility and maintainability advantages for maintaining the current set of features and for adding new ones later on.
A runtime engine was then built on top that reads this meta data representation and enforces all business rules on the application. This runtime engine was then embedded into the core application acting as an orchestration component in the application, around that, a number of components have been built to support other functions, like serialization and deserialization, building new themes, exporting to SCORM and others.
This diagram represents the overall workflow of the application:
One of the primary features was to allow the user to easily switch the entire look and feel of a quiz and this required careful attention to the application design to isolate between the structure and layout to allow the user to easily switch between themes to try different layouts and see which one works best.
One of the challenges we had is the component we needed to build that is responsible for building glyphs out of fonts, this required various kinds of algorithms and native windows API integration to generate all the lines and curves that makes up each character.
The application also interfaced with a flash generation engine which was converted from Java to J# for building the final SWF output of the application.
Additionally, the system integrated with Xheo Licensing (now called DeployLX Licensing) for supporting various time trial and serial key generation functions.
High Level Component Architecture:
Technologies
Visual Studio .NET 2003, .NET framework 1.1, C#, J#, Xander flash compiler, Xheo Licensing (now called DeployLX Licensing).
Customer Feedback
"It's been a real pleasure working with InspirationGate. InspirationGate was able to take a design and work it through from a rough outline through to a fully working installer for a commercial product that's now on sale (http://www.questionwriter.com). InspirationGate got a real talent for high level design, creating a robust and flexible architecture for this project. They also got a very broad understanding of a wide range of technologies, and a very deep knowledge of all the issues surrounding .NET.
Their solution goes beyond just working though, because of the creative design, it's easy to maintain, update and re-use. They also provided a complete build script for this project, so that after any change, I can run a single batch file to re-build all the editions making updates very reliable. InspirationGate team was highly available throughout the project and have excellent English and communication skills. They have been flexible about the requirements and understanding when it comes to the commercial necessities of the project. InspirationGate is honest, capable, talented and I'll be seeking out their expertise for future projects."
- Alex McCabe, President
Central Question