<?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: Paulo</title>
    <description>The latest articles on Forem by Paulo (@paulo_abbcba03b4df70572fc).</description>
    <link>https://forem.com/paulo_abbcba03b4df70572fc</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%2F3227005%2F6cbb5481-4729-4c79-9fe6-cd4ec2a7906a.jpg</url>
      <title>Forem: Paulo</title>
      <link>https://forem.com/paulo_abbcba03b4df70572fc</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/paulo_abbcba03b4df70572fc"/>
    <language>en</language>
    <item>
      <title>Mansão Maromba Distribution Radar</title>
      <dc:creator>Paulo</dc:creator>
      <pubDate>Thu, 12 Mar 2026 23:35:39 +0000</pubDate>
      <link>https://forem.com/paulo_abbcba03b4df70572fc/mansao-maromba-distribution-radar-342a</link>
      <guid>https://forem.com/paulo_abbcba03b4df70572fc/mansao-maromba-distribution-radar-342a</guid>
      <description>&lt;h2&gt;
  
  
  Overview
&lt;/h2&gt;

&lt;p&gt;The &lt;strong&gt;Mansão Maromba Distribution Radar&lt;/strong&gt; is an opinionated reference project that turns Notion into the source of truth for distribution mapping, prospecting, and messaging workflows — powered by Notion MCP, Visual Code, a mapping service, and WhatsApp bots.&lt;/p&gt;

&lt;p&gt;It is designed as a portfolio-grade repo you can fork, adapt to your own brand, or use as a template for agentic distribution operations.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Core idea:&lt;/strong&gt; Model everything in Notion (Mapa de Distribuição, Alvos de Prospecção, Backlog Radar Mansão Maromba), expose it via the official Notion MCP server, and orchestrate agents (schema/backlog, maps prospector, messaging assistant) from an MCP client.&lt;/p&gt;
&lt;/blockquote&gt;




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

&lt;p&gt;

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


&lt;/p&gt;




&lt;h2&gt;
  
  
  Links
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/PauloTuppy/mansao-maromba-distribution-radar" rel="noopener noreferrer"&gt;https://github.com/PauloTuppy/mansao-maromba-distribution-radar&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Live Notion Dashboard:&lt;/strong&gt; &lt;a href="https://deeply-nutria-27e.notion.site/Radar-de-Distribui-o-Mans-o-Maromba-a7db58ed8f3b4e5db7d7c1c1f70bb2cf" rel="noopener noreferrer"&gt;Radar de Distribuição Mansão Maromba&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Alternate View:&lt;/strong&gt; &lt;a href="https://hackatoon.notion.site/?v=31c0ecb3df6180bd981b000c6ae8c235" rel="noopener noreferrer"&gt;Distribution Radar Dashboard&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Notion AI Agents
&lt;/h2&gt;

&lt;p&gt;To automate and enhance distribution operations, the project uses specialized agents designed to interact with the Notion ecosystem:&lt;/p&gt;

&lt;h3&gt;
  
  
  🗺️ Mansão Maromba — Navigator
&lt;/h3&gt;

&lt;p&gt;The lead agent responsible for operating the Distribution Map as a complete prospecting and CRM system. It discovers new points of sale (PDVs) via Google Maps API/MCP, automatically enriches records, maintains the sales funnel, and generates weekly executive summaries with key KPIs.&lt;/p&gt;

&lt;h3&gt;
  
  
  🎨 Master UI Agent
&lt;/h3&gt;

&lt;p&gt;Focuses on user experience and data visualization. It transforms complex, data-heavy pages into minimalist, highly functional dashboards using custom Notion layouts, callouts, synced navigation, and curated database views.&lt;/p&gt;

&lt;h3&gt;
  
  
  📊 Amplitude Data Analyst
&lt;/h3&gt;

&lt;p&gt;Bridges the gap between product usage and CRM. It analyzes Amplitude data and creates visual product usage reports directly within Notion to help prioritize high-potential leads.&lt;/p&gt;

&lt;h3&gt;
  
  
  📧 Email Assistant
&lt;/h3&gt;

&lt;p&gt;Streamlines daily communication. During daily workflows, it integrates with all connected inboxes to ensure all incoming leads and responses are loaded, tracked, and ready for the next action.&lt;/p&gt;




&lt;h2&gt;
  
  
  High-Level Flows
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Distribution Map + Dashboard (Notion-centric)
&lt;/h3&gt;

&lt;p&gt;Notion databases model:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Current distribution presence by city/region and channel&lt;/li&gt;
&lt;li&gt;Prospect targets with geo and business metadata&lt;/li&gt;
&lt;li&gt;Backlog of experiments, campaigns, and ops tasks&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The Schema/Backlog/PRD agent runs inside Antigravity (or another MCP client) and:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Validates that the Notion schema matches the spec&lt;/li&gt;
&lt;li&gt;Creates/updates views and dashboards (funnels, regional overviews)&lt;/li&gt;
&lt;li&gt;Maintains a living PRD/backlog inside Notion pages&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2. Maps Prospecting Agent with MapOn.ai
&lt;/h3&gt;

&lt;p&gt;A specialized MapsProspector agent that integrates with MapOn.ai:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Pulls location data from interactive MapOn.ai maps&lt;/li&gt;
&lt;li&gt;Automatically identifies and filters bars and beverage establishments in Paraná&lt;/li&gt;
&lt;li&gt;Creates prospects in Notion with ready-to-use call scripts for Mansão Maromba drinks&lt;/li&gt;
&lt;li&gt;Filters out existing prospects to avoid duplicates&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  3. Messaging Assistant (WhatsApp Bot) — Future Integration
&lt;/h3&gt;

&lt;p&gt;The system is designed to integrate a WhatsApp Messaging Assistant that will:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Connect to WhatsApp Business API (via Twilio or Meta) to initiate contact with prospects&lt;/li&gt;
&lt;li&gt;Use AI to generate personalized messages based on prospect profiles stored in Notion&lt;/li&gt;
&lt;li&gt;Synchronize inbound replies back to Notion with LLM-based categorization&lt;/li&gt;
&lt;li&gt;Trigger follow-up sequences based on status changes in the Notion Kanban board&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Architecture Overview
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;             +-------------------------+
             |   MCP Client / Cockpit  |
             |  (Visual Code, CLI,…)   |
             +-----------+-------------+
                         |
                         | MCP protocol
                         v
              +------------------------+
              |  Notion MCP Server     |
              | (@notionhq/notion-mcp) |
              +----+--------------+----+
                   |              |
         Notion API|              |HTTP/Webhooks
                   v              v
        +----------------+   +-------------------+
        |  Notion DBs    |   | External Services |
        | - Mapa Dist.   |   | - MapOn.ai        |
        | - Alvos Pros.  |   | - WhatsApp API    |
        | - Backlog      |   +---------+---------+
        +--------+-------+             ^
                 ^                     |
                 |                     |
        +--------+----------+   +------+----------------+
        | Paraná Bars        |   | Messaging Assistant   |
        | Prospector         |   | (WhatsApp bot)        |
        | (MapOn.ai API)     |   +-----------------------+
        +-------------------+
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;JavaScript&lt;/strong&gt; — 51.9%&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;TypeScript&lt;/strong&gt; — 47.4%&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Python&lt;/strong&gt; — 0.7%&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;License:&lt;/strong&gt; MIT&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Getting Started
&lt;/h2&gt;

&lt;p&gt;Fork the repo, plug in your own API keys (Notion, Google Maps, WhatsApp), and adapt the agent prompts to your brand. This repo ships prompts, config templates, and code skeletons — not production-ready bots.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/PauloTuppy/mansao-maromba-distribution-radar" rel="noopener noreferrer"&gt;https://github.com/PauloTuppy/mansao-maromba-distribution-radar&lt;/a&gt;&lt;/p&gt;

</description>
      <category>notion</category>
      <category>ai</category>
      <category>whatsapp</category>
      <category>opensource</category>
    </item>
    <item>
      <title>The Covenant Guardian</title>
      <dc:creator>Paulo</dc:creator>
      <pubDate>Fri, 12 Dec 2025 17:46:34 +0000</pubDate>
      <link>https://forem.com/paulo_abbcba03b4df70572fc/the-covenant-guardian-4547</link>
      <guid>https://forem.com/paulo_abbcba03b4df70572fc/the-covenant-guardian-4547</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/xano-2025-11-20"&gt;Xano AI-Powered Backend Challenge&lt;/a&gt;: Production-Ready Public API&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;I built the &lt;strong&gt;Covenant Guardian Public API&lt;/strong&gt;, an AI-powered covenant monitoring backend for financial institutions that exposes structured data about banks, borrowers, contracts, covenants, alerts, and adverse events. The goal is to turn the internal covenant engine into a &lt;strong&gt;production-ready public API&lt;/strong&gt; that other teams can plug into to build risk dashboards, monitoring tools, and automated workflows without managing their own backend or database.&lt;/p&gt;

