Skip to content

svkshailendra/SmartNotificationRouter

Repository files navigation

Smart Notification Router

👋 Overview

A free-tier Azure app that uses AI to batch categorize and route email alerts.
Built with .NET, Azure Functions, ML.NET, and Azure Service Bus. Live Site

🎯 Audience

  • Small teams & startups → Reduce noise from system alerts and focus on urgent ones.
  • Developers → Learn event-driven architecture with AI integration.
  • Recruiters → See applied technical leadership in cloud-native systems.

🚀 Features

  • Drag‑and‑drop multiple .eml files (up to 10 per batch).
  • AI categorization using ML.NET (e.g., "Urgent", "Finance", "Info", "Reminder" , "Other").
  • Dashboard with category filters, confidence threshold, and summary charts.
  • Confidence scores (0–100%) show classifier certainty; low scores may need human review.
  • Session badge shows when your current batch is active.
  • Export results to CSV/PDF directly from the dashboard.
  • Send categorized messages to Azure Service Bus Queues. For production, this can be extended to Topics + Subscriptions when multiple teams need the same feed.
  • Failed or expired Service Bus messages are automatically moved to the DLQ for inspection.
  • Clear privacy model: processed in memory only, no permanent storage, no login required.

📚 Contents

  • SmartNotificationRouterFunction → .NET API + Functions (upload, export, Service Bus).
  • SmartNotificationRouter.Trainer → ML.NET classification model training & notes.
  • SmartNotificationRouter.Client → Blazor frontend for dashboard and file upload.
  • SmartNotificationRouter.Shared → Shared model classes.
  • docs/ → Architecture + screenshots.

🗺️ Architecture Overview

The system is composed of:

  • Blazor Server frontend for UI.
  • Azure Functions backend APIs.
  • ML.NET for category prediction.
  • Dashboard for filtering categories, manual send‑off to Service Bus queues and reporting.

Architecture

🔄 User Flow

  1. Open the Blazor Server web app.
  2. Upload multiple .eml files (batch).
    • If .msg files are uploaded, the app shows a warning and links to How to export from Outlook.
  3. Backend extracts subject/body → ML.NET categorizes.
  4. Results displayed in dashboard with filters, confidence bar, and charts.
  5. Export results to CSV/PDF or send to Service Bus for downstream systems.

📸 Screenshots

Home Page
Dashboard

🧭 Why This Repo?

Most teams manually triage alerts.
This repo demonstrates how to build a free‑tier, AI‑powered, event‑driven router that scales from hobby projects to small teams, with polish and clear UX.

➕ Extras

The repo also includes a sample ServiceBusReceiver class to demonstrate consuming categorized messages from queues.
This can be used by upstream services (e.g., enrichment, validation, feedback loops) or downstream apps (e.g., alerting, dashboards).
It is not wired into the dashboard but shows how teams can extend the system for their own processing needs.

🔗 Links

About

A smart notification router that classifies email alerts using AI (ML.NET) and routes them to Azure Service Bus based on the predicted category.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors