This project was created to help me better understand what technology had been deployed at an agency that had recently hired me.
Given that I was in unknown territory, I wanted to create a clientless inventory system that would enable me to document my findings
as well as be able to find information on systems by itself.
Although its intention was not to be deployed as a standalone web app, there was no reason to give it a subpar user experience. The
interface is completely searchable and entries have sections that show the user what other entries are related to it.
The inventory system utilizes PowerShell to query systems for information such as isntalled software and hardware specifications. The
data is stored in a Microsoft SQL database and can be accessed via a web browser after starting the Blazor server application.
Lost a file? Windows search not finding something you need? I know exactly how that feels and is why Seeker was created.
Seeker was originally a project I wrote some years ago, but wanted to get better performance from. So I ported it from WinForms and
Python to WPF and C++. The filesystem searching in Seeker has been achieved via C++17 std::filesystem within a Dynamic Link Library
and .NET 5 is used for the remaining functionality. This was not the first time I had written a program using multiple languages, but
was the first where I created my own DLL to house more performance-minded code.
Seeker includes its own query syntax that is used to express requirements to the search engine. A realtime translation is included on
the user interface to help users better understand how their input is being interpretted. The user interface is written in XAML and
utilizes the Model-View-ViewModel design pattern.
PatchBox is an in-progress audio plugin to host other audio plugins. The goal of this project is to bring complex parallel signal
processing and macro control to any Digital Audio Workstation that supports VST3 or Audio Unit formats.
Parallel processing is achieved through the creation of a signal graph where each plugin is a node. The input signal is replicated
to each chain, where it is processed independent of the others. The chains terminate at a single, shared output which will playback
the affected audio, hence giving the ability to parallel process without the need for additional auxiliary tracks.
In addition to parallel processing, the user is able to control parameters from any of the plugins in the graph by mapping to
one of PatchBox's macro controls. This allows for complex effects to be controlled with the turn of a single knob, which can be
particularly useful during a live performance.
PatchBox is written in C++ using the JUCE framework and utilizes a Model-View-Controller design pattern.
PDI was created to aid AVTA's Records Management department with the transition into the age of distributing digital documents
for public records requests (PRRs).
The tool utilizes the SHA-512 algorithm for both hashing and signing of files that are to be included in the PRR. To know
which files to include and how to organize them, the Records Technician is able to make the desired directory structure
within a designated folder using the familiar Windows File Explorer. PDI is able to recreate this structure when imaging
removable media and within a ZIP archive. The folder chosen for the staging area is the local AppData folder. This ensures
that even if the computer is connected to an enterprise network that utilizes Distributed File System or other network folder
redirection, the staging area will be available to the user at all times. However, the staging area location is configurable.
PDI's user interface is written in XAML and utilizes WPF with a Model-View-ViewModel design pattern.