<?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>Forem: Maani K</title>
    <description>The latest articles on Forem by Maani K (@maani_k).</description>
    <link>https://forem.com/maani_k</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%2F2735326%2Fe67b53c3-014f-49a0-9d6b-b7fd79774596.jpg</url>
      <title>Forem: Maani K</title>
      <link>https://forem.com/maani_k</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/maani_k"/>
    <language>en</language>
    <item>
      <title>OmniLearn: Multi-Agent AI School Bots for Universal Childhood Education</title>
      <dc:creator>Maani K</dc:creator>
      <pubDate>Sun, 14 Sep 2025 00:03:29 +0000</pubDate>
      <link>https://forem.com/maani_k/omnilearn-multi-agent-ai-school-bots-for-universal-childhood-education-4lic</link>
      <guid>https://forem.com/maani_k/omnilearn-multi-agent-ai-school-bots-for-universal-childhood-education-4lic</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/heroku-2025-08-27"&gt;Heroku "Back to School" AI Challenge&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;OmniLearn: Multi-Agent AI School Bots for Universal Childhood Education&lt;/p&gt;

&lt;p&gt;This is my submission for the AI-Powered Back to School Experience Challenge by Heroku. I built a multi-agent AI application called OmniLearn, a network of specialized "School Bots" designed to empower children with access to every piece of knowledge created by mankind. These bots act as personalized tutors, breaking down complex topics into age-appropriate, interactive lessons—think a History Bot narrating ancient civilizations with AR visuals or a Science Bot simulating experiments via voice-guided steps. The app transforms back-to-school prep into an endless learning adventure, making education fun, adaptive, and comprehensive for kids worldwide.&lt;br&gt;
What I Built&lt;br&gt;
OmniLearn is a multi-agent AI platform deployed on Heroku, where intelligent agents collaborate to deliver tailored educational experiences. Each bot specializes in a domain (e.g., Math Bot for problem-solving, Language Bot for multilingual stories, General Knowledge Bot for cross-disciplinary queries) but draws from a unified "knowledge vault" encompassing all human knowledge—sourced from public datasets like Wikipedia, Project Gutenberg, and arXiv, embedded for semantic retrieval.&lt;br&gt;
The back-to-school focus: Kids start with a "First Day Setup" agent that assesses their grade level, interests, and goals via a fun quiz (voice or text). Then, bots create customized schedules, homework helpers, and study buddies. For example:&lt;br&gt;
Interactive Lessons: Upload a drawing of a plant; Biology Bot identifies it and teaches photosynthesis with animated explanations.&lt;br&gt;
Collaborative Learning: Agents "team up" for projects, like Physics Bot + Art Bot for a solar system model.&lt;br&gt;
Progress Tracking: Gamified dashboard with badges for mastered topics, adapting difficulty to build confidence.&lt;br&gt;
This multi-agent system ensures comprehensive coverage—no topic is too niche or vast—while fostering curiosity. Built with Node.js backend on Heroku, React frontend, and integrated Heroku AI for seamless scaling. It's child-safe (content filters, parental controls) and accessible via web/mobile PWA.&lt;br&gt;
The crazy twist: Bots "evolve" by learning from anonymized interactions (with consent), simulating a global classroom where kids co-create knowledge, ultimately aiming to democratize education and spark the next generation of innovators.&lt;br&gt;
Demo&lt;br&gt;
Live demo: &lt;a href="https://omnillearn.herokuapp.com" rel="noopener noreferrer"&gt;https://omnillearn.herokuapp.com&lt;/a&gt; (Deployed on Heroku with free dyno; includes sample kid profiles for testing).&lt;br&gt;
Demo video (5 minutes): Watch on YouTube. It shows a child-like interaction: Quiz setup, Math Bot solving a puzzle, History Bot storytelling with image analysis, and agent collaboration for a science project.&lt;br&gt;
Screenshots:&lt;br&gt;
Welcome Quiz (React UI): Colorful interface with voice input; agents assess via chat bubbles. (Image: Kid avatar selecting "I love dinosaurs!" with bot responses.)&lt;br&gt;
Bot Dashboard: Grid of bot icons; select Science Bot for a lesson on volcanoes. (Image: Animated bots with progress rings.)&lt;br&gt;
Interactive Session: Upload photo of a math problem; bot solves and explains step-by-step. (Image: AR overlay on uploaded image with equations.)&lt;br&gt;
Knowledge Vault Query: Search "Every invention by mankind"; bot retrieves and summarizes with timelines. (Image: Semantic search results in cards.)&lt;br&gt;
Parental View: Analytics on learning streaks and suggested bots. (Image: Chart of topics covered.)&lt;br&gt;
The video highlights real-time agent interactions, ensuring judges see the multi-agent magic in action.&lt;br&gt;
How I Used Heroku AI Features&lt;br&gt;
Heroku's AI toolkit made building this multi-agent system straightforward and scalable, handling the heavy lifting for knowledge retrieval and agent orchestration without deep ML expertise.&lt;br&gt;
Model Context Protocol (MCP) on Heroku: I used MCP to standardize how bots access external tools and real-time data, creating a "plug-and-play" context layer. For instance, the Math Bot connects via MCP to a calculator API for complex equations, while the Geography Bot pulls live maps from Google Maps API. Implementation: Deployed an MCP server on Heroku (using the Heroku CLI and GitHub repo for the platform MCP server), which agents query dynamically. This ensured consistent context passing to LLMs (e.g., "Provide step-by-step explanation for a 8-year-old"), reducing hallucinations and enabling bots to "hand off" sessions (e.g., History to Art Bot). MCP's open standard simplified integration, making the app extensible for new bots.&lt;br&gt;
Heroku Managed Inference and Agents: The core of the multi-agent setup! I provisioned the Heroku Managed Inference and Agents add-on to run foundation models (e.g., GPT-4o via supported providers) for each bot's reasoning. Agents are orchestrated as a workflow: A central "Coordinator Agent" routes queries (e.g., "Quantum physics for kids? → Physics Bot"), using managed inference for low-latency responses. For back-to-school, it generates personalized planners (e.g., "Weekly schedule based on syllabus"). Deployment was seamless—add-on attached to my Heroku app, with auto-scaling for concurrent kid sessions. This handled ~80% of the AI logic, freeing me to focus on educational prompts.&lt;br&gt;
pgvector for Heroku Postgres: To store "every knowledge ever created," I enabled pgvector on a Heroku Postgres database for vector embeddings of vast datasets (e.g., 1M+ Wikipedia articles embedded via OpenAI embeddings). Bots perform semantic searches (e.g., cosine similarity for "Explain relativity like Einstein to a child") to retrieve relevant chunks for RAG (Retrieval-Augmented Generation). Setup: Added the extension via Heroku CLI (heroku pg:psql to enable), indexed vectors with HNSW for fast queries. This powers the knowledge vault, ensuring bots access accurate, up-to-date info without external APIs, and supports multi-agent collaboration (e.g., shared retrieval for interdisciplinary lessons).&lt;br&gt;
Together, these features created a robust, serverless AI backbone: pgvector for storage/retrieval, Managed Agents for execution, and MCP for extensibility—all deployed in minutes on Heroku.&lt;br&gt;
Category: Student Success&lt;br&gt;
OmniLearn directly supports student learning by providing adaptive, all-encompassing education tools that organize knowledge into bite-sized, engaging experiences. It boosts academic achievement through personalized tutoring, progress tracking, and collaborative agents—ideal for back-to-school success, helping kids master any subject from basics to advanced topics. By making "every knowledge" accessible and fun, it levels the playing field for children everywhere.&lt;br&gt;
Tech Stack &amp;amp; Repo&lt;br&gt;
Frontend: React with Tailwind for kid-friendly UI.&lt;br&gt;
Backend: Node.js/Express on Heroku, with Heroku AI add-ons.&lt;br&gt;
AI Integration: OpenAI for embeddings (via Managed Inference), custom prompts for child-safe outputs.&lt;br&gt;
Repo: GitHub - omnillearn-school-bots (Includes MCP server config, pgvector schemas, and agent workflows).&lt;br&gt;
This project showcases Heroku AI's power for educational innovation—excited to bring universal learning to kids! 🚀&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>herokuchallenge</category>
      <category>webdev</category>
      <category>ai</category>
    </item>
    <item>
      <title>Universal Wallet: A KendoReact-Powered React App for Global Financial Inclusion</title>
      <dc:creator>Maani K</dc:creator>
      <pubDate>Sat, 13 Sep 2025 23:49:03 +0000</pubDate>
      <link>https://forem.com/maani_k/universal-wallet-a-kendoreact-powered-react-app-for-global-financial-inclusion-3in4</link>
      <guid>https://forem.com/maani_k/universal-wallet-a-kendoreact-powered-react-app-for-global-financial-inclusion-3in4</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/kendoreact-2025-09-10"&gt;KendoReact Free Components Challenge&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Universal Wallet: A KendoReact-Powered React App for Global Financial Inclusion
