Supplier Search instantly searches and filters Virginia Tech data. Two instances
of the app exist: one to search for suppliers and another to search for
The Virginia Department of Small Business and Supplier Diversity sets targets
for the university to meet with regard to the percentage of purchases coming
from small, woman-owned, and minority businesses. However, the state’s tool
for identifying suppliers was
cumbersome to use and did not identify vendors already approved by Virginia
Tech. The university wanted a better app but was not sure exactly what that
looked like. After meeting with stakeholders, I suggested a user interface
modeled after Amazon.com, with a search bar along the top and filtering along
the left navigation menu.
Virginia Tech needed the app quickly to facilitate meeting its
purchasing targets, so I suggested we leverage Algolia’s search platform.
I populated the Algolia Engine with sample data and leveraged Algolia’s
UI components to produce a live prototype. After getting feedback and making a
few adjustments, it was time to populate the data.
To ingest data, I configured an Azure Storage endpoint where the university
could place a CSV file. I configured a trigger on the storage endpoint which
invokes an Azure Function to handle the extract-transform-load (ETL) process. The
function transforms the CSV file into a JSON
document, restructuring the data for efficient querying by Algolia. After
transforming the data, another Azure Function initiates a request to refresh the
data in the Algolia Engine. Using the SendGrid API, I notify the process owners
via email whether the refresh was successful.
After using the supplier search app, another department
university asked me to adapt it to search publicly available
contracts to which the university is a party. Since I kept the supplier app’s
configuration separate from the source code and treated each microservice as an attached
resource, standing up the contract search app was simply a matter of writing
new ETL functions and adjusting the filtering and search
configuration to leverage different parameters.