Web Developer, Open Source Software Enthusiast, Coffee Roaster, Sports Fanatic and Writer

Dell ed2kb Application

  • Posted: Sat Aug 01 2015 12:56:53 GMT-0500 (CDT)
  • Updated: Tue Aug 25 2015 18:21:09 GMT-0500 (CDT)


Unfortunately, this project is not public (closed source and/or behind a corporate login/VPN/firewall), so I can only provide a summary of the work performed. #TODO: I am currently in the planning stages of similar implimentations, to serve as cross-platform GUIs to several command line applications, which I will publish on my GitHub profile.


Dell Logo

This was a desktop application (built with nw.js using modern web technologies) I developed for the Global Services Learning & Development team's publishers to migrate 10 years' worth of reference material content

This application allows publishers to convert product reference material (used by Dell technicians when dispatched to service equipment at client sites) from its original, multi-page HTML format to a single-page format suitable for publishing in Dell's knowledge base system.

Initially, I developed this as a Bash script (initial requirements did not involve direct use by publishers) using PCRE (Perl-compatible regular expressions), but the variations between different reference material formats over the years proved to be too numerous to efficiently manage parsing with regex.

In my search for a more efficient parser, I happened upon Cheerio, a Node.js plugin which allowed the use of jQuery selectors on the back end. This lent an enormous boost in efficiency, and parsing the various formats became mostly a simple matter of "if" statements and "or" (,) selectors.

When the requirements changed to include a GUI for publishers to do the conversion themselves, nw.js (formerly Node-Webkit) seemed like a logical choice. Not only could it be used to create a Windows app for the majority of use cases, but also Linux (and OS X, but nobody from Dell is using that... at least not on the clock), and even Android/Windows Phone would require only slight modifications (via Cordova).

The end result was a simple app that would allow publishers to convert multi-page HTML reference material in 3 simple steps:

  1. Click the "Choose Folder" button to choose the directory on their workstation or Windows share (default) containing the multi-page HTML.
  2. Click the "Convert" button, which:
    • Parses the relevant sections of each page, stripping existing CSS and inline style attributes.
    • Combines the parsed/sanitized HTML into a single page.
    • Adds CSS compliant with the knowledge base system's style guidelines (and ensures that images/Flash simulators/etc. do not exceed the guidelines' maximum width), as well as print-only styles.
  3. Click "Copy to Clipboard" to, well, copy to clipboard, and paste into the knowledge base system's WYSIWYG editor, review, and publish.