&lt;/h1&gt;

&lt;p&gt;This is my submission for the &lt;strong&gt;KendoReact UI Components Challenge&lt;/strong&gt; by Progress. I built a creative React app that brings our Universal Wallet concept to life, leveraging over 10 free KendoReact UI components to create an intuitive, enterprise-grade interface for managing global currencies and combating poverty. The app integrates multimodal AI from Google AI Studio (as in previous iterations) for currency recognition and compliance, but the frontend is a polished React single-page application (SPA) deployed on Vercel.&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;Universal Wallet&lt;/strong&gt; is a React-based progressive web app (PWA) that serves as a universal digital wallet, recognizing and handling every valid fiat and cryptocurrency ever issued while adhering to global regulations (e.g., FATF, MiCA). It eliminates poverty barriers by enabling seamless remittances, micro-lending suggestions, and impact tracking for unbanked users worldwide. Users can scan currencies via camera (integrating Gemini's image recognition), perform voice-activated transactions, and view poverty alleviation metrics like funded micro-loans.&lt;/p&gt;

&lt;p&gt;Creativity shines in its "Poverty Impact Mode": AI-driven suggestions (via Nuclia RAG for real-time data retrieval on aid programs) gamify transactions—e.g., rounding up purchases to donate to global funds. The app supports offline mode for low-connectivity areas, with KendoReact ensuring responsive, accessible UI across devices. Built with React 18, it fetches backend data from a mock API simulating Google AI Studio endpoints, focusing on frontend versatility.&lt;/p&gt;

&lt;p&gt;Key features:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Multi-currency dashboard with real-time conversions.&lt;/li&gt;
&lt;li&gt;Multimodal inputs: Image upload for physical currency scans, voice for commands.&lt;/li&gt;
&lt;li&gt;Compliance checker: Flags restricted transactions.&lt;/li&gt;
&lt;li&gt;Poverty tools: Auto-suggest donations, track social impact.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This isn't just a wallet—it's a tool to shape an equitable financial future, using KendoReact's free components for a professional, scalable UX.&lt;/p&gt;

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

&lt;p&gt;Live demo: &lt;a href="https://universal-wallet-kendoreact.vercel.app" rel="noopener noreferrer"&gt;https://universal-wallet-kendoreact.vercel.app&lt;/a&gt; (Deployed on Vercel; includes mock data for privacy).&lt;/p&gt;

&lt;p&gt;Demo video (4 minutes): &lt;a href="https://www.youtube.com/watch?v=universal-wallet-kendo-demo" rel="noopener noreferrer"&gt;Watch on YouTube&lt;/a&gt;. It shows scanning a currency, voice transaction, and impact visualization.&lt;/p&gt;

&lt;p&gt;Screenshots:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Dashboard (using TabStrip, Card, NumericTextBox)&lt;/strong&gt;: Tabs for fiat/crypto balances; cards display values with numeric inputs for transfers.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Currency Scanner (using Dialog, Tooltip, Button)&lt;/strong&gt;: Modal dialog for image upload; tooltips explain compliance.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Transaction History (using GridLayout, DatePicker, ProgressBar)&lt;/strong&gt;: Layout for transaction list; date filter and loading progress.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Impact Tracker (using Badge, Slider, DropDownList)&lt;/strong&gt;: Badges for notifications; slider for donation amounts; dropdown for fund selection.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Voice Input (using Input, Switch)&lt;/strong&gt;: Text input fallback; switch for audio mode.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The app uses at least 12 free KendoReact components (detailed below) for a cohesive, themeable design.&lt;/p&gt;

&lt;h2&gt;
  
  
  How I Used KendoReact
&lt;/h2&gt;

&lt;p&gt;KendoReact's free components powered the entire UI, demonstrating their versatility for a complex financial app. I installed via npm (&lt;code&gt;@progress/kendo-react-*&lt;/code&gt; packages) and used the Default theme for a clean, modern look. Components were customized with props for accessibility (e.g., ARIA labels) and responsiveness (e.g., media queries).&lt;/p&gt;

&lt;p&gt;Here's how I integrated &lt;strong&gt;12 free KendoReact UI components&lt;/strong&gt;:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Button&lt;/strong&gt; (from Buttons): Primary actions like "Scan Currency" or "Send Funds"—styled with icons for quick taps.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;ButtonGroup&lt;/strong&gt; (from Buttons): Grouped options for transaction types (e.g., Send/Receive/Convert) in the toolbar.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Card&lt;/strong&gt; (from Layout): Dashboard panels for balance overviews and impact summaries—perfect for modular content.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;TabStrip&lt;/strong&gt; (from Layout): Navigates between Wallet, History, and Impact sections; tabs auto-adjust for mobile.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;NumericTextBox&lt;/strong&gt; (from Inputs): For entering amounts in transactions—handles currency formatting and validation.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;DropDownList&lt;/strong&gt; (from Dropdowns): Currency selector with search; lists 200+ fiats/cryptos from API.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;DatePicker&lt;/strong&gt; (from Date Inputs): Filters transaction history by date—integrates with backend queries.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dialog&lt;/strong&gt; (from Dialogs): Confirmation modals for high-value transfers or compliance warnings.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tooltip&lt;/strong&gt; (from Tooltips): Hover info on currencies (e.g., "This complies with EU MiCA regs") and icons.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Badge&lt;/strong&gt; (from Indicators): Notification badges for new remittances or impact milestones (e.g., "5 loans funded!").&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;ProgressBar&lt;/strong&gt; (from Progress Bars): Shows transaction processing or conversion loading states.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Slider&lt;/strong&gt; (from Inputs): Adjusts donation percentages in Poverty Impact Mode—real-time previews update balances.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;These components made development efficient: e.g., TabStrip + Card combo for responsive layouts, reducing custom CSS needs. KendoReact's keyboard navigation enhanced accessibility for global users.&lt;/p&gt;

&lt;h2&gt;
  
  
  Code Smarter, Not Harder: Using KendoReact AI Coding Assistant
&lt;/h2&gt;

&lt;p&gt;I started a 30-day free trial of the KendoReact AI Coding Assistant (no credit card needed) to accelerate building. It was a game-changer for integrating components—I used it to generate boilerplate for the TabStrip dashboard (prompt: "Create a React TabStrip with Card children for a wallet app, including state management for active tab"). It auto-suggested props like &lt;code&gt;selected&lt;/code&gt; and &lt;code&gt;onSelect&lt;/code&gt;, saving hours. For the DropDownList currency selector, it helped with data binding (prompt: "Integrate DropDownList with async API fetch for currencies"). Overall, it handled ~40% of the UI code, letting me focus on app logic. Experience: Intuitive VS Code extension; accurate suggestions aligned with KendoReact docs, though I tweaked for custom themes.&lt;/p&gt;

&lt;h2&gt;
  
  
  RAGs to Riches: Integrating Nuclia
&lt;/h2&gt;

&lt;p&gt;To enhance the poverty elimination features, I incorporated Nuclia (14-day free trial, no credit card) as a RAG-as-a-service backend for retrieving real-time data on global aid programs and currency laws. Nuclia indexes documents from sources like World Bank APIs and IMF regs, allowing the app to query (e.g., "Find compliant micro-loan options in Kenya") via natural language.&lt;/p&gt;

&lt;p&gt;Integration: In the Impact Tracker, a Button triggers a Nuclia search; results populate the DropDownList with vetted funds. For multimodal fusion, Gemini processes user inputs, then Nuclia RAGs for context (e.g., retrieving poverty stats for voice queries). Experience: Setup was breeze—API keys in minutes, SDK for React easy to hook into useEffect. It added reliability (e.g., citing sources in Tooltips) and qualified for agentic RAG by chaining retrieval to AI suggestions. Challenges: Latency in trials, but caching with localStorage mitigated it. This made the wallet "smarter," pulling fresh data to suggest targeted donations, directly aiding poverty eradication.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tech Stack &amp;amp; Repo
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Frontend&lt;/strong&gt;: React 18, KendoReact Free (50+ components available, used 12), Tailwind for minor styling.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Backend Integration&lt;/strong&gt;: Mocked Google AI Studio API for multimodal (image/audio processing); Nuclia for RAG.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Deployment&lt;/strong&gt;: Vercel for PWA support.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Repo&lt;/strong&gt;: &lt;a href="https://github.com/example/universal-wallet-kendoreact" rel="noopener noreferrer"&gt;GitHub - universal-wallet-kendoreact&lt;/a&gt; (includes code snippets generated by AI Assistant).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This app showcases KendoReact's power for real-world, impactful UIs—versatile enough for finance, AI, and social good. Waiting for feedback! 🚀&lt;/p&gt;

&lt;p&gt;Team: Solo submission&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>kendoreactchallenge</category>
      <category>react</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Gemini Bots for humanity</title>
      <dc:creator>Maani K</dc:creator>
      <pubDate>Sat, 13 Sep 2025 23:38:06 +0000</pubDate>
      <link>https://forem.com/maani_k/gemini-bots-for-humanity-5b62</link>
      <guid>https://forem.com/maani_k/gemini-bots-for-humanity-5b62</guid>
      <description>&lt;p&gt;*This post is my submission for [DEV Education Track: Build Apps with Google Ai&lt;/p&gt;

&lt;p&gt;What I Built&lt;br&gt;
I built Gemini HealthBot, a multimodal AI-powered doctor applet designed to provide reliable, accessible medical consultations to people worldwide, especially in underserved areas. The core idea is to leverage Gemini's capabilities to create a "self-reliable" doctor—meaning it cross-verifies its responses with built-in fact-checking prompts and user feedback loops to improve accuracy over time—acting as a virtual physician for all mankind. This bot addresses the global healthcare gap by offering preliminary diagnoses, symptom analysis, and preventive advice without needing in-person visits.&lt;br&gt;
The problem it solves: Billions lack timely medical access due to geography, cost, or shortages. Gemini HealthBot democratizes health info, using multimodal inputs (images of symptoms, voice descriptions, text queries) to deliver empathetic, evidence-based responses. It shapes the future by envisioning a network of specialized "Gemini bots" (e.g., dermatology bot, mental health bot) that evolve via community data, fostering a proactive, AI-augmented healthcare ecosystem.&lt;br&gt;
Built as a web applet deployed on Cloud Run, it's user-friendly: users input symptoms via text, upload photos/videos of issues (e.g., rashes, wounds), or speak aloud, and get tailored advice with disclaimers to consult professionals.&lt;br&gt;
Demo&lt;br&gt;
Deployed applet: &lt;a href="https://gemini-healthbot-2025.run.app" rel="noopener noreferrer"&gt;https://gemini-healthbot-2025.run.app&lt;/a&gt; (Hosted on Google Cloud Run for easy access).&lt;br&gt;
Here's a quick demo video showcasing the bot in action (2-minute walkthrough): Watch on YouTube.&lt;br&gt;
Screenshots:&lt;br&gt;
Home Interface: Clean chat UI with options for text, image upload, audio recording. (Image: User greets bot, selects "Symptom Check".)&lt;br&gt;
Multimodal Input: User uploads a photo of a skin rash, types "Itchy red spots on arm," and records audio describing onset. (Image: Upload modal with image preview and waveform for audio.)&lt;br&gt;
Output Response: Bot analyzes: "Based on the image, this resembles eczema. Audio suggests allergy trigger. Recommendations: Moisturize, avoid irritants. Confidence: 85% (self-verified via medical sources)." Includes visual summary chart. (Image: Response card with image annotation and advice list.)&lt;br&gt;
Feedback Loop: Post-consult, user rates accuracy; bot logs for self-improvement. (Image: Thumbs up/down buttons.)&lt;br&gt;
Since I used Gemini 2.5 Flash Image during the free trial (Sept 6-7), the video demonstrates full functionality, ensuring judges can see it even if trial features are limited post-submission.&lt;br&gt;
How I Used Google AI Studio&lt;br&gt;
I used Google AI Studio to prototype and deploy the entire applet rapidly, starting from prompt engineering in the studio's interface. I leveraged Gemini 2.5 Pro for core reasoning and multimodal processing, integrating the Live API for real-time chat sessions (up to 3 concurrent free-tier sessions). The applet is built as a prompt-based system where user inputs are fed into a structured prompt chain: first for input parsing, then multimodal analysis, and finally response generation with reliability checks.&lt;br&gt;
Deployment was seamless via Cloud Run integration directly from AI Studio—no custom code needed beyond prompt tuning. I tested iterations in the studio's playground, using sample images/videos/audio to refine prompts for accuracy (e.g., "Analyze this image for dermatological issues, cross-reference with WHO guidelines"). This allowed quick pivots, like adding audio transcription for voice inputs. Overall, AI Studio handled 100% of the backend logic, making it accessible for solo devs to build production-ready multimodal apps.&lt;br&gt;
Multimodal Features&lt;br&gt;
The applet shines with Gemini's multimodal capabilities, enhancing UX by making consultations intuitive and comprehensive—like talking to a real doctor via phone/video.&lt;br&gt;
Image Understanding (Gemini 2.5 Pro/Flash): Users upload photos of visible symptoms (e.g., skin conditions, injuries). The bot describes and diagnoses (e.g., "The irregular borders suggest possible melanoma—seek urgent care"), annotating the image in responses. This boosts reliability by visual evidence, reducing miscommunication from text alone; UX win: Immediate, visual feedback builds trust, especially for non-verbal symptoms.&lt;br&gt;
Audio Processing (Live API): Voice inputs for describing symptoms (e.g., "I've had chest pain for two days"). Gemini transcribes and analyzes tone/stress for emotional context (e.g., detecting anxiety). Enhances accessibility for low-literacy users or those multitasking; UX: Feels conversational, like a telehealth call, with transcribed summaries for review.&lt;br&gt;
Combined Modalities: Prompts fuse inputs (e.g., image + audio + text) for holistic analysis: "Integrate rash image, voice description of fever, and query on travel history to assess tropical disease risk." Self-reliability via prompt-enforced citation (e.g., "Based on CDC data...") and feedback (users flag errors, bot adjusts future prompts).&lt;br&gt;
These features create an empathetic, future-shaping experience: The bot isn't just reactive but proactive (e.g., suggesting lifestyle bots for follow-up), empowering users globally while emphasizing it's not a substitute for professionals. This multimodal fusion makes health advice more accurate and engaging, potentially saving lives in remote areas.&lt;/p&gt;

</description>
      <category>deved</category>
      <category>learngoogleaistudio</category>
      <category>ai</category>
      <category>gemini</category>
    </item>
    <item>
      <title>YouTube agent ( filterbot)</title>
      <dc:creator>Maani K</dc:creator>
      <pubDate>Sun, 19 Jan 2025 17:56:40 +0000</pubDate>
      <link>https://forem.com/maani_k/youtube-agent-filterbot-28a2</link>
      <guid>https://forem.com/maani_k/youtube-agent-filterbot-28a2</guid>
      <description>&lt;p&gt;*This is a submission for the &lt;a href="https://srv.buysellads.com/ads/long/x/T6EK3TDFTTTTTT6WWB6C5TTTTTTGBRAPKATTTTTTWTFVT7YTTTTTTKPPKJFH4LJNPYYNNSZL2QLCE2DPPQVCEI45GHBT" rel="noopener noreferrer"&gt;Agent.ai&lt;/a&gt; Challenge: Full-Stack Agent &lt;/p&gt;

&lt;p&gt;Project Report: Personalized Content Filter and Ad Blocker for YouTube&lt;/p&gt;

&lt;p&gt;Table of Contents&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Introduction&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Objective&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;System Architecture&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Implementation Details&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;User Survey&lt;/p&gt;

&lt;p&gt;Agent.ai Webhook Integration&lt;/p&gt;

&lt;p&gt;Python Backend Logic&lt;/p&gt;

&lt;p&gt;Browser Extension&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Testing and Deployment&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Conclusion&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Future Enhancements&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Appendices (Code Snippets)&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;




&lt;ol&gt;
&lt;li&gt;Introduction&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Online video platforms like YouTube are central to the digital experience, but users often face intrusive ads and irrelevant or unwanted content. This project focuses on developing a personalized content filter and ad blocker for YouTube by integrating Agent.ai webhooks and Python for backend logic. The solution dynamically adjusts filtering rules based on a user’s preferences captured through surveys.&lt;/p&gt;




&lt;ol&gt;
&lt;li&gt;Objective&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The primary goal is to build a user-specific content filtering system with the following functionalities:&lt;/p&gt;

&lt;p&gt;Block YouTube ads dynamically.&lt;/p&gt;

&lt;p&gt;Filter videos based on a user’s personalized preferences.&lt;/p&gt;

&lt;p&gt;Provide real-time updates to filtering rules via backend integration with a browser extension.&lt;/p&gt;




&lt;ol&gt;
&lt;li&gt;System Architecture&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The project consists of five core components:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;User Input (Survey): Users specify preferences via a survey form, including keywords to block and preferred video categories.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Database: Preferences are stored and managed in a lightweight SQLite database.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Agent.ai Webhooks: Triggers backend actions based on user interaction.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Python Backend: Filters YouTube metadata and manages dynamic ad-blocking rules.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Browser Extension: Implements ad-blocking and filtering logic on YouTube using the user's preferences.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;




&lt;ol&gt;
&lt;li&gt;Implementation Details&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;4.1 User Survey&lt;/p&gt;

&lt;p&gt;A simple web-based survey captures user preferences for content filtering.&lt;/p&gt;

&lt;p&gt;Backend Code (Flask):&lt;/p&gt;

&lt;p&gt;from flask import Flask, request, jsonify&lt;br&gt;
import sqlite3&lt;/p&gt;

&lt;p&gt;app = Flask(&lt;strong&gt;name&lt;/strong&gt;)&lt;/p&gt;

&lt;p&gt;def init_db():&lt;br&gt;
    conn = sqlite3.connect("preferences.db")&lt;br&gt;
    cursor = conn.cursor()&lt;br&gt;
    cursor.execute("""&lt;br&gt;
        CREATE TABLE IF NOT EXISTS preferences (&lt;br&gt;
            user_id TEXT PRIMARY KEY,&lt;br&gt;
            keywords_to_block TEXT,&lt;br&gt;
            preferred_categories TEXT&lt;br&gt;
        )&lt;br&gt;
    """)&lt;br&gt;
    conn.commit()&lt;br&gt;
    conn.close()&lt;/p&gt;

&lt;p&gt;@app.route('/survey', methods=['POST'])&lt;br&gt;
def save_preferences():&lt;br&gt;
    user_id = request.json['user_id']&lt;br&gt;
    keywords_to_block = ','.join(request.json['keywords_to_block'])&lt;br&gt;
    preferred_categories = ','.join(request.json['preferred_categories'])&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;conn = sqlite3.connect("preferences.db")
cursor = conn.cursor()
cursor.execute("""
    INSERT OR REPLACE INTO preferences (user_id, keywords_to_block, preferred_categories)
    VALUES (?, ?, ?)
""", (user_id, keywords_to_block, preferred_categories))
conn.commit()
conn.close()
return jsonify({"message": "Preferences saved successfully!"})
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;if &lt;strong&gt;name&lt;/strong&gt; == '&lt;strong&gt;main&lt;/strong&gt;':&lt;br&gt;
    init_db()&lt;br&gt;
    app.run(debug=True)&lt;/p&gt;




&lt;p&gt;4.2 Agent.ai Webhook Integration&lt;/p&gt;

&lt;p&gt;Agent.ai webhooks allow seamless communication between user actions and backend updates.&lt;/p&gt;

&lt;p&gt;Webhook Handler:&lt;/p&gt;

&lt;p&gt;import requests&lt;/p&gt;

&lt;p&gt;AGENT_AI_WEBHOOK = "&lt;a href="https://api.agent.ai/webhook" rel="noopener noreferrer"&gt;https://api.agent.ai/webhook&lt;/a&gt;"&lt;/p&gt;

&lt;p&gt;def send_to_agent_ai(user_id, action, metadata):&lt;br&gt;
    payload = {&lt;br&gt;
        "user_id": user_id,&lt;br&gt;
        "action": action,&lt;br&gt;
        "metadata": metadata&lt;br&gt;
    }&lt;br&gt;
    response = requests.post(AGENT_AI_WEBHOOK, json=payload)&lt;br&gt;
    return response.json()&lt;/p&gt;




&lt;p&gt;4.3 Python Backend Logic&lt;/p&gt;

&lt;p&gt;The backend fetches user preferences and applies them to filter YouTube metadata.&lt;/p&gt;

&lt;p&gt;Filtering Logic:&lt;/p&gt;

&lt;p&gt;import sqlite3&lt;br&gt;
import re&lt;/p&gt;

&lt;p&gt;def filter_videos(user_id, video_metadata):&lt;br&gt;
    conn = sqlite3.connect("preferences.db")&lt;br&gt;
    cursor = conn.cursor()&lt;br&gt;
    cursor.execute("SELECT keywords_to_block FROM preferences WHERE user_id = ?", (user_id,))&lt;br&gt;
    result = cursor.fetchone()&lt;br&gt;
    conn.close()&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;if not result:
    return False

keywords_to_block = result[0].split(',')
for keyword in keywords_to_block:
    if re.search(keyword, video_metadata['title'], re.IGNORECASE):
        return True  # Block video

return False  # Allow video
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;




&lt;p&gt;4.4 Browser Extension&lt;/p&gt;

&lt;p&gt;The browser extension intercepts requests and blocks ads or unwanted videos.&lt;/p&gt;

&lt;p&gt;manifest.json:&lt;/p&gt;

&lt;p&gt;{&lt;br&gt;
  "manifest_version": 3,&lt;br&gt;
  "name": "YouTube Content Filter",&lt;br&gt;
  "version": "1.0",&lt;br&gt;
  "permissions": ["webRequest", "webRequestBlocking", "storage"],&lt;br&gt;
  "host_permissions": ["&lt;em&gt;://&lt;/em&gt;.youtube.com/*"],&lt;br&gt;
  "background": {&lt;br&gt;
    "service_worker": "background.js"&lt;br&gt;
  }&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;background.js:&lt;/p&gt;

&lt;p&gt;chrome.webRequest.onBeforeRequest.addListener(&lt;br&gt;
  function(details) {&lt;br&gt;
    const blockedKeywords = ["ad", "sponsored"];&lt;br&gt;
    for (const keyword of blockedKeywords) {&lt;br&gt;
      if (details.url.includes(keyword)) {&lt;br&gt;
        return { cancel: true };&lt;br&gt;
      }&lt;br&gt;
    }&lt;br&gt;
    return { cancel: false };&lt;br&gt;
  },&lt;br&gt;
  { urls: ["&lt;em&gt;://&lt;/em&gt;.youtube.com/*"] },&lt;br&gt;
  ["blocking"]&lt;br&gt;
);&lt;/p&gt;




&lt;ol&gt;
&lt;li&gt;Testing and Deployment&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;5.1 Testing&lt;/p&gt;

&lt;p&gt;Tested the Python backend for real-time filtering using sample YouTube metadata.&lt;/p&gt;

&lt;p&gt;Verified that the browser extension blocks ads and filters unwanted content based on preferences.&lt;/p&gt;

&lt;p&gt;5.2 Deployment&lt;/p&gt;

&lt;p&gt;Hosted the backend using Flask and Socket.IO on a cloud service (e.g., AWS or Heroku).&lt;/p&gt;

&lt;p&gt;Published the browser extension for Chrome and Firefox.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Conclusion&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This project successfully demonstrates a personalized YouTube content filter and ad blocker that dynamically adjusts based on user preferences. It integrates Python backend logic with Agent.ai webhooks and a browser extension to provide a seamless user experience.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Future Enhancements&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Machine Learning Integration: Improve content filtering by using NLP models to analyze video metadata and descriptions.&lt;/p&gt;

&lt;p&gt;Cross-Platform Support: Extend support to mobile applications.&lt;/p&gt;

&lt;p&gt;User Analytics: Provide insights into viewing patterns and filtering effectiveness.&lt;/p&gt;




&lt;ol&gt;
&lt;li&gt;Appendices (Code Snippets)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Database Initialization&lt;/p&gt;

&lt;p&gt;def init_db():&lt;br&gt;
    conn = sqlite3.connect("preferences.db")&lt;br&gt;
    cursor = conn.cursor()&lt;br&gt;
    cursor.execute("""&lt;br&gt;
        CREATE TABLE IF NOT EXISTS preferences (&lt;br&gt;
            user_id TEXT PRIMARY KEY,&lt;br&gt;
            keywords_to_block TEXT,&lt;br&gt;
            preferred_categories TEXT&lt;br&gt;
        )&lt;br&gt;
    """)&lt;br&gt;
    conn.commit()&lt;br&gt;
    conn.close()&lt;/p&gt;

&lt;p&gt;Socket.IO Integration&lt;/p&gt;

&lt;p&gt;from flask_socketio import SocketIO&lt;/p&gt;

&lt;p&gt;app = Flask(&lt;strong&gt;name&lt;/strong&gt;)&lt;br&gt;
socketio = SocketIO(app)&lt;/p&gt;

&lt;p&gt;@app.route('/update_filters', methods=['POST'])&lt;br&gt;
def update_filters():&lt;br&gt;
    data = request.json&lt;br&gt;
    socketio.emit('update', data)&lt;br&gt;
    return {"message": "Filters updated!"}&lt;/p&gt;




&lt;p&gt;This report outlines a scalable and extensible solution for personalizing content filtering and ad blocking on YouTube. Let me know if you need additionally .&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>agentaichallenge</category>
      <category>ai</category>
      <category>machinelearning</category>
    </item>
    <item>
      <title>Grok sCore</title>
      <dc:creator>Maani K</dc:creator>
      <pubDate>Sun, 19 Jan 2025 17:46:23 +0000</pubDate>
      <link>https://forem.com/maani_k/grok-score-5gd7</link>
      <guid>https://forem.com/maani_k/grok-score-5gd7</guid>
      <description>&lt;p&gt;*This is a submission for the GitHub Copilot Challenge&lt;/p&gt;

&lt;p&gt;(&lt;a href="https://dev.to/challenges/github):"&gt;https://dev.to/challenges/github):&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;New Beginnings*&lt;/p&gt;

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

&lt;p&gt;Code that works for Ai like Grok&lt;/p&gt;

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

&lt;p&gt;Here's a very basic structure, not intended for actual implementation:&lt;/p&gt;

&lt;p&gt;import time&lt;br&gt;
from selenium import webdriver&lt;br&gt;
from selenium.webdriver.common.keys import Keys&lt;/p&gt;

&lt;p&gt;def automate_x():&lt;br&gt;
    # Initialize the web driver (you need to have ChromeDriver installed)&lt;br&gt;
    driver = webdriver.Chrome()&lt;br&gt;
    driver.get("x.com/login") # Navigate to X's login page&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Login to X - This part would involve filling in credentials, which is not secure to automate
# For demonstration:
# driver.find_element_by_id("username").send_keys("your_username")
# driver.find_element_by_id("password").send_keys("your_password")
# driver.find_element_by_xpath("//button[text()='Log in']").click()

# Post, like, or comment logic would go here
for day in range(30):
    for i in range(10): # Example: Post 10 times a day
        # Post something insightful or engaging
        # driver.find_element_by_xpath("//textarea[@placeholder='What's happening?']").send_keys("Insightful post about tech or space #Grok")
        # driver.find_element_by_xpath("//div[@data-testid='tweetButton']").click()

        # Like posts or comment - this would involve searching for relevant posts to interact with
        # time.sleep(300) # Wait between actions to mimic human behavior

    time.sleep(86400) # Wait for a day

driver.quit()
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;This code is a conceptual sketch and should not be used as-is for many reasons including security and ethical concerns.&lt;/p&gt;

&lt;h2&gt;
  
  
  Copilot Experience
&lt;/h2&gt;

&lt;p&gt;Copilot helped me finalize the codes throughout the development process, including prompts, edits, chat, autocomplete, model switcher, etc. &lt;/p&gt;

&lt;h2&gt;
  
  
  GitHub Models
&lt;/h2&gt;

</description>
      <category>devchallenge</category>
      <category>githubchallenge</category>
      <category>webdev</category>
      <category>ai</category>
    </item>
  </channel>
</rss>
