Supplier Search

Instant search and filter

  • Supplier Search


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 public contracts.

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, 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.


  • Languages
    • TypeScript
    • Sass
    • HTML
  • Frameworks
    • Algolia
    • Angular
  • Databases
    • Algolia Engine
  • Live Site