Skip to content

work / kioskvisionai · 2025-06

KioskVisionAI

[dotnet-aspire][azure][vision-ai][microservices][devops]

Abstract

Cloud-native distributed app that watches a fleet of donation kiosks with Azure Vision AI — orchestrated by .NET Aspire, deployed by generated GitHub Actions.

§1Problem

Donation kiosks deployed across U.S. mosques fail silently — a frozen screen or dead battery means lost donations until someone physically notices. Support needed eyes on every device without anyone standing in front of it.

§2Approach

Built a distributed .NET 9 Aspire application: kiosk screenshots flow into Azure Blob Storage, Queues fan out analysis work, and Azure Vision AI inspects each frame for anomalies, enriching metadata and firing event-driven notifications. Aspire provides orchestration, observability, and service discovery across the microservices. Provisioned with Azure Developer CLI (azd), which then auto-generated the GitHub Actions workflows for continuous delivery.

§3Impact

Streamlined DevOps pipeline with reduced manual configuration, faster deployments, and full observability across services — intelligent monitoring for the entire kiosk fleet.

Aspire service graph: kiosk screenshots flow into Azure Blob Storage, queues fan out analysis to Vision AI workers, which fire event notifications .NET Aspire — orchestration · observability · service discovery kiosk kiosk kiosk donation kiosk fleet png Azure Blob Storage Azure Queues Vision AI anomaly check Vision AI anomaly check Vision AI anomaly check event alerts provisioned with azd · deployed by generated GitHub Actions
Fig. 1 — Aspire service graph: kiosk screenshots → Blob Storage → Queue fan-out → Vision AI workers → event alerts

Keywords: .NET 9, .NET Aspire, Azure Blob Storage, Azure Queues, Azure Vision AI, Azure Developer CLI (azd), GitHub Actions

(private/work project — ask me for a walkthrough)

@misc{ammar2025kioskvisionai,
  author = {Ammar, Md. Abu},
  title  = {KioskVisionAI},
  year   = {2025},
  note   = {Engineering case study}
}