<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Shaikhhas</title>
    <description>The latest articles on DEV Community by Shaikhhas (@shaikhhas).</description>
    <link>https://dev.to/shaikhhas</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3356245%2F9be6b948-034d-46ee-b636-2104240a776a.png</url>
      <title>DEV Community: Shaikhhas</title>
      <link>https://dev.to/shaikhhas</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/shaikhhas"/>
    <language>en</language>
    <item>
      <title>AI Fitness Coach: Real-time Exercise Form Analysis using Google AI Studio</title>
      <dc:creator>Shaikhhas</dc:creator>
      <pubDate>Thu, 11 Sep 2025 09:16:02 +0000</pubDate>
      <link>https://dev.to/shaikhhas/ai-fitness-coach-real-time-exercise-form-analysis-using-google-ai-studio-14i9</link>
      <guid>https://dev.to/shaikhhas/ai-fitness-coach-real-time-exercise-form-analysis-using-google-ai-studio-14i9</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/google-ai-studio-2025-09-03"&gt;Google AI Studio Multimodal Challenge&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What I Built&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I built an AI Fitness Coach that analyzes exercise form from uploaded videos. This application helps users improve their squat and deadlift techniques by providing real-time feedback, identifying form issues, and suggesting corrective exercises.&lt;/p&gt;

&lt;p&gt;Learning proper exercise form can be intimidating for beginners. Asking for help at the gym can feel uncomfortable, YouTube tutorials can be overwhelming with contradictory information, and personal trainers are often prohibitively expensive. The AI Fitness Coach aims to lower these barriers by providing an accessible, judgment-free way to check your form and get personalized feedback.&lt;/p&gt;

&lt;p&gt;The AI Fitness Coach solves several problems:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Provides accessible form checks without requiring a human trainer&lt;/li&gt;
&lt;li&gt;Helps prevent injuries by identifying risky movement patterns&lt;/li&gt;
&lt;li&gt;Delivers personalized exercise recommendations based on specific form issues&lt;/li&gt;
&lt;li&gt;Offers an educational tool for fitness enthusiasts to improve technique&lt;/li&gt;
&lt;li&gt;Reduces the intimidation factor for beginners wanting to learn proper form&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9wsw5gplruzj0od8fkxv.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9wsw5gplruzj0od8fkxv.gif" alt="Demo" width="720" height="437"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The GIF above demonstrates the key functionality of the AI Fitness Coach:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Uploading an exercise video&lt;/li&gt;
&lt;li&gt;AI analysis of the movement&lt;/li&gt;
&lt;li&gt;Receiving detailed form feedback&lt;/li&gt;
&lt;li&gt;Reviewing specific issues with timestamps&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;How I Used Google AI Studio&lt;/strong&gt;&lt;br&gt;
I leveraged Google AI Studio's Gemini Pro Vision model to power the core functionality of the AI Fitness Coach. The implementation involved:&lt;/p&gt;

&lt;p&gt;Video Analysis: Using Gemini Pro Vision to analyze exercise videos and evaluate form&lt;/p&gt;

&lt;p&gt;Structured Response Generation: Configuring the model to return consistent JSON-formatted feedback&lt;/p&gt;

&lt;p&gt;Prompt Engineering: Developing precise prompts that instruct the model to identify specific form issues in squat and deadlift exercises&lt;/p&gt;

&lt;p&gt;Visual Understanding: Utilizing the model's ability to perceive movement patterns and body positioning across video frames&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Multimodal Features&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Form Analysis: Gemini identifies specific form issues like improper back angle, knee positioning, or weight distribution based on visual cues in the video.&lt;/p&gt;

&lt;p&gt;Structured Feedback: The application parses the model's analysis into structured data that includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Overall form score&lt;/li&gt;
&lt;li&gt;Positive aspects of the user's technique&lt;/li&gt;
&lt;li&gt;Specific form issues with timestamps&lt;/li&gt;
&lt;li&gt;Recommended exercises to address identified problems&lt;/li&gt;
&lt;li&gt;Sources for recommendations&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Technical Implementation&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The application is built with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Frontend&lt;/strong&gt;: HTML, CSS, JavaScript&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Backend&lt;/strong&gt;: FastAPI (Python)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AI Integration&lt;/strong&gt;: Google AI Studio's Gemini Pro Vision model&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Deployment&lt;/strong&gt;: Hosted on Vercel&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The system processes video uploads, sends them to the Gemini API for analysis, and presents the results in an intuitive interface that allows users to review specific issues with synchronized video playback.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Important Disclaimer&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;This application is a proof of concept for demonstration purposes only. While the AI provides valuable feedback, it should be used with caution:&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;- The AI may occasionally misinterpret movements or provide incorrect advice&lt;/em&gt;&lt;br&gt;
&lt;em&gt;- Users should always prioritize their safety and comfort when exercising&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;The AI Fitness Coach demonstrates the potential of multimodal AI to make fitness guidance more accessible, but it's important to recognize its limitations and use it responsibly.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Contributors
&lt;/h2&gt;

&lt;p&gt;This is a solo dev project by myself.&lt;/p&gt;

&lt;h2&gt;
  
  
  🔗 Project Repo
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/Shaikhhas/GoogleAIStudioDemo" rel="noopener noreferrer"&gt;GitHub – GoogleAIStudioDemo&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  🔗 Project Link
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://google-ai-studio-demo.vercel.app/" rel="noopener noreferrer"&gt;Project&lt;/a&gt;&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>googleaichallenge</category>
      <category>ai</category>
      <category>gemini</category>
    </item>
    <item>
      <title>News Activity Map with Redis</title>
      <dc:creator>Shaikhhas</dc:creator>
      <pubDate>Tue, 05 Aug 2025 09:01:21 +0000</pubDate>
      <link>https://dev.to/shaikhhas/news-activity-map-with-redis-2og3</link>
      <guid>https://dev.to/shaikhhas/news-activity-map-with-redis-2og3</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/redis-2025-07-23"&gt;Redis AI Challenge&lt;/a&gt;: Real-Time AI Innovators.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;This project began as a simple RSS feed visualizer on a map. Over time, it evolved into a real-time political news intelligence platform powered by Redis, Telegram ingestion, NLP, and vector search.&lt;/p&gt;

&lt;p&gt;The system is split into three main parts:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Telegram Scraper&lt;/strong&gt; – collects news data, extracts named entities, and generates vector embeddings.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;API&lt;/strong&gt; – handles semantic search, clustering, timeline analysis, and pushes real-time updates via WebSockets.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;UI&lt;/strong&gt; – built with React + Vite + Leaflet to display the interactive map, article data, and activity timeline.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  The (Very Rough) Dev Journey
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Initial Proof of Concept
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Scrape data from RSS feeds.&lt;/li&gt;
&lt;li&gt;Normalize data for each source.&lt;/li&gt;
&lt;li&gt;Run scraper on a schedule.&lt;/li&gt;
&lt;li&gt;Use NLP (spaCy) for NER and geo-tagging (for mapping).&lt;/li&gt;
&lt;li&gt;Generate article embeddings with &lt;code&gt;all-MiniLM-L6-v2&lt;/code&gt; for search and clustering.&lt;/li&gt;
&lt;li&gt;Build a basic FastAPI backend for data retrieval.&lt;/li&gt;
&lt;li&gt;Use React + Leaflet.js for the map UI.&lt;/li&gt;
&lt;li&gt;Visualize activity with free country polygons and hover states.&lt;/li&gt;
&lt;li&gt;Sidebar displays articles per country interaction.&lt;/li&gt;
&lt;li&gt;24-hour cumulative article count shown as activity.&lt;/li&gt;
&lt;li&gt;Store data in postgresql.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Second Phase
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Switched to real-time ingestion via Telegram using Telethon (no more scheduling).&lt;/li&gt;
&lt;li&gt;Normalized data once.&lt;/li&gt;
&lt;li&gt;Upgraded NER using &lt;code&gt;spacy/en_core_web_trf&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Retained embedding generation for clustering.&lt;/li&gt;
&lt;li&gt;Started storing processed data in Redis.&lt;/li&gt;
&lt;li&gt;Updated API to use Redis as the data source.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Third Phase
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;API now provides article counts grouped by hour to power a timeline.&lt;/li&gt;
&lt;li&gt;Added NLP-based semantic search.&lt;/li&gt;
&lt;li&gt;Search initially ran in-memory using the same embedding model (response time ~4–5 seconds).&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Fourth Phase
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Switched Redis storage to use &lt;code&gt;HSET&lt;/code&gt;, &lt;code&gt;ZADD&lt;/code&gt;, and byte arrays for vector search.&lt;/li&gt;
&lt;li&gt;Created Redisearch index for fast KNN similarity lookup.&lt;/li&gt;
&lt;li&gt;Improved search response time to ~0.5 seconds.&lt;/li&gt;
&lt;li&gt;Switched activity metric from cumulative to time-weighted scoring.&lt;/li&gt;
&lt;li&gt;Implemented similar article detection via embeddings.&lt;/li&gt;
&lt;li&gt;Cleaned up and improved the UI.&lt;/li&gt;
&lt;li&gt;Added map legend for better UX.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Fifth Phase
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Final UI cleanup and layout polish.&lt;/li&gt;
&lt;li&gt;Integrated Redis Pub/Sub for real-time notifications via WebSockets.&lt;/li&gt;
&lt;li&gt;UI now receives live article alerts.&lt;/li&gt;
&lt;li&gt;Refactored scraper and API codebases for maintainability.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/B1WtoxefFNY"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;




