<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Shaik Mohammed Huzaifa</title>
    <description>The latest articles on DEV Community by Shaik Mohammed Huzaifa (@shaikmohdhuzaifa).</description>
    <link>https://dev.to/shaikmohdhuzaifa</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%2F941453%2F5570dd90-36ea-4a4e-a1d7-add4e7b1cfe6.jpeg</url>
      <title>DEV Community: Shaik Mohammed Huzaifa</title>
      <link>https://dev.to/shaikmohdhuzaifa</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/shaikmohdhuzaifa"/>
    <language>en</language>
    <item>
      <title>KnowledgeForge: Turning Enterprise Chaos into a Living Knowledge Graph 🧠</title>
      <dc:creator>Shaik Mohammed Huzaifa</dc:creator>
      <pubDate>Mon, 05 Jan 2026 07:52:37 +0000</pubDate>
      <link>https://dev.to/shaikmohdhuzaifa/knowledgeforge-turning-enterprise-chaos-into-a-living-knowledge-graph-1hjo</link>
      <guid>https://dev.to/shaikmohdhuzaifa/knowledgeforge-turning-enterprise-chaos-into-a-living-knowledge-graph-1hjo</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/mux-2025-12-03"&gt;DEV's Worldwide Show and Tell Challenge Presented by Mux&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Modern enterprises generate an overwhelming amount of unstructured information—emails, documents, meeting transcripts, dashboards, and chats. While this data holds immense value, most of it remains siloed, unsearchable, and disconnected.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;KnowledgeForge&lt;/strong&gt; is an AI-powered knowledge management platform designed to solve this exact problem. It transforms unstructured enterprise content into a &lt;strong&gt;queryable knowledge graph&lt;/strong&gt;, enabling teams to explore their organizational knowledge using &lt;strong&gt;natural language&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Instead of searching through folders, inboxes, or dashboards, you can simply ask questions like:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;“What did Rajesh Kumar discuss last quarter?”&lt;/em&gt;&lt;br&gt;
&lt;em&gt;“Which topics are most associated with declining KPIs?”&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;KnowledgeForge handles the rest.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Core Idea
&lt;/h2&gt;

&lt;p&gt;At its heart, KnowledgeForge combines three powerful concepts:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;LLM-driven understanding&lt;/strong&gt; of unstructured content&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Graph-based modeling&lt;/strong&gt; of people, topics, and metrics&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Natural language access&lt;/strong&gt; to both unstructured and structured data&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;By blending vector search, entity graphs, and virtualized data access, KnowledgeForge becomes a single intelligence layer over your organization’s knowledge.&lt;/p&gt;




&lt;h2&gt;
  
  
  Key Capabilities
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Intelligent Entity Extraction
&lt;/h3&gt;

&lt;p&gt;Every piece of content—whether it’s an email, document, or meeting transcript—is analyzed using large language models. The system automatically extracts:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;People mentioned&lt;/li&gt;
&lt;li&gt;Topics and themes&lt;/li&gt;
&lt;li&gt;Business metrics and KPIs&lt;/li&gt;
&lt;li&gt;Temporal references&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This turns raw text into structured, reusable knowledge.&lt;/p&gt;




&lt;h3&gt;
  
  
  A Living Knowledge Graph
&lt;/h3&gt;

&lt;p&gt;Extracted entities don’t live in isolation. KnowledgeForge builds relationships between:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Knowledge items (documents, meetings, emails)&lt;/li&gt;
&lt;li&gt;People&lt;/li&gt;
&lt;li&gt;Topics&lt;/li&gt;
&lt;li&gt;Metrics&lt;/li&gt;
&lt;li&gt;Time dimensions&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Over time, this forms a rich graph that reflects how information, decisions, and outcomes are connected across the organization.&lt;/p&gt;




&lt;h3&gt;
  
  
  Semantic Search That Understands Meaning
&lt;/h3&gt;

&lt;p&gt;Traditional keyword search fails when phrasing changes. KnowledgeForge uses vector embeddings to enable &lt;strong&gt;semantic search&lt;/strong&gt;, meaning you can retrieve relevant information even if the wording doesn’t match exactly.&lt;/p&gt;

