← Swipe·Swipe →

2025 · INTERNAL TOOLS | DATA

Office Inventory Dashboard

A stock tracker for the school's operations team: real-time levels, automatic low-stock alerts, and a product categorizer built with regex instead of an API.

Built at Immaculata-La Salle High School

Private Deployment: Built for Immaculata-La Salle High School
Office Inventory Dashboard dashboard

Tech Stack

Azure Static Web AppsSharePointPower AutomateJavaScriptMSALAzure AD

Overview

The first version used the Anthropic API to categorize product names. It worked, but it added per-request cost and an external dependency for something that didn't need to be that complicated. Replaced it with a regex categorizer that's faster, free, and doesn't fail if the API is down. A Power Automate flow checks stock daily and alerts the team when anything runs low. Shipped with 14 pages of documentation so whoever maintains it next doesn't have to figure it out from scratch.

Impact

Who it serves: The school's operations team managing stock

Before

Stock levels lived in whoever last checked the supply closet's head, with no automatic alert before something actually ran out and no shared record of what was on hand.

After

Stock levels are tracked live, low-stock alerts fire automatically, and the whole operations team sees the same numbers instead of relying on a supply run to find out something's missing.

Est. Annual Cost Saved

$470/yr

vs. Sortly (Sortly Inc.): est. $470/yr. ~$39/mo effective (Advanced tier, billed annually), sortly.com/pricing.Published pricing page, checked Sept 2026. Monthly billing would run $588/year instead.

Estimate, not an audited figure. Methodology and sources are disclosed above for each comparable product.

What I Built

  • Real-time inventory view backed by SharePoint lists
  • Regex-based product categorizer replacing an external API dependency
  • Automated low-stock alerts via Power Automate, triggering when items fall below threshold
  • MSAL authentication, scoped to ILS staff only
  • ILS brand design system: green #004B23, gold #FFC20E, Montserrat/Bebas Neue
  • 14-page technical handoff documentation for future maintainers

What I Learned

Replacing an AI API dependency with a deterministic regex categorizer: simpler, faster, and zero ongoing cost

Writing technical handoff documentation thorough enough that someone else can maintain and extend the system

Azure Static Web Apps deployment pipeline and MSAL token flow for SPAs

Designing a brand-compliant UI from an institutional style guide