&lt;h2&gt;
  
  
  Source Code
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/Shaikhhas/RedisDemo_PoC" rel="noopener noreferrer"&gt;https://github.com/Shaikhhas/RedisDemo_PoC&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Redis Usage
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;FT.SEARCH + KNN&lt;/strong&gt; for vector-based semantic search and clustering.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;ZADD&lt;/strong&gt; and sorted sets for timeline activity.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pub/Sub&lt;/strong&gt; for pushing real-time notifications to the frontend.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Personal Wishlist / Future Ideas
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;ul&gt;
&lt;li&gt;Merge notification data into the main dataset&lt;/li&gt;
&lt;li&gt;Precompute per-hour article counts for performance&lt;/li&gt;
&lt;li&gt;Implement lazy loading or paging&lt;/li&gt;
&lt;li&gt;Add dark mode&lt;/li&gt;
&lt;li&gt;Add "Follow" functionality for developing stories&lt;/li&gt;
&lt;li&gt;Expose a scraper ingestion API for other sources&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;




&lt;p&gt;This was a solo project built over about a week, based on a prior prototype.&lt;/p&gt;

</description>
      <category>redischallenge</category>
      <category>devchallenge</category>
      <category>database</category>
      <category>ai</category>
    </item>
    <item>
      <title>Building a Global News Tracker with NLP and GeoTagging.</title>
      <dc:creator>Shaikhhas</dc:creator>
      <pubDate>Tue, 15 Jul 2025 08:10:49 +0000</pubDate>
      <link>https://dev.to/shaikhhas/building-a-global-news-tracker-with-nlp-and-geotagging-576p</link>
      <guid>https://dev.to/shaikhhas/building-a-global-news-tracker-with-nlp-and-geotagging-576p</guid>
      <description>&lt;p&gt;&lt;strong&gt;Prefacing this with - I'm not a writer. Why did I do this ? Because I wanted to see if I could do it with free resources and I was bored. A friend suggested posting here, so yeah...&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Built a full-stack application that scrapes news articles from various RSS feeds and uses Hugging Face transformers for Named Entity Recognition (NER). Locations are refined via fuzzy matching with pycountry to automate geo-tagging, enabling display on a heat map built with React + Leaflet.&lt;/p&gt;

&lt;p&gt;Designed as a proof-of-concept for real-time aggregation and visualization of global news using LLMs/AI.&lt;/p&gt;

&lt;p&gt;Live Demo:&lt;br&gt;
&lt;/p&gt;
&lt;div class="crayons-card c-embed text-styles text-styles--secondary"&gt;
    &lt;div class="c-embed__content"&gt;
      &lt;div class="c-embed__body flex items-center justify-between"&gt;
        &lt;a href="https://news-heat-map-demo-ui.vercel.app/" rel="noopener noreferrer" class="c-link fw-bold flex items-center"&gt;
          &lt;span class="mr-2"&gt;news-heat-map-demo-ui.vercel.app&lt;/span&gt;
          

        &lt;/a&gt;
      &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;Tech Stack:&lt;br&gt;
• Frontend: React + Vite + Leaflet.js&lt;br&gt;
• Backend: FastAPI + Uvicorn&lt;br&gt;
• Database: Supabase (PostgreSQL)&lt;br&gt;
• NLP: Python + HuggingFace Transformers&lt;br&gt;
• Hosting: Render + Vercel&lt;/p&gt;

&lt;p&gt;Key Features:&lt;br&gt;
• Scheduled data scraping from RSS feeds&lt;br&gt;
• Automated geo-tagging using NER + fuzzy matching&lt;br&gt;
• Minimal, map-based UI for exploring story clusters&lt;/p&gt;

&lt;p&gt;Everything after scraping is automated — from entity extraction and map display.&lt;/p&gt;

&lt;p&gt;The country polygon are available freely which you can download, the RSS reader is a python script run through task scheduler when I log on. The UI could be improved further but I don't see anything I could add at the moment, the point was to give immediate feedback on what's and how much is happened where in the world.&lt;/p&gt;

&lt;p&gt;NER picks up other stuff too which you could use for further filters, but that also requires cleaning.&lt;br&gt;
Another addition would be grouping using embedding for related events.&lt;/p&gt;

&lt;p&gt;The only manual part of the project right now is normalizing new RSS feeds.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>ai</category>
      <category>python</category>
    </item>
  </channel>
</rss>
