Matt Jernigan's profile

Brown's Course Evaluation System

Brown's Course Evaluation System
An example of my work from data model to web app

Designing and building Brown's course evaluation system is a fairly complete example of my database developer skills from feasibility analysis to data modeling to application development.  I built the vast majority of this system by myself in about six months without overtime (consultants rarely work overtime).  This feat of productivity is one that I sometimes wonder if I could duplicate.  I started the analysis and design in the summer of 2010 and the system went online at the end of the Fall 2010 semester in time for student use.  I did not, however, complete the entire project before its first use and some things came later.  For example, another developer wrote the evaluation results review pages while I completed other outstanding items.  As such, those results pages are not shown below.  What I did build myself was the data model (and database objects), the student course evaluation pages, and the staff "Course Evaluation Manager" pages that are used for building the evaluation forms and controlling the system.

Oh yeah, did I mention that this was also my first web app and some of my first web pages of any sort?  Fortunately, I tend to absorb new technology like I do breakfast cereal.

A course evaluation is essentially just a survey and, normally, building a survey system should not be all that difficult.  This system, however, required a large amount of flexibility to accommodate the needs of the Dean of the College (DOC) as well as each of the departments.  Not only did it need the usual smattering of question and response types (including Likert scale grids), but the DOC needed to define a selection of different evaluation templates -- with both required and optional questions in it -- that the departments could then build their own evaluation forms upon.  The system also supports question versioning so that a question can sustain minor edits and still be tracked over time while still maintaining the original forms.  Finally, the evaluations forms can have sections set to repeat for each instructor and/or TA attached to the course with responses from those sections only viewable by the relevant faculty.

I built the data model in Toad Data Modeler.  I prototyped most of the pages in Dreamweaver before rewriting them as Oracle PL/SQL packages.  The student pages are mostly JavaScript-free and can run without JavaScript enabled.  The staff pages, however, use a great deal of JavaScript, AJAX, and jQuery to enable single-page editing.  Page styling is handled primarily by the student system product, SunGard's Banner ERP, and their WebTailor framework of PL/SQL packages (I added very little CSS to the baseline CSS).  Thus, the pages are not pretty but they are consistent with the rest of the student system.  I have not yet met another Banner developer that builds custom Banner applications with Banner's WebTailor framework -- sure, the pages others build are prettier, but I believe in the standardized code and CSS as well as the security and malicious code scrubbing that WebTailor provides.  Thus, as "just the consultant," I do my best to quietly lead by example even if the engineering culture gets a bit hostile towards consultants.

The data model for the heart of the course evaluation system.  Baseline objects and a few other objects are not shown.  Built in Toad Data Modeler.
The following graphic shows examples of the pages the students see:

Note the plain page styles. See my notes on the reasons why in my introductory comments above.
It was the decision of the Dean of the College to show the entire course evaluation form on one page, regardless of length (this one is fairly short).  I can see pros and cons to this versus other user interface solutions.   Given this particular user scenario of several evaluations to fill out each semester, I believe this was the correct decision.
The following is a long graphic showing examples of the pages that the staff use:
I would love to polish this up but, apparently, management has other critical projects that are more urgent than finishing the requested features that were skipped on this one.  In order to meet deadlines I refuse to sacrifice quality of work even though I have been told repeatedly to "write sloppier" or "don't bother" with commenting code.  Therefore, if a difficult deadline must absolutely be met, I will sacrifice features instead of quality.  Sacrificing quality never go anybody anywhere worth going.
Brown's Course Evaluation System
Published:

Brown's Course Evaluation System

My work to design and build the course evaluation system at Brown University.

Published: