Bill of Materials, Admin Center

Way back in 2002, I took the little knowledge I had about website creation and built on the concepts of HTML to create what eventually became a fully-featured web-based Bill of Materials administration center.

It was a long journey, primarily due to a lack of time, but it was one that I relished. Creation of new things has always been in my blood, and this appealed to the creative and imaginative side of me.

As the site evolved over the years, and decades, what primarily used early web technologies such PHP (version 4 as it was back then), ultimately became heavily coded in PHP8, MySQL/MariaDB, CSS, and javascript with AJAX calls. I didn’t limit myself to a specific language, and would use anything that would add more functionality and flexibility to the site.

In later years, I incorporated changes to make the script more object-oriented, which ultimately led to my rekindled interest in the coding I do today.

By 2021, this BOM administration center incorporated many features, including the following:

  • Using sessions for advanced log-in/authorisation features,
  • CSS layouts to create presentable project/summary views,
  • Heavy use of PHP plus javascript to create flexible Bill of Materials layouts, with instant access to related projects, changes, and additional files,
  • On-screen CAD drawings by way of SVGX, with links to PDF versions of the same,
  • A sophisticated back-trace system allowing to check past versions and revisions of all BOM components,
  • A searchable change notice module, linked to past versions and previous changes,
  • A deep search facility with highlights on search terms.

When logging in with the correct authorisation, the back-end presented additional features, such as:

  • Comprehensive ‘settings’ to alter the layout of the site, present additional features to users, clear search histories,
  • A ‘New Project’ module whereby new projects could be created, together with additional files that could be uploaded/deleted,
  • Editing existing projects, including all functionality of the ‘New Project’ module,
  • Project creation / update emails sent to users, each of whom could elect to receive them in plain text, HTML, or not at all. Even without the email, the contents of the notifications could be viewed after logging-in,
  • A comprehensive manual, detailing the classes, methods, and properties used in OOP so that additional functionality could be easily added later,
  • Leveraging AJAX (Asynchronous JavaScript And XML) for “live updating” of components and quantities, of the viewing BOM.

I’m a great advocate of “not re-inventing the wheel”, so it’s with some amusement that I discovered recently how similar JSON (JavaScript Object Notation) – something I’d heard about but never used – is to the multi-dimensional arrays I’d been using in my own scripts to retrieve and store Bill of Materials data prior to display on the web-page.

This version of the BOM admin center was a labour of love that I spent many long hours, and late nights, toiling over; teaching myself the necessary concepts and coding required to make it so comprehensive and capable.

That it ultimately wasn’t utilised and, hence, not finalised, is a cause of great sadness and regret for me; but it’s an experience of learning that I’ll never forget. It’s what brought me out of the Dark Ages of website creation into a world of endless possibilities that I see as my coding journey today.