<?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: John Samuel</title>
    <description>The latest articles on DEV Community by John Samuel (@codegallantx).</description>
    <link>https://dev.to/codegallantx</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1165973%2F90a61e63-7561-4cce-861f-0da571ddc8a3.png</url>
      <title>DEV Community: John Samuel</title>
      <link>https://dev.to/codegallantx</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/codegallantx"/>
    <language>en</language>
    <item>
      <title>I got tired of setting up Django projects, so I built Okepy 🦓</title>
      <dc:creator>John Samuel</dc:creator>
      <pubDate>Sun, 19 Jul 2026 20:46:07 +0000</pubDate>
      <link>https://dev.to/codegallantx/i-got-tired-of-setting-up-django-projects-so-i-built-okepy-2bbh</link>
      <guid>https://dev.to/codegallantx/i-got-tired-of-setting-up-django-projects-so-i-built-okepy-2bbh</guid>
      <description>&lt;p&gt;Every time I started a new Python backend project, I found myself doing the same things over and over again.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Create a virtual environment.&lt;/li&gt;
&lt;li&gt;Install dependencies.&lt;/li&gt;
&lt;li&gt;Create the project.&lt;/li&gt;
&lt;li&gt;Configure settings.&lt;/li&gt;
&lt;li&gt;Add authentication.&lt;/li&gt;
&lt;li&gt;Configure JWT.&lt;/li&gt;
&lt;li&gt;Add CORS.&lt;/li&gt;
&lt;li&gt;Set up Docker.&lt;/li&gt;
&lt;li&gt;Configure Swagger.&lt;/li&gt;
&lt;li&gt;Wire everything together.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;None of these tasks are difficult—they're just repetitive.&lt;/p&gt;

&lt;p&gt;Then I thought:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;What if Python had something that felt like &lt;code&gt;create-vite&lt;/code&gt;?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That's how &lt;strong&gt;Okepy&lt;/strong&gt; was born.&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fg0ho4x1u4efzendb1vxf.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fg0ho4x1u4efzendb1vxf.png" alt=" " width="800" height="416"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Okepy is a CLI that helps you scaffold production-ready Python backend projects in seconds.&lt;/p&gt;

&lt;p&gt;Instead of manually setting everything up, you answer a few interactive questions, and Okepy generates a ready-to-use project.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;uvx okepy create
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You'll be guided through a setup like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;◇ What are you building?
│ API
│ Full-stack SSR
│ Hybrid

◇ Framework?
│ Django
│ FastAPI
│ Flask

◇ Authentication?
☑ Email &amp;amp; Password
☑ Google
☑ GitHub
☑ JWT

◇ Database?
PostgreSQL
SQLite
MySQL
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then Okepy handles the tedious setup for you.&lt;/p&gt;

&lt;h2&gt;
  
  
  The vision
&lt;/h2&gt;

&lt;p&gt;I don't want this to become &lt;em&gt;another Django boilerplate&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;The goal is much bigger.&lt;/p&gt;

&lt;p&gt;I want Okepy to become the modern starting point for Python backend development—the equivalent of what Vite did for frontend projects.&lt;/p&gt;

&lt;p&gt;Eventually it will support multiple frameworks including:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Django&lt;/li&gt;
&lt;li&gt;FastAPI&lt;/li&gt;
&lt;li&gt;Flask&lt;/li&gt;
&lt;li&gt;Litestar&lt;/li&gt;
&lt;li&gt;Quart&lt;/li&gt;
&lt;li&gt;Sanic&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;with modular features like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Authentication&lt;/li&gt;
&lt;li&gt;Social login&lt;/li&gt;
&lt;li&gt;JWT&lt;/li&gt;
&lt;li&gt;Docker&lt;/li&gt;
&lt;li&gt;Celery&lt;/li&gt;
&lt;li&gt;Redis&lt;/li&gt;
&lt;li&gt;Storage providers&lt;/li&gt;
&lt;li&gt;Payments&lt;/li&gt;
&lt;li&gt;Testing&lt;/li&gt;
&lt;li&gt;CI/CD&lt;/li&gt;
&lt;li&gt;and much more.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Everything is designed to be modular so contributors can add new features without touching the core.&lt;/p&gt;

&lt;h2&gt;
  
  
  A small detail I'm excited about
&lt;/h2&gt;

&lt;p&gt;One feature I'm particularly happy with is the generated development welcome page.&lt;/p&gt;

&lt;p&gt;Instead of Django's default "It worked!" page, Okepy generates a clean developer dashboard showing:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;project information&lt;/li&gt;
&lt;li&gt;installed features&lt;/li&gt;
&lt;li&gt;quick links to the Admin panel&lt;/li&gt;
&lt;li&gt;API documentation&lt;/li&gt;
&lt;li&gt;ReDoc&lt;/li&gt;
&lt;li&gt;useful getting-started actions&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It's a small touch, but it makes a new project feel polished from the very first run.&lt;/p&gt;

&lt;h2&gt;
  
  
  It's open source
&lt;/h2&gt;

&lt;p&gt;I'm building Okepy in the open and I'd love feedback from the Python community.&lt;/p&gt;

&lt;p&gt;Whether you have ideas, want to report issues, improve the documentation, or contribute code, you're welcome.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;PyPI&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://pypi.org/project/okepy" rel="noopener noreferrer"&gt;https://pypi.org/project/okepy/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GitHub&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/Okapi-Labs/okepy" rel="noopener noreferrer"&gt;https://github.com/Okapi-Labs/okepy&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you've ever wished Python had its own "create-vite", I'd love to hear what features you'd want to see.&lt;/p&gt;

&lt;p&gt;Let's build it together. 🚀&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>python</category>
      <category>django</category>
      <category>buildinpublic</category>
    </item>
    <item>
      <title>Building PathFindr: An AI-Powered Campus Navigation App with Expo and Sarvam AI</title>
      <dc:creator>John Samuel</dc:creator>
      <pubDate>Mon, 13 Jul 2026 17:34:37 +0000</pubDate>
      <link>https://dev.to/codegallantx/building-pathfindr-an-ai-powered-campus-navigation-app-with-expo-and-sarvam-ai-3l8e</link>
      <guid>https://dev.to/codegallantx/building-pathfindr-an-ai-powered-campus-navigation-app-with-expo-and-sarvam-ai-3l8e</guid>
      <description>&lt;p&gt;Navigating a large university campus can be overwhelming, especially for new students, visitors, and even returning students attending classes in unfamiliar buildings. Finding lecture halls, administrative offices, laboratories, libraries, or student service centers often involves asking for directions or wasting valuable time.&lt;/p&gt;

&lt;p&gt;To address this challenge, we built &lt;strong&gt;PathFindr&lt;/strong&gt;—an AI-powered mobile campus navigation application designed to make navigating university campuses simple, intuitive, and accessible.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Problem
&lt;/h2&gt;

&lt;p&gt;University campuses are often spread across multiple buildings with hundreds of classrooms, offices, and facilities. While popular mapping services provide general directions, they rarely include detailed campus information such as lecture halls, department offices, printing centers, or student service locations.&lt;/p&gt;

&lt;p&gt;This creates unnecessary confusion, especially during the first few weeks of every academic session when thousands of new students are trying to find their way around campus.&lt;/p&gt;

&lt;h2&gt;
  
  
  Our Solution
&lt;/h2&gt;

&lt;p&gt;PathFindr combines interactive campus maps, intelligent search, and conversational AI into a single mobile experience.&lt;/p&gt;

&lt;p&gt;Instead of relying on static maps or asking strangers for directions, users can search for any campus location and receive clear navigation guidance directly from their phones.&lt;/p&gt;

&lt;p&gt;We're also integrating &lt;strong&gt;Sarvam AI&lt;/strong&gt; to power an intelligent &lt;strong&gt;Campus AI Guide&lt;/strong&gt;. Rather than navigating through multiple menus, users will be able to ask questions naturally, such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;"How do I get to the ICT Centre?"&lt;/li&gt;
&lt;li&gt;"Where is Engineering Block B?"&lt;/li&gt;
&lt;li&gt;"Where can I print documents?"&lt;/li&gt;
&lt;li&gt;"What's the fastest route to the Library?"&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The AI will understand user intent, answer campus-related questions, and provide contextual navigation assistance, making the experience more natural and accessible.&lt;/p&gt;

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

