Blog

    Happenings and acts of geekery.

Benchmarking and Analytics Toolkit for Higher Education powered by Adobe ColdFusion and Flex

Earlier this year one of our projects went from soft-launch mode to officially "live" mode: The CASE Benchmarking Toolkit, a system we designed and implemented for CASE, the Council for Advancement and Support of Education. CASE represents over 2000 institutions of higher education worldwide with over 75,000 members.

Technical Specs

Interface: Flex 3.3
Backend: ColdFusion 8
Database: Microsoft SQL Server 2000

Integration with their member management and AMS/CRM system, iMIS.
Consumes data provided by IPEDS.

The Toolkit enables the CASE research division and interested communities of practice1 to build quantitative benchmarking surveys, collect data, generate reports (text and graphical) and design summary dashboards through an easy-to-use interface. We wanted to share a little bit about what it does, why this is great for the alumni relations and advancement profession and why we as Adobe fans are so proud to have built it.

History

The origins of this project start back in 2005 with our friends at PCUAD. We implemented a surveying and benchmarking system for them that reduced the amount of time required to collect, output and analyze the data gathered from thirty higher education institutions. The "Alumni Relations Assessment and Measurement Program" (ARAMP) was the first attempt by any community of practice organization to quantitatively measure the performance of an alumni relations operation. It was an overnight success and continues to be used by PCUAD. About a year later we replaced the HTML UI with a Flex-based UI for use by the North East Alumni Relations group (NEAR).

Word got out pretty fast that PCUAD had not only created a great survey to 'measure' Alumni Relations but also the software to back it up. PCUAD was all too happy to help us get connected with the team at CASE to see if we could push this forward as a global benchmarking system. Once the decision was made to move ahead, we set about redesigning everything - the data model, the middleware and especially the user interface to work seamlessly with the CASE CRM system (iMIS - also a ColdFusion-powered product!)- using the experience we gained supporting PCUAD and NEAR to inform our decision making.

We delivered the system to CASE in February 2008 for beta testing, flipping the "go-live" switch in May.

Perhaps more importantly, we delivered the system to them on time and under budget.

Fast, integrated survey creation

Administrators can whip up a survey in next to no time. The CBT supports a wide variety of question types including question matrices. The system strongly encourages question reuse and enables the cloning of questions, sections and even entire surveys. It is through this capability that year-over-year data can be compared and analyzed. Since the user directory is fully integrated with iMIS, assigning permissions can be done anywhere within CASE which makes provisioning and access control a piece of cake.

Pain-free survey taking

For starters, this product is not Survey Monkey. Responses to surveys are intended to reflect institutional (not individual) performance; for any given survey many people from an institution can work on it but there is only one submission per school. This allows us to aggregate and filter the reports by specific institutional characteristics. Assistive text is available for each question in a survey, which when it comes to financial reporting is absolutely crucial. There are many ways to tabulate donations, donors, volunteers and many other aspects of a modern-day advancement organization.

Reporting and Exporting

Reporting is also a breeze. We know that advancement professionals use a lot of Word and Powerpoint documents in their line of work so we made it really simple to get exactly what they want from the available survey data. Not only can you select which of the available criteria to filter on, but you can view charts and graphs, calculate aggregate values and export it all to Excel (report data) and jpg (charts). We found that using ColdFusion to generate the appropriate data and Flex to render it was a very efficient, powerful combination.

Filtering report data was done through a very straightforward interface based on research and design we did for our RecruitWeb product. Criteria are displayed down the left side of the screen for selection; each item carries with it additional parameters that are user-defined. Use of colors to indicate active filters and the translation of selections to "plain English" gives the user a very good idea of what they can expect to see in the requested report.

Aggregate values are calculated for multi institution reports and privacy is protected for specific types of surveys under certain circumstances. We learned just how protective advancement professionals are of their financial data yet found a way to present actionable and useful information without compromising privacy.

Screenshots


What's ahead

Overall, we're extremely pleased with what we were able to deliver. ColdFusion made the middleware and business logic a snap. Flex allowed us to prepare a rich, responsive user interface. Using Flex also provides the server with some additional scalability. Similar to an ajax-powered application, the less we have to generate and send over the wire the more resources are available to support a larger number of connected clients.

Thinking ahead, it would be great if we could deliver an AIR application to enable push messaging - new survey notifications, even faster desktop reporting and possibly even survey completion alerts. The more data this system contains the more valuable it becomes to all of the CASE member institutions. The more tools we can provide that encourage people to participate the better!

 

 

1. A "community of practice" is an assembly of peer institutions connected by similar characteristics like alumni population, annual fund budget, or undergraduate population - not the traditional groupings like "Ivy League" or "Big 10." This ensures an "apples to apples" comparison of data for each discipline represented by the toolkit.

User Experience Diagram

There's a great diagram on Flickr right now that describes the concept and importance of user experience.

Some guy named Bryce did it...and of course I can't remember where I found the link to his Flickr set. Sorry for that...

Take a look! It's great stuff and will likely guide more than a few discussions in the next few weeks..

ColdFusion and Flash to Flex

