RexSoft · Articles · Case Studies

Article

Smart Fit Data Manager: Content Pipeline and Exercise Database Manager for the Smart Fit Solution

Tools: .NET 10 · Blazor Server · Azure AI Search · Azure AI Translator · Semantic Kernel · SmartReader · ImageSharp

The SmartFit solution is a comprehensive AI-powered fitness platform developed using Microsoft .NET 10.

The solution consists of two integrated applications:

SmartFitCoach: A Blazor Server web application providing AI-powered personal coaching, personalised training plans, a 4-week schedule manager, and a real-time fitness chat assistant for end users (a description is here).

SmartFitDataManager: A companion Blazor Server web application for managing the exercise database and fitness article content pipeline — including web scraping, AI translation, GIF image editing, duplicate detection, and Azure AI Search indexing (described in this article).

SmartFitDataManager is an internal Blazor Server application built on .NET 10 that powers the entire content pipeline behind SmartFitCoach. It handles all exercise data preparation tasks: scraping fitness articles from the web, cleaning and editing content, translating articles from any language into English, removing watermarks from exercise GIF images, detecting duplicate exercises, and publishing the final data to the SQLite database and Azure AI Search index used by the coaching app.

This project demonstrates RexSoft's use of a broad range of specialist .NET libraries and Azure cognitive services to build practical, automated content tooling.


Technology and Design


Like SmartFitCoach, SmartFitDataManager is a Blazor Server application on .NET 10 with Interactive Server Components. It is designed as an internal operator tool - used by content editors to prepare and maintain the exercise and article data that the AI coaching app depends on.

The application integrates several specialist NuGet packages alongside Azure services:


SmartReader — extracts clean, readable article content from any web URL, filtering out navigation menus, advertisements, and boilerplate automatically

HtmlAgilityPack — structural HTML parsing for fine-grained content extraction

ReverseMarkdown — converts extracted HTML into clean Markdown for storage and editing

SixLabors.ImageSharp — GIF frame extraction, processing, and reassembly

OpenCvSharp4 (OpenCV for .NET) — computer vision inpainting for logo and watermark removal across every frame of a GIF animation

Azure.AI.Translation.Text — Azure AI Translator for article translation into English

Azure.Search.Documents — Azure AI Search indexing for the RAG pipeline in SmartFitCoach

Azure.Storage.Blobs — Azure Blob Storage for media asset management


Article Editor & Translation

The Article Editor page displays all saved articles in a sidebar list. Selecting an article loads its full content with inline images for review and manual editing. All text fields are editable directly in the browser.

A single click on the Translate button sends the article title, body, and section headings to Azure AI Translator (Azure.AI.Translation.Text) for machine translation into English. The original language version is preserved and accessible as a toggle — switching between original and translated text with one click. This workflow makes it practical to source exercise and coaching content from fitness publications in any language and publish it in English for the search index.

[screenshot: article editor page]

[screenshot: translation toggle — original vs. English]

GIF Image Editing — Logo and Watermark Removal

Exercise GIF animations sourced from third-party fitness websites frequently carry watermarks or brand logos baked into every frame. The Article Editor includes a frame-accurate logo removal tool powered by two libraries working together:

SixLabors.ImageSharp handles loading the GIF, iterating over all frames, and reassembling and saving the cleaned animation with its original timing and frame count intact.

OpenCvSharp4 (OpenCV for .NET) applies an inpainting algorithm to each frame, intelligently reconstructing the background pixels in the selected region using surrounding visual context.

The operator previews the first frame, marks the logo region by specifying its position and dimensions, and triggers processing. The tool runs inpainting across every frame and saves a clean output GIF — with no manual frame-by-frame editing required.

[screenshot: GIF editor with logo region selection]

[screenshot: before and after comparison]

Duplicate Exercise Check


The Similarity Check page scans the entire exercise database for near-duplicate entries using a weighted Jaccard similarity algorithm. Similarity is computed across three fields:

• Exercise name — weighted at 65%

• Muscle groups — weighted at 25%

• Equipment — weighted at 10%

A configurable threshold slider lets the operator tune sensitivity — lower values surface broader near-matches, higher values focus on near-exact duplicates. All matched pairs are displayed side-by-side with their similarity score, and either entry can be deleted directly from the page. Keeping the database free of duplicates ensures the AI search results in SmartFitCoach remain precise and non-repetitive.

[screenshot: duplicate check results page]

Exercise Database Management

ExerciseDataService provides full CRUD access to the SQLite exercise database via Entity Framework Core (v9), with filtering by muscle group, equipment, difficulty, and exercise type. A statistics view shows total exercise count, total image count, and a breakdown by source article. Once articles are prepared and exercises are validated, content is indexed into Azure AI Search - making it immediately available to the RAG pipeline in SmartFitCoach.



Technical Overview


Framework NET 10 · Blazor Server (Interactive Server Components)

Web Scraping SmartReader 0.11 · HtmlAgilityPack 1.12 · ReverseMarkdown 5.2

Image Processing SixLabors.ImageSharp 3.1 · OpenCvSharp4 4.13 (OpenCV for .NET)

Translation  Azure AI Translator (Azure.AI.Translation.Text 1.0)

Search Indexing Azure AI Search (Azure.Search.Documents 11.x)

Blob Storage Azure Blob Storage (Azure.Storage.Blobs 12.x)

Database SQLite · Entity Framework Core 9.x

AI Orchestration Microsoft Semantic Kernel 1.x

Markdown Markdig 1.x

Deployment Internal tool (Azure App Service)


SmartFitDataManager demonstrates how a focused internal tooling application can automate the content pipeline for an AI-powered product. The combination of web scraping, AI translation, computer vision watermark removal, and semantic duplicate detection makes it possible to build and maintain a high-quality, multilingual exercise and article database efficiently — and feed it directly into the SmartFitCoach coaching experience.