Enter any website URL to analyze its complete technology stack

Executive Summary for mswebdeveloper.com

895 Response Time (ms)
200 HTTP Status
32 Scripts
74 Images
28 Links
HTTP/1.1 Protocol

SEO & Content Analysis

Basic Information
Page Title
Welcome to Tejinder Rai's blog, Cloud Solutions Architect | Microsoft Azure Cloud Engineering & Development
Meta Description
Microsoft Azure Cloud Engineering & Development
HTML Language
en
Robots.txt Present
Sitemap Present
total_urls: 82
SEO Meta Tags
content-type: text/html; charset=UTF-8
Page Content
Welcome to Tejinder Rai's blog, Cloud Solutions ArchitectWelcome to the Blazor Simple AI Single Page App, Part 4 of the Microsoft AI services journey, which now includes invoice analysis which utilises Microsoft Azure AI Document Intelligence service. The document Intelligence service is used to extract the text from an invoice using a pre-built model. A sample of some of the models is shown below in document intelligence studio.This document explains the project in my GitHub repository which is available here: https://github.com/tejinderrai/public/tree/main/BlazorSimpleAI.If you would like to download the whole series of posts for the Blazor Simple AI Project, you can download the PDF here.Since part 3, the following nuget packages have been added to the project.Azure.AI.DocumentIntelligence (Pre-release)New ComponentsThree components have been developed for the image analysis. These are as follows:InvoiceLoader.Razor – A component which includes the child component (InvoiceFileList.Razor), which uploads invoices to Azure blog storage containerInvoiceFileList.Razor – A component which lists the invoices that a present in the invoice upload containerInvoiceViewer.Razor – A component which allows the user to view the uploaded invoice in a dialogProvisioning a Microsoft AI Document Intelligence ServiceTo provision a Microsoft AI Document Intelligence Service resource, follow the instructions in the article below.Create a Document Intelligence (formerly Form Recognizer) resource – Azure AI services | Microsoft LearnLearn about Microsoft AI Document IntelligenceTo learn more about the capabilities of Microsoft AI Document Intelligence capabilities, see. Document Intelligence documentation – Quickstarts, Tutorials, API Reference – Azure AI services | Microsoft Learn. Microsoft Azure AI Document Intelligence includes more analysis capabilities, not just specifically an invoice model.Configuration Settings ChangesThe following configuration settings were added to appsettings.json.“AzureDocumentIntelligenceConfig”: {    “AzureDocumentIntelligenceKey”: “[Your Azure Document Intelligence Key]”,    “AzureDocumentIntelligenceEndpoint”: “[Your document intelligence endpoint https://[Resource Name].cognitiveservices.azure.com/”  },“AzureStorageConfig”: {    “AzureStorageInvoiceContainer”: “[Your Invoice Upload Container Name]”,    “AzureStorageInvoiceProcessedContainer”: “[Your Invoice Processed Container Name]”,   },The invoice processed container is the output interface file that is generated from the text extracted from the original invoice file. It is an output of JSON which utilises the InvoiceAnalysisData data type.Note: Whist this project utilises the service key, in an enterprise environment, you must consider using token based access to the service secured by Microsoft Entra ID, or if you wish to utilise the service key for any reason, utilise Azure Key Vault to protect the key used by the application with a managed identity for the application to access the service key stored in Azure Key Vault.ComponentsInvoice Loader Component (InvoiceLoader.Razor)The invoice upload component utilises Blazor InputFile for the user to select the file to upload in the application. The component reads the Azure Storage connection string from the configuration, including the container, then uploads the file to the container and also adds a blob http header for the file content type taken from the file properties. The Radzen notification service is used to notify the user of the application activities. I also included a basic spinner as part of the interaction for the upload process.Invoice File List Component (InvoiceFileList.Razor)This component reads the Azure Storage connection string from the configuration, including the container, then displays the invoice blob file names in a Radzen DataGrid. A button is added to view the invoice, or process the invoice, which then calls the Radzen notification service to display the activities being taken by the application.Invoice Viewer Component (InvoiceViewer.Razor)This component is a child component displayed in a Radzen dialog box which displays the original uploaded invoice directly from the Azure blob storage invoice upload container. A storage SAS key is generated which provides time limited access to the user in order for the invoice to be displayed in the dialog.Data ClassesInvoiceAnalysisData.cs – The class for the invoice.InvoiceItem.cs –  The class for the invoice items.Invoice SampleI have created an invoice samples to test the pre-built invoice model from Microsoft Azure Document Intelligence.Supplier 1 Invoice (PDF)I created two additional sample invoices, both of which were tested and successfully processed. I have not covered the upload of these in my blog post.Supplier 2 – Jpeg image(Missing Quantity)Invoice 3 – Handwritten Invoice – jpeg imageThe UIThe UI for invoice analysis is as follows.Invoice AnalysisUpload FileView Button – Opens the PDF in a dialog boxProcess Button – Interactive Dialog boxProcessing Completed – Invoice details – text extracted into InvoiceAnalysis object.Submit Button – Create an output interface file in JSON format.Azure Storage – (invoiceanalysisupload container)Processed Output fileFile Contents{ "VendorName":"Car Parts UK Ltd", "VendorAddress":"15 Street Gardens\nPoole, Dorset, DS11 333", "CustomerName":"Car Shop", "CustomerAddress":null, "InvoiceItems":[ {"Quantity":10.0,"ItemDescription":"Ferrari 360 Spider Hood","Amount":"50000"}, {"Quantity":5.0,"ItemDescription":"Ferrari 360 Spider Gearbox","Amount":"12500"} ], "Tax":"12500", "InvoiceTotal":"75000" }Note: The code does not extract the customer address, but this is in fact possible.The handwritten jpeg image, the second invoice as a jpeg image and the PDF all proved to have 100% extraction using the Microsoft AI Document Intelligence service. That’s just amazing!It is as simple as that!The reason for creating a interactive SPA as a sample app, is to demonstrate the features. The same code can be used in event driven architectures, or scheduled triggers. That will be something I will  post next.Invoice 2 – jpeg outputInvoice 2- viewerInvoice 2 – ProcessedInvoice 3 – Handwritten jpeg;