&lt;p&gt;This is especially powerful for exploratory questions and research-style queries.&lt;/p&gt;




&lt;h3&gt;
  
  
  KB Genie: Conversational Knowledge Access
&lt;/h3&gt;

&lt;p&gt;On top of the knowledge graph sits &lt;strong&gt;KB Genie&lt;/strong&gt;, a conversational AI assistant.&lt;/p&gt;

&lt;p&gt;KB Genie:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Detects entities in user questions&lt;/li&gt;
&lt;li&gt;Traverses the knowledge graph&lt;/li&gt;
&lt;li&gt;Retrieves relevant document chunks using vector search&lt;/li&gt;
&lt;li&gt;Queries structured data when needed&lt;/li&gt;
&lt;li&gt;Generates clear, contextual answers with supporting evidence&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The result feels less like “search” and more like talking to your organization’s collective memory.&lt;/p&gt;




&lt;h3&gt;
  
  
  Bridging Unstructured and Structured Data with Denodo
&lt;/h3&gt;

&lt;p&gt;One of KnowledgeForge’s differentiators is its integration with &lt;strong&gt;Denodo AI SDK&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;While vector databases and LLMs excel at unstructured data, enterprises still rely heavily on structured systems like data warehouses. KnowledgeForge uses Denodo to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Translate natural language questions into SQL&lt;/li&gt;
&lt;li&gt;Query virtualized views across multiple data sources&lt;/li&gt;
&lt;li&gt;Combine structured query results with unstructured knowledge&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This creates a unified experience where documents, metrics, and dashboards all answer the same question.&lt;/p&gt;




&lt;h2&gt;
  
  
  How the System Works
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Ingestion Pipeline
&lt;/h3&gt;

&lt;p&gt;When new content is ingested, it flows through a multi-step pipeline:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Content is received (email, document, or transcript)&lt;/li&gt;
&lt;li&gt;LLMs extract entities and relationships&lt;/li&gt;
&lt;li&gt;Entities are resolved and deduplicated&lt;/li&gt;
&lt;li&gt;Content is chunked into semantically meaningful sections&lt;/li&gt;
&lt;li&gt;Embeddings are generated for each chunk&lt;/li&gt;
&lt;li&gt;Data is stored across relational and vector databases&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Each step adds structure and context without losing the original content.&lt;/p&gt;




&lt;h3&gt;
  
  
  Query Flow
&lt;/h3&gt;

&lt;p&gt;When a user asks a question:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The system identifies entities in the query&lt;/li&gt;
&lt;li&gt;The knowledge graph is traversed to find related information&lt;/li&gt;
&lt;li&gt;Relevant document chunks are retrieved using semantic search&lt;/li&gt;
&lt;li&gt;Structured data is queried via Denodo when needed&lt;/li&gt;
&lt;li&gt;A language model synthesizes a final answer&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This hybrid approach ensures responses are both &lt;strong&gt;accurate&lt;/strong&gt; and &lt;strong&gt;contextually rich&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Data Model
&lt;/h2&gt;

&lt;p&gt;KnowledgeForge is built around a central concept: the &lt;strong&gt;knowledge item&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Every document, email, or meeting acts as an anchor node, connected to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;People&lt;/li&gt;
&lt;li&gt;Topics&lt;/li&gt;
&lt;li&gt;Metrics&lt;/li&gt;
&lt;li&gt;Time&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This design makes it easy to ask cross-cutting questions like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;“Which people are most associated with this topic?”&lt;/li&gt;
&lt;li&gt;“What metrics tend to appear in discussions about delays?”&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Built for Real-World Engineering Teams
&lt;/h2&gt;

&lt;p&gt;The platform is designed with modern stacks and scalability in mind:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A FastAPI backend exposes ingestion, search, and agent endpoints&lt;/li&gt;
&lt;li&gt;A React-based frontend provides dashboards, exploration tools, and chat&lt;/li&gt;
&lt;li&gt;Vector storage enables fast semantic retrieval&lt;/li&gt;
&lt;li&gt;Relational storage ensures consistency and traceability&lt;/li&gt;
&lt;li&gt;Virtualized data access avoids duplicating enterprise data&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Everything is modular, making it easy to extend or adapt to different enterprise environments.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why KnowledgeForge Matters
&lt;/h2&gt;

