Began in May 2023
At my job at the Technology Services Help Desk, we worked with the ticketing system TeamDynamix (TDX) a lot. It is a good software, with lots of organizational and scalable features, but it is quite lacking in a few areas.
One issue that I had resolved with a previous extension that I made, TDX Updater, was the inability to have a live refresh.
In this project, I created a fully customizable extension which modifies the functionality of TDX based on pain points found by myself and my peers. I especially noted some of these inefficiencies and frustrations as I was training new consultants who asked things like "Why do we do it that way?" (If the answer is "Because that's the way it is," something probably needs to change.)
Ensuring that this wasn't another tool that employees were forced to use was important to me. So, I made it so that features can be systematically toggled on and off at any time, and users can opt-in to whichever modifications are useful to their team and themselves. I also created presets which select a set of features based on a specific target audience (e.g., a Help Desk consultant, a member outside of Tech Services). This made it easier to jump in with features without being overwhelmed with novelty.
I wanted to make sure that performance wasn't hindered by excess conditionals checking if different features are enabled, so I found a way using Chrome's service worker API to register different content scripts to execute based on the page navigated to, and when the user adjusts settings, this configuration is adjusted so that features that are disabled won't be loaded at all.
This required me to set up a custom compilation (transformation) pipeline to bundle all needed shared functionality into each individual script. This build was also configured to transform my ESM code into a more browser-compatible version that conformed with Chrome's content script ES module standard constraint.
I published this extension to the Chrome Web Store. Then, I worked with the Technology Services Cybersecurity Software Development & Assurance team to create a DevOps CI/CD pipeline to automatically test and build releases, verify the security of the project, and open-source the repository. I received code reviews from them and did ensemble programming to make the pipeline using GitHub Actions.
After deployment, I got numerous requests for additional features from colleagues, many of which I was able to implement. I also got requests from other teams to allow them to be able to use this tool.