Network & Infrastructure

DNS & Hosting
IP Address
192.0.78.24
Reverse DNS
Not detected
SSL/TLS Certificate
Issuer
CN=E8, O=Let's Encrypt, C=US
Protocol Tls13
Expires In 43 days
HSTS Enabled

Technology Stack

Content Management Systems
WordPress WordPress (robots.txt)
JavaScript Frameworks
jQuery
Server Technologies
Generator: WordPress.com PHP (inferred from WordPress)
Database Hints
MySQL

Services & Integrations

Analytics & Tracking
Google Analytics GA4 Google Analytics UA
E-commerce Platforms
Magento PrestaShop

CDN & Media Providers

Web Fonts
Google Fonts

Dynamic Analysis & Security

Dynamic JavaScript Analysis
Angular (Data Attributes) Bootstrap (CSS Classes) ES6+ JavaScript Features jQuery (CDN Detection) Web Server: nginx
Security Headers
HSTS
Server Headers
nginx

Resource Analysis

External Resource Hosts
0.gravatar.com
af.pubmine.com
fonts-api.wp.com
fonts.gstatic.com
gmpg.org
mswebdeveloper.com
pixel.wp.com
s0.wp.com
s1.wp.com
s2.wp.com
stats.wp.com
tejinderrai.org
tejinderrai.wordpress.com
tejinderraiorg.blob.core.windows.net
wp.me
UI Frameworks & Libraries
Angular Material (Class Names) Bootstrap (Class Names) D3.js Ionic (Class Names) Slate Swiper Vuetify (Class Names)

Analysis Errors

Analysis Warnings & Errors
The following issues occurred during analysis:
  • Reverse DNS failed: No such host is known.
Analysis Complete

Analyzed mswebdeveloper.com with 5 technologies detected across 7 categories

Analysis completed in 895 ms • 2026-03-23 09:48:56 UTC