&lt;p&gt;PathFindr is built using modern technologies that enable a fast, scalable, and cross-platform experience.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Expo&lt;/li&gt;
&lt;li&gt;React Native&lt;/li&gt;
&lt;li&gt;TypeScript&lt;/li&gt;
&lt;li&gt;Django&lt;/li&gt;
&lt;li&gt;Django REST Framework&lt;/li&gt;
&lt;li&gt;Google Maps Platform&lt;/li&gt;
&lt;li&gt;Sarvam AI&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Implementation
&lt;/h2&gt;

&lt;p&gt;PathFindr follows a client-server architecture.&lt;/p&gt;

&lt;p&gt;The mobile application is built with &lt;strong&gt;Expo&lt;/strong&gt; and &lt;strong&gt;React Native&lt;/strong&gt;, allowing us to deliver a high-quality native experience across Android and iOS from a single codebase.&lt;/p&gt;

&lt;p&gt;The backend is built with &lt;strong&gt;Django&lt;/strong&gt; and &lt;strong&gt;Django REST Framework&lt;/strong&gt;, exposing REST APIs that manage campus locations, buildings, landmarks, search functionality, and other application data.&lt;/p&gt;

&lt;p&gt;Google Maps powers the interactive map experience and routing, while Sarvam AI is being integrated to provide a conversational Campus AI Guide capable of understanding natural language questions and assisting users with campus navigation.&lt;/p&gt;

&lt;p&gt;This modular architecture makes the application scalable and allows each component to evolve independently.&lt;/p&gt;

&lt;h2&gt;
  
  
  Challenges
&lt;/h2&gt;

&lt;p&gt;Building PathFindr presented several interesting challenges.&lt;/p&gt;

&lt;p&gt;The first was designing a navigation experience that remains simple and intuitive despite the complexity of a university campus.&lt;/p&gt;

&lt;p&gt;Another challenge was organizing campus data in a way that allows users to quickly discover buildings, departments, offices, and facilities without becoming overwhelmed.&lt;/p&gt;

&lt;p&gt;We're also working on making AI responses contextual rather than generic, ensuring that the assistant understands campus-specific questions and provides useful, actionable guidance.&lt;/p&gt;

&lt;p&gt;Finally, balancing interactive maps, intelligent search, and conversational AI within a clean mobile interface required careful attention to user experience and performance.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Expo?
&lt;/h2&gt;

&lt;p&gt;Expo has been instrumental in accelerating development by providing a smooth development workflow and access to native device capabilities without sacrificing developer productivity.&lt;/p&gt;

&lt;p&gt;Its tooling allows us to rapidly build, test, iterate, and deploy a polished cross-platform mobile application while integrating features such as location services, navigation, and other native APIs essential to the PathFindr experience.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Sarvam AI?
&lt;/h2&gt;

&lt;p&gt;Our goal isn't simply to add a chatbot.&lt;/p&gt;

&lt;p&gt;We're integrating Sarvam AI to create an intelligent campus assistant that understands natural language and helps users navigate campus more efficiently.&lt;/p&gt;

&lt;p&gt;By combining AI with navigation, PathFindr becomes more than a map—it becomes a digital campus companion capable of answering questions, recommending locations, and guiding users through unfamiliar environments.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's Next?
&lt;/h2&gt;

&lt;p&gt;We're continuing to improve PathFindr with smarter navigation, richer campus information, enhanced search capabilities, and a more capable AI assistant.&lt;/p&gt;

&lt;p&gt;Our vision is to make exploring a university campus as simple as asking a question.&lt;/p&gt;

&lt;p&gt;Future improvements include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Personalized navigation based on user preferences.&lt;/li&gt;
&lt;li&gt;Offline campus maps for areas with poor internet connectivity.&lt;/li&gt;
&lt;li&gt;Voice-powered navigation using Sarvam AI.&lt;/li&gt;
&lt;li&gt;Event and timetable-aware route recommendations.&lt;/li&gt;
&lt;li&gt;Accessibility-friendly routing for users with mobility needs.&lt;/li&gt;
&lt;li&gt;Indoor navigation for large academic buildings.&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;PathFindr demonstrates how mobile technology and AI can work together to solve a real-world problem experienced by thousands of students every day.&lt;/p&gt;

&lt;p&gt;By combining Expo's mobile capabilities with Sarvam AI's conversational intelligence, we're building a smarter, more accessible way to navigate university campuses.&lt;/p&gt;