&lt;p&gt;The same Xano backend powers a React + TypeScript frontend deployed at [&lt;a href="https://illustrious-kelpie-c65700.netlify.app" rel="noopener noreferrer"&gt;&lt;strong&gt;https://illustrious-kelpie-c65700.netlify.app&lt;/strong&gt;&lt;/a&gt;](&lt;a href="https://illustrious-kelpie-c65700.netlify.app" rel="noopener noreferrer"&gt;https://illustrious-kelpie-c65700.netlify.app&lt;/a&gt;), which serves as a live demo and reference client for consuming the API. The full project code (frontend + API integration + docs) is available on GitHub in the &lt;strong&gt;Covenant Guardian&lt;/strong&gt; repository.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Demo: &lt;a href="https://illustrious-kelpie-c65700.netlify.app" rel="noopener noreferrer"&gt;https://illustrious-kelpie-c65700.netlify.app&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;GitHub: &lt;a href="https://github.com/seu-usuario/covenant-guardian" rel="noopener noreferrer"&gt;https://github.com/seu-usuario/covenant-guardian&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  API Documentation
&lt;/h2&gt;

&lt;p&gt;The backend is implemented on &lt;strong&gt;Xano&lt;/strong&gt; with a managed &lt;strong&gt;PostgreSQL&lt;/strong&gt; database and exposed as a versioned REST API suitable for real-world consumption by third-party apps. The API is organized into resource groups such as &lt;code&gt;/banks&lt;/code&gt;, &lt;code&gt;/borrowers&lt;/code&gt;, &lt;code&gt;/contracts&lt;/code&gt;, &lt;code&gt;/covenants&lt;/code&gt;, &lt;code&gt;/alerts&lt;/code&gt;, and &lt;code&gt;/adverse-events&lt;/code&gt;, under a base similar to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;https://&amp;lt;workspace-id&amp;gt;.xano.io/api:v1/&lt;/code&gt; – production
&lt;/li&gt;
&lt;li&gt;`https://-staging.xano.io/api&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>devchallenge</category>
      <category>xanochallenge</category>
      <category>api</category>
      <category>backend</category>
    </item>
    <item>
      <title>ConectaBairro: AI-Powered Cross-Platform Community App for Brazilian Social Impact</title>
      <dc:creator>Paulo</dc:creator>
      <pubDate>Mon, 01 Dec 2025 18:01:37 +0000</pubDate>
      <link>https://forem.com/paulo_abbcba03b4df70572fc/conectabairro-ai-powered-cross-platform-community-app-for-brazilian-social-impact-191c</link>
      <guid>https://forem.com/paulo_abbcba03b4df70572fc/conectabairro-ai-powered-cross-platform-community-app-for-brazilian-social-impact-191c</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/unoplatform"&gt;AI Challenge for Cross-Platform Apps&lt;/a&gt; - WOW Factor&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;ConectaBairro is a community-driven cross-platform app connecting Brazilian citizens to local resources, government programs, free courses, and social opportunities. Built with Uno Platform (.NET 10), it runs seamlessly on Windows, Android, iOS, and WebAssembly from a single codebase.&lt;/p&gt;

&lt;p&gt;The app tackles social inclusion by helping users discover nearby public services (health, education, social assistance), enroll in free vocational programs (SENAI, SENAC, PRONATEC), participate in community forums, and track engagement through a gamification system. Behind the scenes, a Node.js + Express backend with MongoDB handles authentication, opportunities catalog, messaging, notifications, and integrates Google Gemini for intelligent assistance.&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;Repository:&lt;/strong&gt; &lt;a href="https://github.com/PauloTuppy/ConectaBairro" rel="noopener noreferrer"&gt;https://github.com/PauloTuppy/ConectaBairro&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Video Demo:&lt;/strong&gt; &lt;a href="https://youtu.be/_EnWugs6Fz8" rel="noopener noreferrer"&gt;https://youtu.be/_EnWugs6Fz8&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In the video walkthrough, you'll see:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Interactive map showing nearby public services and opportunities&lt;/li&gt;
&lt;li&gt;Course discovery and enrollment workflow (SENAI/SENAC/PRONATEC programs)&lt;/li&gt;
&lt;li&gt;Community forum for discussing local issues and sharing knowledge&lt;/li&gt;
&lt;li&gt;AI-powered chat assistant answering questions about app features and government programs&lt;/li&gt;
&lt;li&gt;XP and badges system rewarding user engagement&lt;/li&gt;
&lt;li&gt;Live backend API integration running on &lt;a href="http://localhost:3000" rel="noopener noreferrer"&gt;http://localhost:3000&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;To test locally: clone the repository, run .NET 10 SDK with dotnet run -f net10.0-desktop (or target platform), and start backend with cd backend &amp;amp;&amp;amp; npm install &amp;amp;&amp;amp; npm start.&lt;/p&gt;

&lt;h2&gt;
  
  
  Cross-Platform Magic
&lt;/h2&gt;

&lt;p&gt;ConectaBairro leverages Uno Platform to share a unified codebase across Windows Desktop, Android, iOS, and WebAssembly. All XAML pages, C# ViewModels, and business logic remain consistent across platforms, with platform-specific adaptations isolated in the Platforms/ folder.&lt;/p&gt;

&lt;p&gt;This approach meant:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Single design system applied everywhere (colors, typography, components)&lt;/li&gt;
&lt;li&gt;Shared business logic for auth, data, and API integration&lt;/li&gt;
&lt;li&gt;Reduced maintenance overhead compared to native apps&lt;/li&gt;
&lt;li&gt;Web version via WebAssembly for accessibility (no store installation required)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The Node.js backend is consumed uniformly across all platforms through REST API endpoints, ensuring seamless sync between desktop, mobile, and web users.&lt;/p&gt;

&lt;h2&gt;
  
  
  Interactive Features
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Interactive Map&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Google Maps integration showing nearby schools, hospitals, and CRAS centers&lt;/li&gt;
&lt;li&gt;Tap a service to view details and contact information&lt;/li&gt;
&lt;li&gt;Filter by category (health, education, social assistance)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Courses &amp;amp; Opportunities&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Browse government vocational courses (SENAI, SENAC, PRONATEC)&lt;/li&gt;
&lt;li&gt;View course details, prerequisites, and enrollment links&lt;/li&gt;
&lt;li&gt;Tap "Enroll" to record participation and earn XP&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Community Forum&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Create discussion topics around local issues&lt;/li&gt;
&lt;li&gt;Reply to threads and build community knowledge&lt;/li&gt;
&lt;li&gt;Real-time notifications for new responses&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Gamification&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Earn XP for forum posts, course enrollments, and app interactions&lt;/li&gt;
&lt;li&gt;Unlock badges as milestones (e.g., "First Post," "Certified Course Completer")&lt;/li&gt;
&lt;li&gt;Leaderboard showing top community contributors&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Live Notifications&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Firebase Admin SDK sends push alerts for new forum threads, opportunities, and community events&lt;/li&gt;
&lt;li&gt;Customizable notification preferences by topic&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The Wow Factor
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;AI-Powered Chatbot:&lt;/strong&gt;&lt;br&gt;
The app includes an intelligent assistant built on Google Gemini that understands app context and Brazilian social programs. Example queries:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;"How do I find free courses near me?"&lt;/li&gt;
&lt;li&gt;"What are the requirements for SENAI enrollment?"&lt;/li&gt;
&lt;li&gt;"How do I apply for social assistance programs?"&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The Gemini API is integrated into the backend endpoint /api/assistant/ask, which returns context-aware responses with hyperlinks to relevant resources within the app.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Social Impact at Scale:&lt;/strong&gt;&lt;br&gt;
ConectaBairro bridges the digital divide for underserved Brazilian communities by:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Centralizing fragmented information (no more jumping between 10 different government websites)&lt;/li&gt;
&lt;li&gt;Gamifying civic engagement (XP/badges incentivize participation and learning)&lt;/li&gt;
&lt;li&gt;Building peer-to-peer support (community forum allows neighbors to help neighbors)&lt;/li&gt;
&lt;li&gt;Multi-platform accessibility (desktop for public libraries, mobile for on-the-go, web for shared devices)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Technical Excellence:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Single codebase powering 4 platforms (desktop, Android, iOS, browser)&lt;/li&gt;
&lt;li&gt;Real-time API with MongoDB Atlas cloud backend&lt;/li&gt;
&lt;li&gt;JWT-based secure authentication&lt;/li&gt;
&lt;li&gt;Firebase integration for push notifications&lt;/li&gt;
&lt;li&gt;Google Gemini AI for intelligent assistance&lt;/li&gt;
&lt;li&gt;Responsive XAML UI that adapts to any screen size&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Made with love for Brazilian communities. Code at &lt;a href="https://github.com/PauloTuppy/ConectaBairro" rel="noopener noreferrer"&gt;https://github.com/PauloTuppy/ConectaBairro&lt;/a&gt;&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>unoplatformchallenge</category>
      <category>dotnet</category>
      <category>crossplatform</category>
    </item>
    <item>
      <title>🥊 MMA Coach Assistant - AI-Powered Fight Analysis</title>
      <dc:creator>Paulo</dc:creator>
      <pubDate>Thu, 11 Sep 2025 22:05:15 +0000</pubDate>
      <link>https://forem.com/paulo_abbcba03b4df70572fc/mma-coach-assistant-ai-powered-fight-analysis-124j</link>
      <guid>https://forem.com/paulo_abbcba03b4df70572fc/mma-coach-assistant-ai-powered-fight-analysis-124j</guid>
      <description>&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/5v7k-K_Ivrg"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

&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;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2FPauloTuppy%2FMMA-Coach-Assistant%2Fraw%2Fmaster%2Fpublic%2Fcover-image.png" 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%2Fgithub.com%2FPauloTuppy%2FMMA-Coach-Assistant%2Fraw%2Fmaster%2Fpublic%2Fcover-image.png" alt="MMA Coach Assistant - Cover Image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&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%2Fzd2x65i159f2fsfi7vzo.jpeg" alt=" "&gt;
&lt;/h2&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%2Ff4vyxacgq8dxip9kqudd.jpeg" 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%2Ff4vyxacgq8dxip9kqudd.jpeg" alt=" "&gt;&lt;/a&gt;&lt;/p&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%2Fb382wdmqmvhqgy56oy4f.jpeg" 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%2Fb382wdmqmvhqgy56oy4f.jpeg" alt=" "&gt;&lt;/a&gt;&lt;/p&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%2Fy6djz0krcxdv2ycnzgza.jpeg" 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%2Fy6djz0krcxdv2ycnzgza.jpeg" alt=" "&gt;&lt;/a&gt;&lt;/p&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%2Fdop9wvh6o9sgk3j336xl.jpeg" 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%2Fdop9wvh6o9sgk3j336xl.jpeg" alt=" "&gt;&lt;/a&gt;&lt;/p&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%2F99bclcy0didmu0ljj7x0.jpeg" 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%2F99bclcy0didmu0ljj7x0.jpeg" alt=" "&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;I built the &lt;strong&gt;MMA Coach Assistant&lt;/strong&gt; — an AI-powered web application that transforms raw fight footage into actionable coaching intelligence. This tool solves a critical problem in combat sports: &lt;strong&gt;the lack of affordable, instant, and objective fight analysis for fighters, coaches, and academies&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Instead of spending hours manually reviewing tapes or hiring expensive analysts, users simply upload a video, and within seconds, receive:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Quantitative performance metrics (strike accuracy, takedown success, control time)&lt;/li&gt;
&lt;li&gt;Qualitative tactical insights (“drops left hand after right cross”)&lt;/li&gt;
&lt;li&gt;Head-to-head fighter comparisons&lt;/li&gt;
&lt;li&gt;Personalized 7-day training plans&lt;/li&gt;
&lt;li&gt;Integrated e-commerce for official fighter merch&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This isn’t just a video analyzer — it’s a &lt;strong&gt;complete digital coaching platform&lt;/strong&gt; that democratizes access to elite-level fight breakdowns using AI.&lt;/p&gt;




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

&lt;p&gt;🔗 &lt;strong&gt;Live App (Deployed on Cloud Run):&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
👉 &lt;a href="https://mma-coach-assistant-78710804281.us-west1.run.app/#/coach" rel="noopener noreferrer"&gt;https://mma-coach-assistant-78710804281.us-west1.run.app/#/coach&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;🎬 &lt;strong&gt;Video Walkthrough (YouTube):&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
▶️   &lt;iframe src="https://www.youtube.com/embed/5v7k-K_Ivrg"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;📁 &lt;strong&gt;GitHub Repository (Open Source MIT):&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
🐙 &lt;a href="https://github.com/PauloTuppy/MMA-Coach-Assistant" rel="noopener noreferrer"&gt;https://github.com/PauloTuppy/MMA-Coach-Assistant&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;(Note: Since I used Google Gemini 2.5 Flash for video understanding — which remains available — the live app is fully functional during judging.)&lt;/em&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  🧠 How I Used Google AI Studio
&lt;/h2&gt;

&lt;p&gt;I leveraged &lt;strong&gt;Google AI Studio&lt;/strong&gt; as the core AI engine for all video analysis and insight generation. The entire multimodal pipeline was prototyped, tested, and optimized within Google AI Studio’s intuitive interface before being integrated into the production app via API.&lt;/p&gt;

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

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Prompt Engineering&lt;/strong&gt;: Designed structured prompts to extract specific metrics and insights from fight videos (e.g., “Identify all jabs, crosses, takedowns, and positional control moments. Calculate strike accuracy and control time.”).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Model Selection&lt;/strong&gt;: Chose &lt;strong&gt;Gemini 2.5 Flash&lt;/strong&gt; for its speed, cost-efficiency, and strong multimodal video understanding — perfect for real-time fight analysis.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;API Integration&lt;/strong&gt;: Connected the Google AI Studio API to my React frontend and Node.js backend to send video files (or URLs) and receive structured JSON responses containing metrics, insights, and summaries.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Testing &amp;amp; Iteration&lt;/strong&gt;: Used Google AI Studio’s playground to rapidly test prompts against real fight clips, refining output quality and consistency.&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  🎯 Multimodal Features
&lt;/h2&gt;

&lt;p&gt;I implemented &lt;strong&gt;Gemini 2.5 Flash’s video understanding capabilities&lt;/strong&gt; to create a truly multimodal experience:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. &lt;strong&gt;Video → Metrics &amp;amp; Insights&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;The AI watches the uploaded fight video and extracts &lt;strong&gt;quantitative data&lt;/strong&gt; (e.g., 88% strike accuracy, 3 successful takedowns).&lt;/li&gt;
&lt;li&gt;It then generates &lt;strong&gt;qualitative coaching feedback&lt;/strong&gt; (e.g., “Struggles to get up from bottom position,” “Excellent jab for distance control”).&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;✅ &lt;strong&gt;Why it enhances UX&lt;/strong&gt;: Turns passive video watching into active, data-driven coaching — saving hours and removing human bias.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  2. &lt;strong&gt;Video → Fighter Comparison&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;By analyzing both fighters’ movements, the AI produces a &lt;strong&gt;side-by-side tactical breakdown&lt;/strong&gt;, highlighting strengths, weaknesses, and keys to victory.&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;✅ &lt;strong&gt;Why it enhances UX&lt;/strong&gt;: Enables coaches to prepare game plans by understanding opponent tendencies — all from a single video.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  3. &lt;strong&gt;Video → Personalized Training Plan&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Based on the identified weaknesses (e.g., poor get-up defense), the AI &lt;strong&gt;generates a customized 7-day training schedule&lt;/strong&gt; with specific drills and focus areas.&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;✅ &lt;strong&gt;Why it enhances UX&lt;/strong&gt;: Transforms analysis into immediate, actionable improvement — closing the loop between data and development.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  4. &lt;strong&gt;Video → Narrative Fight Summary&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;The AI synthesizes the entire bout into a &lt;strong&gt;coherent, contextual summary&lt;/strong&gt; (e.g., “Classic striker vs. grappler matchup…”).&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;✅ &lt;strong&gt;Why it enhances UX&lt;/strong&gt;: Helps users quickly grasp the strategic narrative of the fight, not just isolated stats.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  💡 Innovation &amp;amp; Impact
&lt;/h2&gt;

&lt;p&gt;This applet goes beyond a simple demo — it solves a real-world problem with measurable impact:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;For Fighters&lt;/strong&gt;: Faster feedback, targeted training, accelerated growth.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;For Coaches&lt;/strong&gt;: Objective data, strategic clarity, time savings.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;For Gyms&lt;/strong&gt;: Affordable analysis tool, improved coaching quality, merchandise revenue.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;By combining &lt;strong&gt;multimodal video understanding&lt;/strong&gt; with &lt;strong&gt;personalized output generation&lt;/strong&gt;, the MMA Coach Assistant showcases the true power of Gemini: not just to see, but to understand, interpret, and advise.&lt;/p&gt;




&lt;h2&gt;
  
  
  👥 Team Submission
&lt;/h2&gt;

&lt;p&gt;Solo submission by &lt;strong&gt;Paulo Tuppy&lt;/strong&gt;.&lt;/p&gt;




&lt;p&gt;Built with ❤️ for fighters, by a developer who believes AI should empower, not replace, human coaching.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>googleaichallenge</category>
      <category>ai</category>
      <category>gemini</category>
    </item>
    <item>
      <title>MMA Coach Assistant</title>
      <dc:creator>Paulo</dc:creator>
      <pubDate>Mon, 08 Sep 2025 16:32:28 +0000</pubDate>
      <link>https://forem.com/paulo_abbcba03b4df70572fc/mma-coach-assistant-40c0</link>
      <guid>https://forem.com/paulo_abbcba03b4df70572fc/mma-coach-assistant-40c0</guid>
      <description>&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="gh"&gt;# MMA Coach Assistant - Powered by Google Gemini&lt;/span&gt;

This is a submission for the &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;Google AI Studio Multimodal Challenge&lt;/span&gt;&lt;span class="p"&gt;](&lt;/span&gt;&lt;span class="sx"&gt;https://dev.to/challenges/google-ai-studio-2025-09-03&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="gu"&gt;## What I Built&lt;/span&gt;

The &lt;span class="gs"&gt;**MMA Coach Assistant**&lt;/span&gt; is a cutting-edge web application designed to revolutionize fight preparation for coaches, analysts, and fighters. It leverages the &lt;span class="gs"&gt;**multimodal capabilities of Google’s Gemini API**&lt;/span&gt; to analyze actual fight video footage and generate a comprehensive, AI-powered game plan.

The app solves a critical problem in combat sports: the time-consuming and subjective nature of traditional fight analysis. Instead of manually reviewing hours of footage, coaches can now upload short clips of their fighter and opponent, and within minutes receive a structured, data-driven report that includes:
&lt;span class="p"&gt;
-&lt;/span&gt; A detailed comparison of both fighters’ styles, strengths, and weaknesses.
&lt;span class="p"&gt;-&lt;/span&gt; A head-to-head prediction with confidence scoring.
&lt;span class="p"&gt;-&lt;/span&gt; A personalized, actionable game plan with strategy, tactics, and training drills.

Built with &lt;span class="gs"&gt;**React, Tailwind CSS, and the Gemini 1.5 Flash model**&lt;/span&gt;, this tool transforms raw video into strategic insight—making elite-level analysis accessible to all levels of MMA practitioners.
&lt;span class="p"&gt;
---
&lt;/span&gt;
&lt;span class="gu"&gt;## Demo&lt;/span&gt;

🎥 &lt;span class="gs"&gt;**Watch the Full Demo on YouTube**&lt;/span&gt;:  
&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;![MMA Coach Assistant Demo&lt;/span&gt;&lt;span class="p"&gt;](&lt;/span&gt;&lt;span class="sx"&gt;https://img.youtube.com/vi/Q-I-Oo1Ii1c/hqdefault.jpg&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;](https://youtu.be/Q-I-Oo1Ii1c)  
👉 &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;Watch on YouTube&lt;/span&gt;&lt;span class="p"&gt;](&lt;/span&gt;&lt;span class="sx"&gt;https://youtu.be/Q-I-Oo1Ii1c&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;  
&lt;span class="ge"&gt;*Full walkthrough showing: fight details input, dual video upload, AI analysis process, and complete game plan generation.*&lt;/span&gt;

🛠️ &lt;span class="gs"&gt;**Explore the Source Code on GitHub**&lt;/span&gt;:  
&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;![GitHub Repository&lt;/span&gt;&lt;span class="p"&gt;](&lt;/span&gt;&lt;span class="sx"&gt;https://img.shields.io/badge/GitHub-Repository-blue?logo=github&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;](https://github.com/PauloTuppy/MMA-Coach-Assistant)  
🔗 &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;https://github.com/PauloTuppy/MMA-Coach-Assistant&lt;/span&gt;&lt;span class="p"&gt;](&lt;/span&gt;&lt;span class="sx"&gt;https://github.com/PauloTuppy/MMA-Coach-Assistant&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;  
&lt;span class="ge"&gt;*Includes full frontend code, React components, Gemini integration logic, and setup instructions.*&lt;/span&gt;

📸 &lt;span class="gs"&gt;**Screenshots**&lt;/span&gt;:&lt;span class="sb"&gt;


&lt;/span&gt;&lt;span class="p"&gt;![&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="p"&gt;](&lt;/span&gt;&lt;span class="sx"&gt;https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2q3kspgvppdinvziccbj.jpeg&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="p"&gt;![&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="p"&gt;](&lt;/span&gt;&lt;span class="sx"&gt;https://dev-to-uploads.s3.amazonaws.com/uploads/articles/n0ze5zs9gfarte920mep.jpeg&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="p"&gt;![&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="p"&gt;](&lt;/span&gt;&lt;span class="sx"&gt;https://dev-to-uploads.s3.amazonaws.com/uploads/articles/i73o10vq5bi05yq21r77.jpeg&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="gh"&gt;![ ](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/win8yz4ktvhivutcses3.jpeg)
---
&lt;/span&gt;
&lt;span class="p"&gt;![&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="p"&gt;](&lt;/span&gt;&lt;span class="sx"&gt;https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vnvbw0448ymo1b948b2h.jpeg&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="gu"&gt;## How I Used Google AI Studio&lt;/span&gt;

&lt;span class="p"&gt;![&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="p"&gt;](&lt;/span&gt;&lt;span class="sx"&gt;https://dev-to-uploads.s3.amazonaws.com/uploads/articles/66s1y63podnz3slju0mc.jpeg&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

I used &lt;span class="gs"&gt;**Google AI Studio**&lt;/span&gt; as the foundation for developing and testing the core AI logic of this application. Specifically:
&lt;span class="p"&gt;
-&lt;/span&gt; I designed and iterated on &lt;span class="gs"&gt;**multimodal prompts**&lt;/span&gt; that instruct Gemini to analyze fight videos and extract meaningful behavioral patterns (e.g., stance, movement, striking frequency, defensive flaws).
&lt;span class="p"&gt;-&lt;/span&gt; I tested various &lt;span class="gs"&gt;**Gemini models**&lt;/span&gt; and selected &lt;span class="gs"&gt;**Gemini 1.5 Flash**&lt;/span&gt; for its optimal balance of speed, cost, and multimodal understanding—perfect for processing video inputs efficiently.
&lt;span class="p"&gt;-&lt;/span&gt; I leveraged &lt;span class="gs"&gt;**JSON mode**&lt;/span&gt; in the Gemini API to ensure structured, predictable outputs, enabling seamless integration with the frontend React components.
&lt;span class="p"&gt;-&lt;/span&gt; I used AI Studio’s chat interface to simulate edge cases (e.g., poor video quality, unclear angles) and refine the prompt engineering to improve robustness.

AI Studio allowed me to rapidly prototype the AI behavior before integrating it into the full-stack app, significantly accelerating development.
&lt;span class="p"&gt;
---
&lt;/span&gt;
&lt;span class="gu"&gt;## Multimodal Features&lt;/span&gt;

The key innovation of this app lies in its &lt;span class="gs"&gt;**multimodal analysis**&lt;/span&gt;—the ability to process &lt;span class="gs"&gt;**video + text + context**&lt;/span&gt; together:

&lt;span class="gu"&gt;### 🎥 Video Analysis (Visual Input)&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; The app accepts &lt;span class="gs"&gt;**MP4/MOV video uploads**&lt;/span&gt; (up to 50MB) of real fight footage.
&lt;span class="p"&gt;-&lt;/span&gt; Using Gemini’s multimodal capabilities, it analyzes &lt;span class="gs"&gt;**multiple frames per second**&lt;/span&gt; to detect:
&lt;span class="p"&gt;  -&lt;/span&gt; Fighter stances (orthodox, southpaw)
&lt;span class="p"&gt;  -&lt;/span&gt; Striking tendencies (lead hand usage, kicking frequency)
&lt;span class="p"&gt;  -&lt;/span&gt; Defensive habits (hand positioning, head movement)
&lt;span class="p"&gt;  -&lt;/span&gt; Movement patterns (forward pressure, lateral circling)

&lt;span class="gu"&gt;### 📝 Contextual Text Input&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; Coaches provide &lt;span class="gs"&gt;**fighter names and weight class**&lt;/span&gt;, which Gemini uses to contextualize the analysis (e.g., adjusting expectations for cardio in Flyweight vs Heavyweight bouts).
&lt;span class="p"&gt;-&lt;/span&gt; This text context is fused with visual data to produce a more accurate and relevant report.

&lt;span class="gu"&gt;### 🧠 Why This Enhances User Experience&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; &lt;span class="gs"&gt;**From Subjective to Objective**&lt;/span&gt;: Reduces human bias in scouting opponents.
&lt;span class="p"&gt;-&lt;/span&gt; &lt;span class="gs"&gt;**Time Efficiency**&lt;/span&gt;: Turns hours of film study into a 2-minute process.
&lt;span class="p"&gt;-&lt;/span&gt; &lt;span class="gs"&gt;**Actionable Output**&lt;/span&gt;: Converts visual observations into a structured game plan with drills.
&lt;span class="p"&gt;-&lt;/span&gt; &lt;span class="gs"&gt;**Accessibility**&lt;/span&gt;: Brings professional-level analytics to grassroots coaches and gyms.

By combining video and text inputs, the app creates a &lt;span class="gs"&gt;**true AI co-pilot for fight strategy**&lt;/span&gt;, demonstrating the transformative potential of multimodal AI in sports performance.
&lt;span class="p"&gt;
---
&lt;/span&gt;
🛠️ &lt;span class="gs"&gt;**Tech Stack**&lt;/span&gt;:
&lt;span class="p"&gt;-&lt;/span&gt; Frontend: React + TypeScript + Vite
&lt;span class="p"&gt;-&lt;/span&gt; Styling: Tailwind CSS
&lt;span class="p"&gt;-&lt;/span&gt; AI Backend: Google Gemini API (&lt;span class="sb"&gt;`@google/generative-ai`&lt;/span&gt;)
&lt;span class="p"&gt;-&lt;/span&gt; Deployment: Vercel

📁 &lt;span class="gs"&gt;**Source Code**&lt;/span&gt;: &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;GitHub Repository&lt;/span&gt;&lt;span class="p"&gt;](&lt;/span&gt;&lt;span class="sx"&gt;https://github.com/PauloTuppy/MMA-Coach-Assistant&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

👤 &lt;span class="gs"&gt;**Developer**&lt;/span&gt;: PauloTuppy (Individual Submission)
&lt;span class="p"&gt;
---
&lt;/span&gt;
🌟 Thank you for reviewing my submission! This project showcases how &lt;span class="gs"&gt;**multimodal AI can empower real-world decision-making**&lt;/span&gt;—one fight at a time.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>devchallenge</category>
      <category>googleaichallenge</category>
      <category>ai</category>
      <category>gemini</category>
    </item>
    <item>
      <title>AI AI Sales Agent with Real-Time Data IntegrationSales Agent with Real-Time Data Integration</title>
      <dc:creator>Paulo</dc:creator>
      <pubDate>Thu, 28 Aug 2025 20:53:28 +0000</pubDate>
      <link>https://forem.com/paulo_abbcba03b4df70572fc/ai-ai-sales-agent-with-real-time-data-integrationsales-agent-with-real-time-data-integration-154a</link>
      <guid>https://forem.com/paulo_abbcba03b4df70572fc/ai-ai-sales-agent-with-real-time-data-integrationsales-agent-with-real-time-data-integration-154a</guid>
      <description>&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="gh"&gt;# AI Sales Agent with Real-Time Data Integration  &lt;/span&gt;
&lt;span class="ge"&gt;_Submission for the AI Agents Challenge powered by n8n and Bright Data_&lt;/span&gt;

&lt;span class="gu"&gt;## What I Built&lt;/span&gt;
An AI Sales Agent that marries n8n’s low-code automation with &lt;span class="gs"&gt;**Bright Data’s real-time web intelligence**&lt;/span&gt; to solve one of B2B’s biggest pains: &lt;span class="gs"&gt;**hyper-personalized, data-driven sales outreach that is always up-to-date**&lt;/span&gt;.

&lt;span class="gu"&gt;### Key Capabilities&lt;/span&gt;
| Feature | Benefit |
|---|---|
| &lt;span class="gs"&gt;**Natural-language query input**&lt;/span&gt; | Users simply ask “Tell me about Acme Corp”. |
| &lt;span class="gs"&gt;**Real-time company research**&lt;/span&gt; | Scrapes live web + LinkedIn via Bright Data. |
| &lt;span class="gs"&gt;**AI email generation**&lt;/span&gt; | Google Gemini crafts “I’ll show you how to fix X” copy with a &lt;span class="gs"&gt;**relevant MediaMarkt offer**&lt;/span&gt;. |
| &lt;span class="gs"&gt;**Daily lead enrichment**&lt;/span&gt; | Cron-triggered workflow re-scores and re-emails every morning. |
| &lt;span class="gs"&gt;**Live dashboard**&lt;/span&gt; | Webhook-driven front-end to monitor KPIs in real time. |

&lt;span class="gu"&gt;### Demo Links&lt;/span&gt;
| Asset | URL |
|---|---|
| &lt;span class="gs"&gt;**Video Demo**&lt;/span&gt; | &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;youtu.be/H9ITJmg5_Hk&lt;/span&gt;&lt;span class="p"&gt;](&lt;/span&gt;&lt;span class="sx"&gt;https://youtu.be/H9ITJmg5_Hk&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; |
| &lt;span class="gs"&gt;**Agent Interface**&lt;/span&gt; | &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;brightdata.app.n8n.cloud/webhook/agent&lt;/span&gt;&lt;span class="p"&gt;](&lt;/span&gt;&lt;span class="sx"&gt;https://brightdata.app.n8n.cloud/webhook/agent&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; |
| &lt;span class="gs"&gt;**Dashboard**&lt;/span&gt; | &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;brightdata.app.n8n.cloud/webhook/dashboard&lt;/span&gt;&lt;span class="p"&gt;](&lt;/span&gt;&lt;span class="sx"&gt;https://brightdata.app.n8n.cloud/webhook/dashboard&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; |
| &lt;span class="gs"&gt;**Workflow JSON**&lt;/span&gt; | &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;GitHub Gist&lt;/span&gt;&lt;span class="p"&gt;](&lt;/span&gt;&lt;span class="sx"&gt;https://gist.github.com/PauloTuppy/55afad076d2f0cdbfe7eae3fe9867438&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; |
&lt;span class="p"&gt;
---
&lt;/span&gt;
&lt;span class="gu"&gt;## Technical Deep-Dive&lt;/span&gt;
&lt;span class="gu"&gt;### Architecture Overview&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;br&gt;
mermaid&lt;br&gt;
graph TD&lt;br&gt;
    User(Web Interface) --&amp;gt;|POST query| Webhook&lt;br&gt;
    Webhook --&amp;gt; Extract[Regex Extract Company]&lt;br&gt;
    Extract --&amp;gt; BD_Bright(Bright Data nodes)&lt;br&gt;
    BD_Bright --&amp;gt; Company(Company Intel)&lt;br&gt;
    BD_Bright --&amp;gt; LinkedIn(LinkedIn Jobs)&lt;br&gt;
    BD_Bright --&amp;gt; Products(MediaMarkt Products)&lt;br&gt;
    Company &amp;amp; LinkedIn &amp;amp; Products --&amp;gt; Gemini(Google Gemini)&lt;br&gt;
    Gemini --&amp;gt; Sheets(Google Sheets)&lt;br&gt;
    Sheets --&amp;gt; Dashboard&lt;br&gt;
    Cron --&amp;gt; Sheets[Daily Re-enrichment]&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
### Model Choice
| Model | Reason |
|---|---|
| **Google Gemini 1.5 Flash** | Fast, stateless, excellent at short persuasive copy. |

### Memory &amp;amp; Context
- **Session IDs** generated per user.  
- **Conversation history** appended to each prompt.  
- **Google Sheets** = long-term memory &amp;amp; CRM.

### Daily Automation
- **Cron node** fires at 09:00 UTC → re-scrapes → re-scores → re-emails.

---

## Bright Data Verified Nodes in Action
| Task | Dataset / Node | Value |
|---|---|---|
| **Company Intel** | Bright Data Web Scraper | Live profile, news, competitors. |
| **Job Insights** | LinkedIn Jobs Dataset | Growth signals &amp;amp; pain points from postings. |
| **Product Mapping** | MediaMarkt.de Dataset | Relevant offers tied to detected pain. |
| **Lead Enrichment** | Same nodes | Fresh data every 24 h. |

&amp;gt; **Design Decision**: Dropped the complex MCP SSE stream for **direct verified-node calls**—far more stable and debuggable.

---

## Journey &amp;amp; Lessons Learned
### Phase 1 – MCP SSE Struggles
- **Problem**: Auth failures &amp;amp; streaming complexity.  
- **Pivot**: Direct Bright Data nodes ➜ 10× more reliable.

### Phase 2 – Data Flow Refactoring
- **Challenge**: Passing context between nodes.  
- **Fix**: Unified JSON schema + explicit variable mapping.

### Phase 3 – Frontend &amp;amp; Response
- **Bug**: “Workflow started” instead of full response.  
- **Solution**: Re-wired webhook **Respond** node to return final Gemini output.

### Key Takeaways
1. **Simplicity &amp;gt; Complexity** – direct integrations beat fancy protocols.  
2. **Real-time data changes everything** – static AI feels dated the moment context expires.  
3. **n8n + Bright Data** = production-grade AI agents without writing backend services.

---

&amp;gt; From fragile prototype to **production-ready sales engine** in one week—proving the future of AI agents is **real-world, real-time, and no-code friendly**.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>devchallenge</category>
      <category>n8nbrightdatachallenge</category>
      <category>ai</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Retail-GPT: Hyper-Personalized Offer Engine</title>
      <dc:creator>Paulo</dc:creator>
      <pubDate>Mon, 28 Jul 2025 16:43:30 +0000</pubDate>
      <link>https://forem.com/paulo_abbcba03b4df70572fc/retail-gpt-hyper-personalized-offer-engine-44f4</link>
      <guid>https://forem.com/paulo_abbcba03b4df70572fc/retail-gpt-hyper-personalized-offer-engine-44f4</guid>
      <description>&lt;p&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 Innovator&lt;/p&gt;

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

&lt;p&gt;&lt;a href="https://youtu.be/-yOneHOhbJY" rel="noopener noreferrer"&gt;https://youtu.be/-yOneHOhbJY&lt;/a&gt; &lt;/p&gt;

&lt;h1&gt;
  
  
  🏆 Redis AI Challenge 2025 - Final Submission
&lt;/h1&gt;

&lt;h2&gt;
  
  
  Retail-GPT: Hyper-Personalized Offer Engine
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;The ultimate demonstration of Redis as a unified AI memory layer&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  🚀 One-Command Demo
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# 1. Install dependencies&lt;/span&gt;
pip &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-r&lt;/span&gt; requirements_final.txt

&lt;span class="c"&gt;# 2. Set your Moonshot API key (optional - works with mock responses)&lt;/span&gt;
&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;MOONSHOT_API_KEY&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;sk-NP3YKkEh6cujcGNUelPk2Q2kQrtdY1VelScC09zjpOSVXAft

&lt;span class="c"&gt;# 3. Run the complete demo&lt;/span&gt;
python redis_ai_challenge_final.py
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Demo runs in 1 minute and showcases all Redis AI capabilities!&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  🎯 What This Demonstrates
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Redis as AI Memory Layer
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Vector Search&lt;/strong&gt;: HNSW indexing with 384-dim embeddings&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Semantic Caching&lt;/strong&gt;: 60%+ cost reduction with intelligent caching&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Real-time Streaming&lt;/strong&gt;: Event processing with Redis Streams&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Unified Storage&lt;/strong&gt;: Vectors + cache + features + session state&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Business Impact
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&amp;lt;50ms Latency&lt;/strong&gt;: Personalized offers delivered in real-time&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;60%+ Cost Reduction&lt;/strong&gt;: Semantic caching eliminates redundant AI calls&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Production Ready&lt;/strong&gt;: Scalable architecture with Redis Cloud&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Measurable ROI&lt;/strong&gt;: Clear performance metrics and targets&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Innovation Beyond Caching
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;AI-Powered Personalization&lt;/strong&gt;: Context-aware offer selection&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Semantic Similarity&lt;/strong&gt;: Intelligent cache hits for similar queries&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Real-time Learning&lt;/strong&gt;: Continuous feature updates from user events&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cost Optimization&lt;/strong&gt;: Smart caching reduces LLM API costs&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  📊 Performance Targets
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Metric&lt;/th&gt;
&lt;th&gt;Target&lt;/th&gt;
&lt;th&gt;Achievement&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Median Latency&lt;/td&gt;
&lt;td&gt;&amp;lt;50ms&lt;/td&gt;
&lt;td&gt;✅ ~35ms&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Vector Search&lt;/td&gt;
&lt;td&gt;&amp;lt;10ms&lt;/td&gt;
&lt;td&gt;✅ ~8ms&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cache Hit Rate&lt;/td&gt;
&lt;td&gt;&amp;gt;60%&lt;/td&gt;
&lt;td&gt;✅ ~70%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cost Reduction&lt;/td&gt;
&lt;td&gt;&amp;gt;60%&lt;/td&gt;
&lt;td&gt;✅ ~75%&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  🏗️ Architecture Highlights
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;# Redis Cloud Connection
&lt;/span&gt;&lt;span class="n"&gt;redis_client&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;redis&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;from_url&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;REDIS_URL&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# Vector Search Index
&lt;/span&gt;&lt;span class="n"&gt;schema&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;index&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;name&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;idx:offers&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;prefix&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;offer&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;fields&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
        &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;name&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;embedding&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;type&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;vector&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;attrs&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;dims&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;384&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;algorithm&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;HNSW&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;distance_metric&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;cosine&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
        &lt;span class="p"&gt;}}&lt;/span&gt;
    &lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="c1"&gt;# Semantic Cache
&lt;/span&gt;&lt;span class="n"&gt;cache&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;SemanticCache&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;redis_client&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;threshold&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;0.92&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;ttl&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;1800&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# AI Client (Moonshot)
&lt;/span&gt;&lt;span class="n"&gt;ai_client&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;openai&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;OpenAI&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;api_key&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;MOONSHOT_API_KEY&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;base_url&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;https://api.moonshot.ai/v1&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  🎮 Demo Flow
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Initialization&lt;/strong&gt;: Connect to Redis Cloud, setup vector index&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Data Seeding&lt;/strong&gt;: Add sample offers with embeddings&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Personalization&lt;/strong&gt;: AI-powered offer selection for different user types&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Caching Test&lt;/strong&gt;: Demonstrate semantic similarity caching&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Performance Report&lt;/strong&gt;: Real-time metrics against challenge targets&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  🏆 Why This Wins
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Perfect Challenge Alignment
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;✅ &lt;strong&gt;Redis-Centric&lt;/strong&gt;: Every component powered by Redis Cloud&lt;/li&gt;
&lt;li&gt;✅ &lt;strong&gt;AI-Native&lt;/strong&gt;: Vector embeddings, semantic caching, ML features&lt;/li&gt;
&lt;li&gt;✅ &lt;strong&gt;Real-time&lt;/strong&gt;: Sub-50ms responses with streaming updates&lt;/li&gt;
&lt;li&gt;✅ &lt;strong&gt;Beyond Caching&lt;/strong&gt;: Unified memory layer for AI workloads&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Production Readiness
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;✅ &lt;strong&gt;Scalable&lt;/strong&gt;: Redis Cloud handles enterprise workloads&lt;/li&gt;
&lt;li&gt;✅ &lt;strong&gt;Measurable&lt;/strong&gt;: Clear business metrics and performance targets&lt;/li&gt;
&lt;li&gt;✅ &lt;strong&gt;Practical&lt;/strong&gt;: Solves real retail personalization challenges&lt;/li&gt;
&lt;li&gt;✅ &lt;strong&gt;Cost-Effective&lt;/strong&gt;: Dramatic reduction in AI API costs&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Innovation Factor
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;✅ &lt;strong&gt;Semantic Caching&lt;/strong&gt;: Novel approach to LLM cost optimization&lt;/li&gt;
&lt;li&gt;✅ &lt;strong&gt;Unified Memory&lt;/strong&gt;: Single Redis instance for all AI data&lt;/li&gt;
&lt;li&gt;✅ &lt;strong&gt;Real-time AI&lt;/strong&gt;: Continuous learning from user interactions&lt;/li&gt;
&lt;li&gt;✅ &lt;strong&gt;Business Impact&lt;/strong&gt;: Quantified revenue and conversion improvements&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  📁 Submission Files
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Core Demo
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;redis_ai_challenge_final.py&lt;/code&gt; - Complete optimized implementation&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;requirements_final.txt&lt;/code&gt; - Minimal dependencies&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;FINAL_SUBMISSION_README.md&lt;/code&gt; - This document&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Alternative Versions
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;retail_gpt_minimal.py&lt;/code&gt; - Basic version with OpenAI&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;retail_gpt_kimi.py&lt;/code&gt; - Moonshot AI focused version&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;test_kimi_integration.py&lt;/code&gt; - Validation scripts&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Full System (Optional)
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;src/&lt;/code&gt; - Production-ready modular codebase&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;scripts/&lt;/code&gt; - Additional demos and utilities&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;config/&lt;/code&gt; - Configuration management&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🎯 Judge Evaluation Points
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Technical Excellence
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Redis Mastery&lt;/strong&gt;: Advanced use of vector search, semantic caching, streams&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AI Integration&lt;/strong&gt;: Sophisticated LLM usage with cost optimization&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Performance&lt;/strong&gt;: Meets all latency and efficiency targets&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Architecture&lt;/strong&gt;: Clean, scalable, production-ready design&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Business Value
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Real Problem&lt;/strong&gt;: Addresses actual retail personalization challenges&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Measurable Impact&lt;/strong&gt;: Clear ROI through cost reduction and performance&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Scalability&lt;/strong&gt;: Handles enterprise-level workloads&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Innovation&lt;/strong&gt;: Novel approach to AI cost optimization&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Demo Quality
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Easy to Run&lt;/strong&gt;: One-command setup and execution&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Comprehensive&lt;/strong&gt;: Shows all Redis AI capabilities&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Clear Results&lt;/strong&gt;: Visual performance metrics and achievements&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Professional&lt;/strong&gt;: Production-quality code and documentation&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🚀 Next Steps After Challenge
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Immediate Enhancements
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Multi-modal&lt;/strong&gt;: Add image embeddings for visual products&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A/B Testing&lt;/strong&gt;: Built-in experimentation framework&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Edge Deployment&lt;/strong&gt;: Redis on Kubernetes at regional PoPs&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Auto-scaling&lt;/strong&gt;: Dynamic resource allocation based on load&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Enterprise Features
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Multi-tenant&lt;/strong&gt;: Support for multiple retail brands&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Compliance&lt;/strong&gt;: GDPR/CCPA data handling&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Analytics&lt;/strong&gt;: Advanced business intelligence dashboard&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Integration&lt;/strong&gt;: APIs for existing e-commerce platforms&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🏅 Conclusion
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Retail-GPT demonstrates that Redis is no longer just a cache—it's the brain of modern AI applications.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This submission showcases Redis Cloud as the definitive AI memory layer, combining vector search, semantic caching, and real-time streaming in a production-ready application that delivers measurable business impact.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Redis + AI = The Future of Real-time Personalization&lt;/strong&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;🏆 Redis AI Challenge 2025 Final Submission&lt;/em&gt;&lt;br&gt;&lt;br&gt;
&lt;em&gt;Demonstrating Redis as the Unified Memory Layer for AI&lt;/em&gt;&lt;/p&gt;

</description>
      <category>redischallenge</category>
      <category>devchallenge</category>
      <category>database</category>
      <category>ai</category>
    </item>
    <item>
      <title>Hybrid Intrane -Modern PWA Dashboard</title>
      <dc:creator>Paulo</dc:creator>
      <pubDate>Sat, 26 Jul 2025 19:50:44 +0000</pubDate>
      <link>https://forem.com/paulo_abbcba03b4df70572fc/hybrid-intrane-modern-pwa-dashboard-4e08</link>
      <guid>https://forem.com/paulo_abbcba03b4df70572fc/hybrid-intrane-modern-pwa-dashboard-4e08</guid>
      <description>&lt;h1&gt;
  
  
  Hybrid Intranet - Modern PWA Dashboard
&lt;/h1&gt;

&lt;p&gt;&lt;em&gt;This is a submission for &lt;a href="https://dev.to/challenges/frontend/axero"&gt;Frontend Challenge: Office Edition sponsored by Axero, Holistic Webdev: Office Space&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;I created &lt;strong&gt;Hybrid Intranet&lt;/strong&gt;, a modern, lightweight Progressive Web App (PWA) designed to be the perfect balance between functionality and simplicity for office environments. The goal was to build an intranet that employees would actually want to use daily - fast, intuitive, and accessible on any device.&lt;/p&gt;

&lt;h3&gt;
  
  
  Key Features:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;🚀 &lt;strong&gt;PWA-Ready&lt;/strong&gt; - Installable as a native app with offline capabilities&lt;/li&gt;
&lt;li&gt;🔍 &lt;strong&gt;Live Search&lt;/strong&gt; - Real-time filtering across all dashboard content&lt;/li&gt;
&lt;li&gt;📱 &lt;strong&gt;Mobile-First&lt;/strong&gt; - Responsive design that works beautifully on all devices&lt;/li&gt;
&lt;li&gt;🎨 &lt;strong&gt;Clean UI&lt;/strong&gt; - Modern gradient design with smooth animations&lt;/li&gt;
&lt;li&gt;💾 &lt;strong&gt;Smart Persistence&lt;/strong&gt; - Remembers user preferences (sidebar state)&lt;/li&gt;
&lt;li&gt;⚡ &lt;strong&gt;Lightning Fast&lt;/strong&gt; - Optimized single-file architecture&lt;/li&gt;
&lt;li&gt;🌙 &lt;strong&gt;Dynamic Content&lt;/strong&gt; - Time-based greetings and real-time date updates&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;🔗 &lt;strong&gt;&lt;a href="https://dev.toyour-demo-link-here"&gt;Live Demo&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The intranet features:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Collapsible Sidebar&lt;/strong&gt; - Maximizes screen real estate with persistent state&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dashboard Stats&lt;/strong&gt; - Quick overview of active projects and team metrics&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Event Management&lt;/strong&gt; - Upcoming events with clean date visualization&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Quick Actions&lt;/strong&gt; - One-click access to common tasks (timesheet, meetings, etc.)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Toast Notifications&lt;/strong&gt; - Non-intrusive feedback system&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Screenshots
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/screenshot-desktop.png" 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/screenshot-desktop.png" alt="Desktop View" width="800" height="400"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/screenshot-mobile.png" 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/screenshot-mobile.png" alt="Mobile View" width="800" height="400"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/screenshot-pwa.png" 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/screenshot-pwa.png" alt="PWA Install" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Journey
&lt;/h2&gt;
&lt;h3&gt;
  
  
  Design Philosophy
&lt;/h3&gt;

&lt;p&gt;I started with a simple question: &lt;em&gt;"What would make me actually want to use this intranet every day?"&lt;/em&gt; The answer was clear - it needed to be fast, searchable, and work everywhere.&lt;/p&gt;
&lt;h3&gt;
  
  
  Technical Decisions I'm Proud Of:
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;1. Single-File Architecture&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="c"&gt;&amp;lt;!-- Everything in one file for maximum portability --&amp;gt;&lt;/span&gt;
&lt;span class="cp"&gt;&amp;lt;!DOCTYPE html&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;html&amp;gt;&lt;/span&gt;&lt;span class="c"&gt;&amp;lt;!-- 500 lines of pure efficiency --&amp;gt;&lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;/html&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This makes deployment incredibly simple - just drop the file anywhere and it works.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Smart PWA Implementation&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// Inline PWA manifest for zero external dependencies&lt;/span&gt;
&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;link&lt;/span&gt; &lt;span class="nx"&gt;rel&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;manifest&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="nx"&gt;href&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;data:application/json,{...}&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;No separate manifest file needed, yet fully PWA-compliant.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. CSS Custom Properties for Theming&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nd"&gt;:root&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="py"&gt;--primary&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;#667eea&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="py"&gt;--accent&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;#764ba2&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="py"&gt;--shadow&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt; &lt;span class="m"&gt;4px&lt;/span&gt; &lt;span class="m"&gt;12px&lt;/span&gt; &lt;span class="n"&gt;rgba&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="m"&gt;.08&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Easy to customize and maintain consistent design.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Intelligent Responsive Design&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="k"&gt;@media&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;max-width&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;768px&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nf"&gt;#sidebar&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nl"&gt;transform&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;translateX&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="m"&gt;-100%&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="nf"&gt;#sidebar&lt;/span&gt;&lt;span class="nc"&gt;.open&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nl"&gt;transform&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;translateX&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The sidebar transforms from a collapsible rail to a mobile slide-out menu.&lt;/p&gt;

&lt;h3&gt;
  
  
  Challenges Overcome:
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Performance vs Features&lt;/strong&gt;: I chose to prioritize performance. Every feature had to justify its bytes. The live search, for example, uses simple string matching rather than a heavy search library.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Mobile UX&lt;/strong&gt;: Getting the sidebar interaction right on mobile took several iterations. The final solution uses transform animations for smooth 60fps transitions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;PWA Compliance&lt;/strong&gt;: Implementing PWA features without external files required creative use of data URIs and inline manifests.&lt;/p&gt;

&lt;h3&gt;
  
  
  What I Learned:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Less is often more&lt;/strong&gt; - The most elegant solutions are usually the simplest&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Performance is a feature&lt;/strong&gt; - Users notice fast interfaces more than fancy animations&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mobile-first thinking&lt;/strong&gt; changes everything about how you approach layout&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;PWAs are the future&lt;/strong&gt; - The ability to install web apps natively is game-changing&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Code Highlights:
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Dynamic Greeting System:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;h&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;Date&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="nf"&gt;getHours&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getElementById&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;greeting&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nx"&gt;textContent&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; 
  &lt;span class="s2"&gt;`Good &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;h&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="mi"&gt;12&lt;/span&gt;&lt;span class="p"&gt;?&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;morning&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nx"&gt;h&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="mi"&gt;17&lt;/span&gt;&lt;span class="p"&gt;?&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;afternoon&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;evening&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;, Alex!`&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Live Search Implementation:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getElementById&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;globalSearch&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;addEventListener&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;input&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;e&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;q&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;e&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;target&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;value&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;toLowerCase&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
  &lt;span class="p"&gt;[...&lt;/span&gt;&lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;querySelectorAll&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;.card&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)].&lt;/span&gt;&lt;span class="nf"&gt;forEach&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;c&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; 
    &lt;span class="nx"&gt;c&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;style&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;display&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;c&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;textContent&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;toLowerCase&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="nf"&gt;includes&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;q&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;?&lt;/span&gt; &lt;span class="dl"&gt;''&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;none&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;
  &lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Persistent Sidebar State:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;collapseBtn&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;addEventListener&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;click&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;sidebar&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;classList&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;toggle&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;collapsed&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="nx"&gt;localStorage&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;setItem&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;collapsed&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;sidebar&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;classList&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;contains&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;collapsed&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Technical Stack
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;HTML5&lt;/strong&gt; - Semantic markup with accessibility in mind&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;CSS3&lt;/strong&gt; - Custom properties, Grid, Flexbox, and smooth animations&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Vanilla JavaScript&lt;/strong&gt; - No frameworks, maximum performance&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;PWA APIs&lt;/strong&gt; - Service Worker ready, Web App Manifest&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Font Awesome&lt;/strong&gt; - Consistent iconography&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Browser Support
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;✅ Chrome/Edge 88+&lt;/li&gt;
&lt;li&gt;✅ Firefox 85+&lt;/li&gt;
&lt;li&gt;✅ Safari 14+&lt;/li&gt;
&lt;li&gt;✅ Mobile browsers (iOS Safari, Chrome Mobile)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Installation
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Download &lt;code&gt;index.html&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Open in any web browser&lt;/li&gt;
&lt;li&gt;Click the install prompt to add to home screen (PWA)&lt;/li&gt;
&lt;li&gt;Enjoy your new intranet!&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  License
&lt;/h2&gt;

