JANUS HTML Reporting

During the project work for a Labware LIMS system, I had to implement an HTML Reporting Framework.
The Labware client generates HTML that can be used in modules such as the Sample Folder, the Info Rule, or Visual Workflows.
What was very bothersome early on was that the Labware client could only generate static HTML. Further links or "load on demand," and thus the development of performant and interactive pages, are not possible without a proper web server.

Thus, I decided to use Node.JS as a freely available server component. Node.JS allows JavaScript to be used on the backend side. Many libraries known from the client-side are also available in server-side variants or are directly compatible. In the Node.JS environment, many libraries are available as open-source, making their use attractive.

Node.JS uses a central repository called npm for publishing self-developed modules and downloading third-party libraries.

Project Focus

  • Functional
    • HTML Report Server for Windows client systems, in this case, Labware LIMS
    • Contextually: The "JANUS Code Quality Suite " - a "diff tool" for Labware LIMS
    • Graphical visualization of data
  • Technical: Dealing with modern technologies
    • MongoDB as a document-based NoSQL database
    • Docker as a container option for the backend

Backend Components

  • node-oracledb and mssql for accessing Oracle and MSSQL databases
  • Express as an HTTP and HTTPS server
  • Socket.IO for WebSocket communication with older browsers like IE8 - no longer needed :-)
  • Passport.js for user authentication
  • Mammoth , a library for converting Microsoft Word documents to HTML
  • Office.JS for web-based plugins for Microsoft Office products

Client Components

Charting

Basics

  • jQuery
  • Underscore
  • Twitter Bootstrap
  • require.js

JANUS uses the following charting libraries:

  • D3 - as "state of the art" in the Big Data field
  • EJS Charting - a library for "conventional charting" (Line/Pie/Bar/Stacked Bars...). See also homepage for commercial use.
  • plot.ly Charting - more than a wrapper for the D3 library...
  • Oracle JET Engine for Gantt Charts
  • Marvin.JS - Designing molecules on the web - fast, smart, and intuitive
  • jQuery Sparklines - small inline charts

Further Technologies

  • Handlebars.JS - a template engine for JavaScript
  • Nivo - React-based library for chart visualization
  • Moment.JS - library for time manipulation in JavaScript
  • Chance.JS - random generator helper for JavaScript
  • MathJax - for rendering mathematical formulas

JANUS Specific Libraries

  • DataTables - for creating responsive, interactive tables
  • ag-Grid - JavaScript grid solution for enterprise applications
  • SheetJS - library for handling Excel files in JavaScript

Summary

By using freely available open-source technologies, it's possible to significantly extend the functionalities of the Labware LIMS platform.

The project "JANUS HTML Reporting" focuses on providing user-friendly, interactive, and responsive solutions for Labware LIMS reporting, utilizing the modern technological ecosystem of Node.JS, NoSQL databases, and various JavaScript libraries for backend and frontend development.