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]
- Image: Article editor
- Image: Article translation to English
- Image: GIF Image Editor
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]
- Image: Settings and DB Uploading
- Image: Data Publisher
- Image: Exercises extraction from articles
- Image: Aericle viewer
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]
- Image: Duplicate check
- Image: Exercises comprasion
- Image: Exercises viewer
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.