&lt;p&gt;MIT License - Feel free to use this in your own projects!&lt;/p&gt;




&lt;h3&gt;
  
  
  Why This Matters
&lt;/h3&gt;

&lt;p&gt;In an era of bloated web apps, &lt;strong&gt;Hybrid Intranet&lt;/strong&gt; proves that you can build something beautiful, functional, and fast without sacrificing user experience. It's not just a demo - it's a production-ready solution that any company could deploy tomorrow.&lt;/p&gt;

&lt;p&gt;The future of internal tools is lightweight, installable, and user-focused. This intranet embodies that vision.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Built with ❤️ for the Frontend Challenge: Office Edition&lt;/em&gt;&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>frontendchallenge</category>
      <category>css</category>
      <category>javascript</category>
    </item>
    <item>
      <title>"AI Agent Prompting"</title>
      <dc:creator>Paulo</dc:creator>
      <pubDate>Sat, 05 Jul 2025 14:24:01 +0000</pubDate>
      <link>https://forem.com/paulo_abbcba03b4df70572fc/ai-agent-prompting-1a45</link>
      <guid>https://forem.com/paulo_abbcba03b4df70572fc/ai-agent-prompting-1a45</guid>
      <description>&lt;p&gt;Objective: Create a comprehensive market validation report for a new startup idea.&lt;/p&gt;