&lt;p&gt;Enterprises don’t suffer from a lack of data—they suffer from a lack of &lt;strong&gt;understanding&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;KnowledgeForge turns scattered information into:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Connected knowledge&lt;/li&gt;
&lt;li&gt;Searchable insights&lt;/li&gt;
&lt;li&gt;Conversational answers&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It doesn’t replace your existing systems. It &lt;strong&gt;connects them&lt;/strong&gt;, learns from them, and makes them usable by anyone who can ask a question.&lt;/p&gt;

&lt;p&gt;Github: &lt;a href="https://github.com/Shaik-mohd-huzaifa/knowledge-forge" rel="noopener noreferrer"&gt;https://github.com/Shaik-mohd-huzaifa/knowledge-forge&lt;/a&gt;&lt;/p&gt;

</description>
      <category>muxchallenge</category>
    </item>
    <item>
      <title>Permitron: AI-Powered Task Management with Fine-Grained Permissions</title>
      <dc:creator>Shaik Mohammed Huzaifa</dc:creator>
      <pubDate>Mon, 05 May 2025 06:15:16 +0000</pubDate>
      <link>https://dev.to/shaikmohdhuzaifa/permitron-ai-powered-task-management-with-fine-grained-permissions-14h</link>
      <guid>https://dev.to/shaikmohdhuzaifa/permitron-ai-powered-task-management-with-fine-grained-permissions-14h</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/permit_io"&gt;Permit.io Authorization Challenge&lt;/a&gt;: AI Access Control&lt;/em&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Permitron: AI-Powered Task Management with Fine-Grained Permissions
&lt;/h1&gt;

&lt;p&gt;Github Repo: &lt;a href="https://github.com/Shaik-mohd-huzaifa/permitron" rel="noopener noreferrer"&gt;https://github.com/Shaik-mohd-huzaifa/permitron&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Project Overview
&lt;/h2&gt;

&lt;p&gt;Permitron is an intelligent task management application that combines the power of LLM-based chatbots with Permit.io's robust permission management system. The application enables users to create, update, track, and manage tasks using natural language through a conversational interface, while enforcing strict permission controls based on user roles and context.&lt;/p&gt;

&lt;h2&gt;
  
  
  Key Features
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Natural Language Task Management&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Create tasks via conversational commands: "Create a task for adding new feature"&lt;/li&gt;
&lt;li&gt;Update tasks: "Update task #123 with title: Improved API integration"&lt;/li&gt;
&lt;li&gt;Change task status: "Move task #123 to in-progress"&lt;/li&gt;
&lt;li&gt;Delete tasks: "Delete task #123"&lt;/li&gt;
&lt;li&gt;List tasks with filtering: "Show me my in-progress tasks"&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Kanban Board Visualization&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Visual task board with draggable cards&lt;/li&gt;
&lt;li&gt;Columns for Todo, In Progress, Review, and Done&lt;/li&gt;
&lt;li&gt;Status updates sync between chat and board interfaces&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Fine-Grained Permissions with Permit.io&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Role-based access control (Admin, Employee, Guest)&lt;/li&gt;
&lt;li&gt;Attribute-based permissions (task ownership, assignment)&lt;/li&gt;
&lt;li&gt;LLM operation authorization&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Chat Interface Integration&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Conversational AI powered by OpenAI&lt;/li&gt;
&lt;li&gt;Context-aware responses&lt;/li&gt;
&lt;li&gt;Permission-aware task operations&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Technical Architecture
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Frontend (React + TypeScript)
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;React-based SPA with TypeScript&lt;/li&gt;
&lt;li&gt;Zustand for state management&lt;/li&gt;
&lt;li&gt;Tailwind CSS for styling&lt;/li&gt;
&lt;li&gt;Integrated chat interface and kanban board&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Backend (Node.js + Express)
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Express-based REST API&lt;/li&gt;
&lt;li&gt;OpenAI integration for natural language processing&lt;/li&gt;
&lt;li&gt;Permit.io SDK for authorization&lt;/li&gt;
&lt;li&gt;In-memory data store (could be replaced with a database)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Permit.io Integration
&lt;/h2&gt;

&lt;p&gt;Permitron leverages Permit.io's powerful authorization system to implement fine-grained access controls for LLM-based task operations. Here's how Permit.io is integrated:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Resource-Based Authorization
&lt;/h3&gt;

&lt;p&gt;We've defined two key resources in our Permit.io configuration:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;resources&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;key&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;task&lt;/span&gt;
    &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Task&lt;/span&gt;
    &lt;span class="na"&gt;description&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;A task in the system&lt;/span&gt;
    &lt;span class="na"&gt;attributes&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;key&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;status&lt;/span&gt;
        &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;string&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;key&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;assignedTo&lt;/span&gt;
        &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;string&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;key&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;createdBy&lt;/span&gt;
        &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;string&lt;/span&gt;
    &lt;span class="na"&gt;actions&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;key&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;create&lt;/span&gt;
        &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Create&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;key&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;read&lt;/span&gt;
        &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Read&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;key&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;update&lt;/span&gt;
        &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Update&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;key&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;delete&lt;/span&gt;
        &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Delete&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;key&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;change_status&lt;/span&gt;
        &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Change Status&lt;/span&gt;

  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;key&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;llm&lt;/span&gt;
    &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;LLM&lt;/span&gt;
    &lt;span class="na"&gt;description&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;LLM functions&lt;/span&gt;
    &lt;span class="na"&gt;actions&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;key&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;manage_tasks&lt;/span&gt;
        &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Manage Tasks&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  2. Role-Based Permissions
&lt;/h3&gt;

&lt;p&gt;We've implemented different roles with varying levels of access:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;roles&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;key&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;admin&lt;/span&gt;
    &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Admin&lt;/span&gt;
    &lt;span class="na"&gt;permissions&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;resource&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;task&lt;/span&gt;
        &lt;span class="na"&gt;actions&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;create"&lt;/span&gt;&lt;span class="pi"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;read"&lt;/span&gt;&lt;span class="pi"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;update"&lt;/span&gt;&lt;span class="pi"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;delete"&lt;/span&gt;&lt;span class="pi"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;change_status"&lt;/span&gt;&lt;span class="pi"&gt;]&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;resource&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;llm&lt;/span&gt;
        &lt;span class="na"&gt;actions&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;manage_tasks"&lt;/span&gt;&lt;span class="pi"&gt;]&lt;/span&gt;

  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;key&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;employee&lt;/span&gt;
    &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Employee&lt;/span&gt;
    &lt;span class="na"&gt;permissions&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;resource&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;task&lt;/span&gt;
        &lt;span class="na"&gt;actions&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;create"&lt;/span&gt;&lt;span class="pi"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;read"&lt;/span&gt;&lt;span class="pi"&gt;]&lt;/span&gt;
        &lt;span class="na"&gt;condition&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;{&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;assignedTo:&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;user.id&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;}&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;OR&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;{&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;createdBy:&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;user.id&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;}"&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;resource&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;task&lt;/span&gt;
        &lt;span class="na"&gt;actions&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;update"&lt;/span&gt;&lt;span class="pi"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;delete"&lt;/span&gt;&lt;span class="pi"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;change_status"&lt;/span&gt;&lt;span class="pi"&gt;]&lt;/span&gt;
        &lt;span class="na"&gt;condition&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;{&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;createdBy:&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;user.id&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;}"&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;resource&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;llm&lt;/span&gt;
        &lt;span class="na"&gt;actions&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;manage_tasks"&lt;/span&gt;&lt;span class="pi"&gt;]&lt;/span&gt;

  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;key&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;guest&lt;/span&gt;
    &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Guest&lt;/span&gt;
    &lt;span class="na"&gt;permissions&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;resource&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;task&lt;/span&gt;
        &lt;span class="na"&gt;actions&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;read"&lt;/span&gt;&lt;span class="pi"&gt;]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  3. LLM Assistant Integration
&lt;/h3&gt;

&lt;p&gt;A unique aspect of our implementation is the integration of Permit.io with the LLM task processor. When a user asks the chatbot to perform a task operation, the system:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Identifies the user's intent (create/update/delete/etc.)&lt;/li&gt;
&lt;li&gt;Extracts the task details from natural language&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Checks permission with Permit.io before execution&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Executes the task operation only if permitted&lt;/li&gt;
&lt;li&gt;Provides clear feedback about permission status&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Example code snippets showing this integration:&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;// Check permission for task creation&lt;/span&gt;
&lt;span class="k"&gt;try&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;permitted&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;permit&lt;/span&gt; &lt;span class="p"&gt;?&lt;/span&gt; 
    &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;permit&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;check&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
      &lt;span class="na"&gt;user&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;id&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;userId&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;key&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;userId&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
      &lt;span class="na"&gt;action&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;create&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="na"&gt;resource&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;task&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="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

  &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="nx"&gt;permitted&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="na"&gt;actionTaken&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="na"&gt;action&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;create_task&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="na"&gt;success&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="na"&gt;response&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;❌ You don't have permission to create tasks.&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="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;catch &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;error&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;error&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Permit.io check error:&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;error&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;h3&gt;
  
  
  4. Attribute-Based Access Control (ABAC)
&lt;/h3&gt;

&lt;p&gt;For operations on existing tasks, we use attribute-based permissions to check if the user is the creator or is assigned to the task:&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;// For updating tasks&lt;/span&gt;
&lt;span class="nx"&gt;permitted&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;permit&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;check&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
  &lt;span class="na"&gt;user&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;id&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;userId&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;key&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;userId&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="na"&gt;action&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;update&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;resource&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;task&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;context&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;task&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="na"&gt;createdBy&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;task&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;createdBy&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="na"&gt;assignedTo&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;task&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;assignedTo&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;This enables contextual permission checks based on the task's properties and the user's relationship to it.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. LLM-Specific Permissions
&lt;/h3&gt;

&lt;p&gt;We've introduced a specific permission for using the LLM to manage tasks:&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;// Check if LLM can manage tasks on user's behalf&lt;/span&gt;
&lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;permit&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="nx"&gt;actionTaken&lt;/span&gt;&lt;span class="p"&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;permitted&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;permit&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;check&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
    &lt;span class="na"&gt;user&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;id&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;userId&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;key&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;userId&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="na"&gt;action&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;manage_tasks&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;resource&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;llm&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
  &lt;span class="p"&gt;});&lt;/span&gt;

  &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="nx"&gt;permitted&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="na"&gt;actionTaken&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="na"&gt;success&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="na"&gt;response&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;❌ You don't have permission to use the LLM for task management operations.&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="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This adds an additional layer of control over which users can leverage AI for task management.&lt;/p&gt;

&lt;h2&gt;
  
  
  Benefits of Using Permit.io
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Separation of Concerns&lt;/strong&gt;: Authorization logic is cleanly separated from application code&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fine-Grained Control&lt;/strong&gt;: Permissions based on roles, attributes, and context&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Natural Language Understanding with Authorization&lt;/strong&gt;: LLM understands not just what the user wants to do, but whether they're allowed to do it&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;User-Friendly Feedback&lt;/strong&gt;: Clear permission-related responses from the chatbot&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Scalable Permission Model&lt;/strong&gt;: Easy to add new roles, resources, and permissions as the application grows&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Future Enhancements
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Implement user authentication with JWT integration&lt;/li&gt;
&lt;li&gt;Add team-based permissions using Permit.io's tenancy model&lt;/li&gt;
&lt;li&gt;Create an audit log of all permission decisions&lt;/li&gt;
&lt;li&gt;Implement permission caching for performance optimization&lt;/li&gt;
&lt;li&gt;Add permission-aware UI elements that hide/show based on user permissions&lt;/li&gt;
&lt;/ol&gt;

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

&lt;p&gt;Permitron demonstrates how combining Permit.io's powerful authorization capabilities with AI-powered interfaces creates a secure, user-friendly task management system. By ensuring that the LLM understands and respects permission boundaries, we've created an application that leverages the power of AI while maintaining robust security controls.&lt;/p&gt;

&lt;h2&gt;
  
  
  Application Screenshots
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Chatbot View
&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/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9hbi2gxajve15tszfd77.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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9hbi2gxajve15tszfd77.png" alt="Image description" width="800" height="434"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Board View
&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/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0gzuj2xzhnmgvtwhicdv.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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0gzuj2xzhnmgvtwhicdv.png" alt="Image description" width="800" height="365"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>permitchallenge</category>
      <category>webdev</category>
      <category>security</category>
    </item>
    <item>
      <title>Dynamic Healthcare AI chat widget's with Kendo React Components</title>
      <dc:creator>Shaik Mohammed Huzaifa</dc:creator>
      <pubDate>Mon, 24 Mar 2025 06:59:13 +0000</pubDate>
      <link>https://dev.to/shaikmohdhuzaifa/dynamic-healthcare-ai-chat-widgets-with-kendo-react-components-3hda</link>
      <guid>https://dev.to/shaikmohdhuzaifa/dynamic-healthcare-ai-chat-widgets-with-kendo-react-components-3hda</guid>
      <description>&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%2Fxawpgjlj7mwnhtogfjsi.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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxawpgjlj7mwnhtogfjsi.png" alt="Kendo Challenge Image" width="800" height="520"&gt;&lt;/a&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/kendoreact"&gt;KendoReact Free Components Challenge&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;I developed a comprehensive Healthcare AI Assistant that leverages KendoReact components to create an intuitive and efficient healthcare management system. The application features role-based interfaces for patients, doctors, and receptionists, providing specialized functionalities for each user type.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;Role-based access control (Patient, Doctor, Receptionist)&lt;/li&gt;
&lt;li&gt;Real-time appointment management&lt;/li&gt;
&lt;li&gt;ICU patient monitoring with progress tracking&lt;/li&gt;
&lt;li&gt;Surgery scheduling and progress tracking&lt;/li&gt;
&lt;li&gt;Patient discharge management&lt;/li&gt;
&lt;li&gt;Interactive data grids with filtering and sorting&lt;/li&gt;
&lt;li&gt;Dynamic progress bars for time-sensitive operations&lt;/li&gt;
&lt;li&gt;Responsive design for all devices&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;[Live Demo Link] - Add your deployed application link here&lt;br&gt;
[GitHub Repository] - &lt;a href="https://github.com/Shaik-mohd-huzaifa/Dynamic-Healthcare-Assistant" rel="noopener noreferrer"&gt;Github Repo&lt;/a&gt;&lt;/p&gt;

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

&lt;ol&gt;
&lt;li&gt;Main Interface&lt;/li&gt;
&lt;/ol&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%2Fzm1ww368okfu4ei2tqhm.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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzm1ww368okfu4ei2tqhm.png" alt="Image description" width="800" height="520"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Shows the chat interface with role selection&lt;/li&gt;
&lt;li&gt;Displays the conversation history&lt;/li&gt;
&lt;li&gt;Features the message input area&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;Doctor Dashboard
&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%2F2jn6os3x2kptmwoa0vwj.png" alt="Image description" width="800" height="520"&gt;## Healthcare AI Assistant with KendoReact Components&lt;/li&gt;
&lt;li&gt;Shows upcoming appointments&lt;/li&gt;
&lt;li&gt;Displays ICU patient monitoring&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Features surgery progress tracking&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Receptionist Interface&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/screenshot3.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/screenshot3.png" alt="Receptionist Interface" width="" height=""&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Shows appointment management&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Displays billing information&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Features doctor availability&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  KendoReact Experience
&lt;/h2&gt;

&lt;p&gt;I extensively utilized KendoReact's free components to build a professional and user-friendly interface:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Layout Components&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;Card&lt;/code&gt;, &lt;code&gt;CardBody&lt;/code&gt;, &lt;code&gt;CardTitle&lt;/code&gt; for organized content sections&lt;/li&gt;
&lt;li&gt;Responsive grid layouts for data presentation&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Data Grid Components&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;Grid&lt;/code&gt; and &lt;code&gt;GridColumn&lt;/code&gt; for displaying appointments, patients, and doctor lists&lt;/li&gt;
&lt;li&gt;Implemented sorting, filtering, and pagination&lt;/li&gt;
&lt;li&gt;Added custom cell renderers for progress bars&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Input Components&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;TextBox&lt;/code&gt; for text input fields&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;DatePicker&lt;/code&gt; for date selection&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;DropDownList&lt;/code&gt; for role selection and status updates&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Progress Components&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;ProgressBar&lt;/code&gt; for surgery and discharge progress tracking&lt;/li&gt;
&lt;li&gt;Custom styling for different states (success, info, error)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Dialog Components&lt;/strong&gt;:&lt;br&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%2Ftki6ciz6l4udweys9i36.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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftki6ciz6l4udweys9i36.png" alt="Image description" width="800" height="520"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;Dialog&lt;/code&gt; and &lt;code&gt;DialogActionsBar&lt;/code&gt; for clearing the Chat history&lt;/li&gt;
&lt;li&gt;Custom styling for better user experience
### AI to Impress
The application integrates OpenAI's GPT model through LangChain to provide intelligent responses and dynamic widget rendering:&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Smart Response System&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Analyzes user queries to determine appropriate responses&lt;/li&gt;
&lt;li&gt;Dynamically renders relevant widgets based on context&lt;/li&gt;
&lt;li&gt;Maintains conversation history for context-aware responses&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Role-Based Intelligence&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Custom prompts for each user role (Patient, Doctor, Receptionist)&lt;/li&gt;
&lt;li&gt;Contextual understanding of healthcare terminology&lt;/li&gt;
&lt;li&gt;Intelligent widget selection based on user needs&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Natural Language Processing&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Understands complex healthcare queries&lt;/li&gt;
&lt;li&gt;Provides relevant information and actions&lt;/li&gt;
&lt;li&gt;Maintains professional healthcare communication&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Delightfully Designed
&lt;/h3&gt;

&lt;p&gt;The application features a modern, clean design using KendoReact's built-in theming and custom styling:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Visual Hierarchy&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Clear section separation using cards&lt;/li&gt;
&lt;li&gt;Consistent color scheme for different states&lt;/li&gt;
&lt;li&gt;Intuitive progress indicators&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Responsive Design&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Adapts to different screen sizes&lt;/li&gt;
&lt;li&gt;Mobile-friendly interface&lt;/li&gt;
&lt;li&gt;Optimized grid layouts for smaller screens&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Interactive Elements&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Hover effects on cards and grid rows&lt;/li&gt;
&lt;li&gt;Smooth transitions for progress bars&lt;/li&gt;
&lt;li&gt;Clear visual feedback for user actions&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Accessibility&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;High contrast text&lt;/li&gt;
&lt;li&gt;Clear visual hierarchy&lt;/li&gt;
&lt;li&gt;Keyboard navigation support&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The application demonstrates the power of KendoReact's free components in creating a professional healthcare management system while maintaining excellent user experience and visual appeal.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>kendoreactchallenge</category>
      <category>react</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Most Convenient way to create a new file</title>
      <dc:creator>Shaik Mohammed Huzaifa</dc:creator>
      <pubDate>Mon, 07 Nov 2022 14:32:37 +0000</pubDate>
      <link>https://dev.to/shaikmohdhuzaifa/most-convenient-way-to-create-a-new-file-2kmo</link>
      <guid>https://dev.to/shaikmohdhuzaifa/most-convenient-way-to-create-a-new-file-2kmo</guid>
      <description>&lt;p&gt;However, many ways exist to create a new file in Linux and Other CLIs.&lt;br&gt;
But this one is the most convenient way with very minimal code&lt;/p&gt;

&lt;p&gt;First, navigate the terminal to your desired location and then use this command&lt;/p&gt;

&lt;p&gt;Here the Command&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;Username@deviceName ~ root directory
&lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; filename.extension
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Here, the Greater than '&amp;gt;' symbol is used to create new files&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;NOTE: You can create as many files as possible at once&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;em&gt;Example:&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Here I am creating files starting from No.1 to No.10 with a &lt;code&gt;.js&lt;/code&gt; extention&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;Username@deviceName ~ root directory
&lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; file1.js file2.js file3.js file4.js file5.js file6.js file7.js file8.js file9.js file10.js 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;em&gt;The intention is to make the users work more convenient and faster&lt;/em&gt;&lt;/p&gt;

</description>
      <category>linux</category>
      <category>cli</category>
      <category>files</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