To anyone who's been reading this blog for a while. you won't be too surprised to hear my enthusiasm for Flex.

But look at this lineup:

Flex 2. Flex Builder (Zorn) built on Eclipse. Flash Player 8.5. ActionScript 3.0.

How hot is that?

I was fortunate enough to be in on the first Flex beta. Due to some changes in my company at the time. I was unable to continue working with it. But I did see the potential of the platform and kept my eyes open for an opportunity to use it.

Just about a month ago we realized one of our projects could really benefit from a rich dashboard for status and reporting capabilities. We mocked up an HTML version and immediately got clearance to start working on the "next generation" UI for the tool. Not too much later we learned about Flex 2...so guess which platform we'll be using?

We're so excited that we don't want to wait another day to get started on the project. The client is chomping at the bit to get the app up and running too. Alpha bits are on my laptop as of tonight :-)

Beyond that. i've done rich internet apps with Flash in both AS1 and AS2. The changes that i've noted so far regarding AS3 look like a really great movement towards "cleaning up" the language and making it somewhat more approachable (and comprehensible) by us server-side geeks.

We've got a LOT of learning to do!

I'm excited...REALLY excited...because i've seen what Ajax can do. i've seen what Flash can do and i've seen what Flex can do.

* Ajax: works well. gets a lot of press. Our biggest problems with this is the "dual controller" issue. We have our Mach-ii app framework for CF app flow and a completely different one tied to the client interaction in Javascript. It's "yuck" and we need to find a cleaner solution.

* Flash: I can't tell you how much I hate the timeline and movie clips and all that "design" stuff. I have seen some AWESOME RIAs done in Flash. but i'll be damned if I have a good way of getting started without making a mess of the .fla. I could go and do a cheesy CF application in much less time simply because I don't need to know a darn thing outside of my application. Doing Flash RIAs is a PITA because of the knowledge outside of AS (and about design/layout) that you have to have.

* Flex: Frameworks constantly evolving. in use right from the very beginning. A programming model aimed at clean separation of sexy and slick presentation from a SOA backend. Tag based - i get it! ActionScript 3 - an ECMAScript compliant langage - I can figure it out. Oh. and I can develop for it in Eclipse? Woo hoo!

So yeah. if you think i've had too much kool-aid. you may be right. We have spent a LOT of time as a company developing our proficiencies as software engineers. devouring as much as we can about software architecture and frameworks and design patterns. We have coding standards. We do peer review. And because of this effort. we can immediately see how Flex gives us the "pretty face" to put on our bulldog-tough back ends.

We're excited. I'm excited. You should be too!

So how was launch day?

Most of our colleagues and families know we were working like animals to finish up some of our projects for a July 6 launch. We did great!

The Young Alumni Reunion website. powered by Farcry. went live right on schedule. Featuring a completely fresh look and feel. it's better aligned with the type of event Lehigh is trying to host this year.

A one-two punch of version 2.0 of our Intranet and Event Management systems went live for the Lehigh Alumni Association on Wednesday as well. These are core services that will drive content on their new public website (more on this in a moment) and help their continued backoffice automation push.

We weren't able to deploy their new public website as planned. Months ago we decided to keep the content in the University's CMS. This has had great results - the folks who run it have been OUTSTANDING to work with and rounded out the project in ways unexpected. But. between scheduling issues and finding good artwork for the site we were in the position of having to slip two weeks. At that time you'll see the "all new" web view of Lehigh. The new design theme is quite stunning (sneak!). Also. the Event calendar on the new site is really a Flash component written by us and driven by a web service feed from the EMS. Finally. integration from back to front across disparate systems!

As for the others that didn't make it on time. i'll just sit on them and do an announcement when we do go live. We've got some awesome stuff in the pipeline!

Macromedia MAX

Registration for MAX 2005 is now open. Get over to the registration site and save $200 before the end of August!

Rob won't say it. but I will.

Where's the *awesome* ColdFusion content? So much has changed with CF7 that we could spend hours just tearing it apart and thinking of cool. innovative ways to build the core services that business rely on. I see sessions on Flash forms. CSS. and reporting services. One on security (always important). And then there's this.

Will this be a "laptops out" kind of seminar where the presenters are poking at stuff while speaking "geek" and showing the possibilities OR will it be a three hour marketing overview? I'll be at MAX regardless. but i'd have to say this is the only CF session that i'm really interested in attending. Even last year. the BOF discussions were far more valuable to me.

Let's see CF sessions on frameworks (vitally important now). great open-source CF apps. shootouts between top-rated CF software packages. actual implementation of funky-fresh CF apps using the latest features. and a solid session on "how to get your boss to buy CF licenses." I hear a lot of people talking about all of these topics on a regular basis - imagine if we were able to get them great answers at the conference. I know people would show up to all of these.

With those kinds of sessions. we should be able to more effectively sell CF and as a result. the RIA vision once we have the framework in place. You're not going to teach a CF guy how to do Flash. but you can teach them Flex.

