This repository documents the AI-driven microservices architecture for Neele-Vat. The system operates on a Hub-and-Spoke model where a central API gateway manages traffic for specialized AI workers, supported by user-facing applications for reporting and order management.
The ecosystem consists of 8 distinct applications deployed on Mogenius (Kubernetes).
| Application Name | Type | Responsibility | Key Integrations | GitHub Repo |
|---|---|---|---|---|
| AI Email API | Gateway | Central traffic controller. Receives D365 webhooks, manages Graph API subscriptions, and routes requests to specialized workers. | Microsoft Graph, D365 | ai-email-api |
| Quote Processing App | Worker | Processes pricing requests. Extracts PDF data, calculates surcharges/zones, and drafts email replies. | Azure DI, Azure OpenAI | email-quote-processing-api |
| Transport Status Retriever | Worker | Handles "Where is my shipment?" queries. Extracts reference IDs and fetches real-time tracking. | NVU API, Azure OpenAI | ai-transport-status-retriever |
| Email Router App | Worker | Manages general inquiries. Classifies intent and drafts generic responses using LLMs. | Azure OpenAI | email-router-api |
| Purchase Invoice App | Worker | Automates accounts payable. Extracts invoice data from emails and persists it to the database. | Azure DI, Azure SQL | document-processing |
| Order Flow API | API | Backend for the Outlook Add-in. Processes orders triggered manually by users and pushes to ERP. | Outlook Add-in, Babbelway | order-flows |
| ai-report-api | Backend | Reporting & Governance API. Manages user permissions and serves aggregated metrics to the frontend. | Document UI, Azure SQL | ai-reports-api |
| Document UI | Frontend | React-based dashboard. Allows users to view reports, manage permissions, and audit AI extractions. | ai-report-api | document-ui |
The following diagram illustrates the isolation of each application workflow, all sharing the same core intelligence and data layer.
graph TD
subgraph Users ["End Users"]
Human["Staff / Admin (Browser)"]
Outlook["Outlook User (Add-in)"]
end
subgraph MS_Azure ["Microsoft 365 & Azure AI"]
MS_Services["D365 & Graph API"]
Azure_AI["Azure DI & OpenAI"]
end
subgraph Mogenius_Cluster ["Mogenius K8s Cluster"]
Gateway["AI Email API (Gateway)"]
subgraph Specialized_Apps ["Independent Applications"]
QuoteApp["Quote Processing App"]
StatusApp["Transport Status Retriever"]
RouterApp["Email Router App"]
OrderApp["Order Flow API"]
InvoiceApp["Purchase Invoice App"]
end
subgraph Management_Layer ["Management & Governance"]
ReportAPI["ai-report-api"]
DocUI["Document UI"]
end
end
subgraph External_Systems ["External integrations"]
NVU["NVU Status API"]
Babbelway["Babbelway API"]
end
subgraph Data_Layer ["Persistence"]
DB[(SQL DB)]
end
%% 700 SERIES: ORDER FLOW (User Triggered)
Outlook -- "701. Process Email" --> OrderApp
OrderApp -- "702. Fetch Body" --> MS_Services
OrderApp -. "703. AI Logic" .-> Azure_AI
OrderApp -- "704. Push Structured Data" --> Babbelway
%% 800 SERIES: PURCHASE INVOICE (Webhook Triggered)
Gateway -- "801. Dispatch" --> InvoiceApp
InvoiceApp -. "802. AI Extraction" .-> Azure_AI
InvoiceApp -- "803. Store Result" --> DB
%% 01-400: EXISTING FLOWS (Summary)
MS_Services -- "01. Webhook" --> Gateway
Gateway -- "101. Quote / 201. Status / 301. General" --> QuoteApp & StatusApp & RouterApp
StatusApp -- "203. Query" --> NVU
QuoteApp & StatusApp & RouterApp -- "401. Log Metrics" --> DB
%% 500-600: UI & REPORTING
Human -- "500. Access" --> DocUI
DocUI -- "501. Request Data" --> ReportAPI
ReportAPI -- "502. Query" --> DB
ReportAPI -- "503. Result (Incl. Invoices)" --> DocUI
%% FINAL EMAIL LOOP
Gateway -- "02. Send Reply" --> MS_Services
%% Styling
style OrderApp fill:#e67e22,color:#fff
style InvoiceApp fill:#9b59b6,color:#fff
style Babbelway fill:#34495e,color:#fff
style DocUI fill:#ff5722,color:#fff