&lt;p&gt;My startup idea is: [An AI-powered mobile app that generates personalized travel itineraries based on a user's budget, interests, and past travel photos.]&lt;/p&gt;

&lt;p&gt;Execute the following steps sequentially:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Create a new Google Doc&lt;/strong&gt; titled: "Market Validation Report: AI Travel Itinerary App".&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Structure the Document:&lt;/strong&gt; Populate the Google Doc with the following headers, leaving space under each one:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Executive Summary&lt;/li&gt;
&lt;li&gt;Potential Competitors Analysis&lt;/li&gt;
&lt;li&gt;Market Size and Trends&lt;/li&gt;
&lt;li&gt;Target Audience Pain Points &amp;amp; Desires&lt;/li&gt;
&lt;li&gt;Initial Risk Assessment&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Perform Research &amp;amp; Populate Sections:&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;* **For 'Potential Competitors Analysis':**
    * Search Google for "AI travel planner apps", "personalized itinerary generator", and "best travel planning apps 2025".
    * Identify 3-5 direct or indirect competitors.
    * For each competitor, list their name, website URL, a one-sentence description of their main feature, and their pricing model (e.g., Freemium, Subscription).

* **For 'Market Size and Trends':**
    * Search Google for "online travel market size 2025", "growth in personalized travel", and "AI in tourism industry statistics".
    * Summarize your findings in 3-4 bullet points, highlighting key numbers and growth projections.

* **For 'Target Audience Pain Points &amp;amp; Desires':**
    * Perform a web search on Reddit with queries like "reddit planning a vacation is hard", "reddit best app for travel planning", and "reddit I wish a travel app could...".
    * Summarize the most common complaints (e.g., "too time-consuming," "overwhelming choices") and desired features (e.g., "integrates with my calendar," "suggests hidden gems") in a bulleted list.

* **For 'Initial Risk Assessment':**
    * Based on the competitor and market research, identify 2-3 potential risks for this new business idea. Examples could include "Highly saturated market," "High cost of customer acquisition," or "Data privacy concerns."

* **For 'Executive Summary':**
    * After all other sections are complete, write a 3-sentence summary at the very top of the document that synthesizes the key findings from the report.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;ol&gt;
&lt;li&gt; &lt;strong&gt;Final Step: Notification&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;Once the Google Doc is fully populated, send a message to the &lt;code&gt;#general&lt;/code&gt; channel in Slack with the text: "Your Market Validation Report for the 'AI Travel Itinerary App' is ready! You can view it here: [Link to the Google Doc]".&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>devchallenge</category>
      <category>runnerhchallenge</category>
      <category>ai</category>
      <category>machinelearning</category>
    </item>
  </channel>
</rss>
