Custom Framework

« Back to Portfolio main

While working at DMS, I built and refined a custom framework over the duration of a few different projects. It was designed to speed up software development time, as well as increase consistency of file structure and visual appearance.

ColdFusion components (CFCs) were built to handle common interface objects. Early versions used simple HTML components, a revised version used the jQuery style, and the most recent version uses the Twitter BootStrap style. This included:

  • Customizing styling,
  • Adding a new button type,
  • Custom link styling to match the button styles,
  • Button sets (grouped buttons with spacing between), and
  • Button groups (“button bars”).

buttons1
buttons2
buttons3

Much of the content of the systems is tabular, so styling and usage were added to the developer reference pages.

revisions
tables1
tables2

Since many pages contain a large amount of data that can be grouped according to specific criteria, expanding and collapsing functionality was also added.

expandcollapse1
expandcollapse2

Including developer documentation for quick reference.

expandcollapse3

Global form validation and styling are also part of the core framework.

forms1
forms2
forms3

Flags and icons are also handled by the framework. The original version used GIF images, the revised version used jQuery icons, and the current version uses the FontAwesome icon library.

For consistency of icons across common tasks like adding, editing, saving, and approving, the framework supplies some normalized icon names (which are basically pointers to other specific icons). By using the normalized name, it is easy to globally change the icon for a specific function.

flagsicons1
flagsicons2

Users frequently filter reports for specific subsets of data. This was also encompassed by the framework both in saving of changed filters, as well as interface components to activate filters.

filters1
filters2

Common messages are also handled by the framework.

messages

Global custom error handling was added to provide friendly feedback messages to the users if there is a problem with the database transactions.

errors

Global helpers for common tasks such as updating a select box based on an AJAX response are also a key feature.

ajaxselects

The framework also utilizes automatic file includes for Javascript, CSS, and custom functions on a per-page basis to remove the need to do this repetitive task manually. By abstracting this into it’s own separate files, it helps promote small, focused code that is easier to maintain as well as less potential for file conflicts during version control and migration.

« Back to Portfolio main