Focus on your dedicated core and grow from there. Macromedia. You seem to think your core is Flash. Nobody reviles ColdFusion except those not in the know. Many of us who have been around since the Allaire days remember "developer oriented" conferences. At least back then even the small guy could afford server licenses. I don't know of too many small businesses or sole proprietors shelling out the cash for a Flex package. no matter how great it is. CF is a professional grade app server with an entry level price point. Flex is a pro grade app server with a pro level price point. You gotta focus more on the upsell. not the cold sell!

Or maybe i've just grown cheap in my late 20s ;-)

Flash Friday

So I ranted and raved and stomped my feet about the shortcomings of Flash. but I did finally get the thing working the way I want it to.

When it works. it's beautiful :-)

I did some swapDepths() work to get around the depth issues. lowered my debugger expectations and adjusted my process accordingly. created a couple movie clips to encapsulate functionality (a true AHA! moment). and forced myself to THINK before coding. I know there are a ton of enhancements I could make to this component. but it's good enough to get started.

You Flash guys live in an interesting world. The final product looks so darn nice. but it's clear that it takes considerably more effort to make it happen. By virtue of being a relative newbie. i'm sure i've made some "interesting" decisions that could be optimized by someone who's done this longer. I tried to stay away from the data components as much as possible as I know that they lend considerable weight to the final SWF. Arrays work just fine for this particular app.

Live demo will be put into production on July 6. 2005 as part of our "launch 7 projects at once" effort. I'm not going to set it up to play right now...too many things going as it is.

Now to find a good Flash person to tutor me!

Don't get me wrong, but...

Seriously. this Flash stuff should be easier than it is.

I haven't done any RIA work for a few months and had to jump back in to it today. I am somewhat rusty. but it felt like nothing was working right. This whole "result" thing coming back from a web service call is just whacky. I do Mach-ii programming with CF. so I THOUGHT I understood the concept of "listener". but this feels really strange.

I mean. Macromedia. isn't there some way you could have done this differently so it wasn't so darn difficult to understand and use? Fix your authoring tools to do better introspection of my Actionscript...HELP ME with my targeting...HELP ME with my debugging! LET ME to a trace() on a resultset and have it ACTUALLY SHOW ME THE CONTENTS OF THE RESULTSET! What a concept...

Which brings me to a common refrain: the debugging capabilities of Flash absolutely suck. At least when i'm working server-side. when things die I hear a loud boom. In Flash. i'm wondering why that button click event didn't do squat. Why should I have to "roll my own" debugging and logging capability?

Here's another thing that bugged me:

In this particular app. i dragged a combo box. a date picker. and a button onto the stage. Then wrote a pile of actionscript to render 28 items on the stage. 21 of which were TextField objects. At a later time I need to remove all of this from the stage. so I wrote another method to wipe them.

Guess what? The remove method didn't work. Syntax checked out. Googling a bit. I found that there's something totally screwy that the MX04 components do (something about a FocusManager) that effectively forces the depth of my createTextField(...) objects up into a restricted range where removeTextField just does not work. Is there documentation on this? No. Is there any indication given in the Flash player. debugger. or authoring environment that "hey. steve. you're playing in a restricted depth range!"? Hell no! It just quietly ignores me and continues on.

Tell me how this is conducive to making me want to do more Flash development. I'd gladly use Flex if it wasn't so darn expensive and I had even a hint of a feeling that I would have a better time of it. I thought MM would have picked up something from ColdFusion ~ make it easy. abstract complexity. and you'll find an eager developer community. For all the harping on usability. I can't say that programming in your "Flagship" platform is a fun experience.

So take that. Flash Platform. You ticked me off. We'll see if I find it worth my time (and my clients' money) to continue to work like this.

(rereading this I realize that I need sleep and it shows!)

Zorn FAQ

I should have snooped a bit more last time...Macromedia posted a few FAQ entries on Zorn that sorta kinda answer some questions.

This move makes great sense. Many enterprise developers (the target audience for Flex) use Eclipse for their primary development environment already. Adding a Flex plugin to that environment makes the entire MXML development process that much more accessible!

Now if only Flex were cheaper...

Macromedia joins Eclipse Foundation!

This is great news...they will be working on a platform for "creating next generation internet applications (codename Zorn)."

I'm a heavy Eclipse user now - not saying that I wouldn't continue to buy the Studio package as it evolves. but i like having a "coder-focused" tool in which to do my work.

Also. having Macromedia join with the other heavyweights throwing their support behind this platform can't be bad!

Mike Chambers has a little more on his blog too.

Site Launch: Campus Enhancements

Officially "live" today. though it's been months in the making:

http://www.lehighalumni.com/campus

Featuring:

  • Interactive Flash campus map
  • Construction progress blog
  • Directions and Parking

For the techies:

  • Each click on a construction area is tracked using Flash remoting and a CFC
  • Blog coupled with Hello for photo hosting
  • CFC back end integrated with Alumni Association intranet very easily

The blog is a major accomplishment. There exists a bit of uncertainty about what Lehigh is opening itself up to by doing this. I'll be the one monitoring it. so please be nice ;-) We realize that some of the construction projects could be controversial for some alumni. but in the end the campus will be so much more beautiful for it.

Ah...technology. politics. and progress!

More Entries

About the blog