&lt;p&gt;We're excited to continue improving PathFindr and showcase it at &lt;strong&gt;HACKHAZARDS '26&lt;/strong&gt;.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>mobile</category>
      <category>reactnative</category>
      <category>showdev</category>
    </item>
    <item>
      <title>Stateless LLMs Are a Problem for EdTech — Here's How I Fixed It With a Graph-Vector Memory Layer</title>
      <dc:creator>John Samuel</dc:creator>
      <pubDate>Sun, 05 Jul 2026 16:56:52 +0000</pubDate>
      <link>https://dev.to/codegallantx/stateless-llms-are-a-problem-for-edtech-heres-how-i-fixed-it-with-a-graph-vector-memory-layer-1b1b</link>
      <guid>https://dev.to/codegallantx/stateless-llms-are-a-problem-for-edtech-heres-how-i-fixed-it-with-a-graph-vector-memory-layer-1b1b</guid>
      <description>&lt;h2&gt;
  
  
  The problem
&lt;/h2&gt;

&lt;p&gt;Every AI study tool I'd used had the same flaw: total amnesia. Ask it about your exam today, come back tomorrow, and it's a blank slate. No memory of what you struggled with last week, what topics you already know cold, or when your next exam actually is.&lt;/p&gt;

&lt;p&gt;For "The Hangover Part AI" hackathon by WeMakeDevs, powered by Cognee, I decided to fix that for students specifically. The result is &lt;strong&gt;Summa AI&lt;/strong&gt; — a learning companion built around persistent memory instead of stateless chat.&lt;/p&gt;

&lt;h2&gt;
  
  
  What it does
&lt;/h2&gt;

&lt;p&gt;Summa AI is a Next.js frontend paired with a FastAPI backend, with Cognee as the memory layer running underneath everything:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A chat workspace that keeps context across sessions instead of resetting every time&lt;/li&gt;
&lt;li&gt;Proactive exam check-ins pulled from stored exam data&lt;/li&gt;
&lt;li&gt;Knowledge gap detection — surfacing weak topics and missing prerequisites before they become a problem&lt;/li&gt;
&lt;li&gt;A Proficiency Hexagon in the dashboard, visualizing where you actually stand across topics&lt;/li&gt;
&lt;li&gt;Adaptive study plans that respond to what you already know, not a generic curriculum&lt;/li&gt;
&lt;li&gt;A &lt;code&gt;forget()&lt;/code&gt; step for mastered topics, so the memory layer stays sharp instead of bloated&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How Cognee powers it
&lt;/h2&gt;

&lt;p&gt;I leaned on all four parts of Cognee's memory lifecycle:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;remember()&lt;/strong&gt; — every conversation, exam, and study artifact gets written into its own Cognee dataset. A &lt;code&gt;remember_conversation()&lt;/code&gt; call stores the query + response summary; &lt;code&gt;remember_exam()&lt;/code&gt; stores course, exam type, date, and topics; &lt;code&gt;remember_learning_progress()&lt;/code&gt; stores topic-level scores.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;recall()&lt;/strong&gt; — this is the read path behind almost every feature: chat context lookup, exam reminders, saved artifacts, and the hexagon dimensions in the dashboard all route through it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;improve()&lt;/strong&gt; — triggered right after new progress is recorded, or when a user gives feedback on a response, so the memory consolidates instead of just accumulating.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;forget()&lt;/strong&gt; — lets a student explicitly clear a mastered topic, or wipe a whole dataset, so old noise doesn't crowd out what's actually relevant.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I'd build next
&lt;/h2&gt;

&lt;p&gt;Deeper graph traversal for concept-map style prerequisite chains, and tighter feedback loops so &lt;code&gt;improve()&lt;/code&gt; reacts to more signals than just explicit ratings.&lt;/p&gt;

&lt;p&gt;Built for students first — because the thing that should never have amnesia is the tool that's supposed to know how you learn.&lt;/p&gt;

&lt;h1&gt;
  
  
  WeMakeDevs #Cognee #TheHangoverPartAI #buildinpublic #nextjs #fastapi
&lt;/h1&gt;

</description>
      <category>ai</category>
      <category>llm</category>
      <category>rag</category>
      <category>showdev</category>
    </item>
  </channel>
</rss>
