<?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: neerajsbhandari27</title>
    <description>The latest articles on DEV Community by neerajsbhandari27 (@neerajsbhandari27).</description>
    <link>https://dev.to/neerajsbhandari27</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%2F4175441%2F523b254e-efcc-48c9-9702-062a4469ef1b.png</url>
      <title>DEV Community: neerajsbhandari27</title>
      <link>https://dev.to/neerajsbhandari27</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/neerajsbhandari27"/>
    <language>en</language>
    <item>
      <title>FitQuest AI: Turning Screen Time into Outdoor Adventures with Local Open-Source AI</title>
      <dc:creator>neerajsbhandari27</dc:creator>
      <pubDate>Sun, 11 Oct 2026 04:56:04 +0000</pubDate>
      <link>https://dev.to/neerajsbhandari27/fitquest-ai-turning-screen-time-into-outdoor-adventures-with-local-open-source-ai-1763</link>
      <guid>https://dev.to/neerajsbhandari27/fitquest-ai-turning-screen-time-into-outdoor-adventures-with-local-open-source-ai-1763</guid>
      <description>&lt;h1&gt;
  
  
  FitQuest AI 🌿 — Real Quests. Healthier You.
&lt;/h1&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;What if your fitness app rewarded you for spending less time on your phone?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
FitQuest AI uses local AI to turn outdoor movement into bite-sized quests—then encourages you to put your screen away and enjoy the real world.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/cover-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/cover-image.png" alt="FitQuest AI cover" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-week1-2026-10-05"&gt;Hacktoberfest Open-Source AI Challenge — Week 1: Touch Grass&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Demo:&lt;/strong&gt; &lt;a href="https://drive.google.com/file/d/1VJUYdbomjBwQZYfRY70__1XXrKSOajDo/view?usp=drive_link" rel="noopener noreferrer"&gt;Video demo / screenshots&lt;/a&gt; · &lt;strong&gt;Code:&lt;/strong&gt; &lt;a href="https://github.com/neerajsbhandari27/FitQuest" rel="noopener noreferrer"&gt;GitHub repository&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;&lt;em&gt;FitQuest AI&lt;/em&gt; is a privacy-conscious, gamified outdoor fitness app powered by a local open-weight AI model. It is designed to help developers and desk workers step away from their monitors and get outside.&lt;/p&gt;

&lt;p&gt;Instead of focusing on endless metrics on a phone, FitQuest AI turns walks, runs, hikes, and cycling sessions into small RPG-style quests. Generate a quest, head outdoors, then return to log your activity, earn XP, unlock achievements—including a “Touch Grass” milestone—and share your progress with friends.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;🌿 &lt;strong&gt;AI Quest Generator:&lt;/strong&gt; Generates structured outdoor challenges tailored to a fitness goal, experience level, and recent activity.&lt;/li&gt;
&lt;li&gt;💬 &lt;strong&gt;Interactive AI Coach:&lt;/strong&gt; Offers conversational guidance around pacing, recovery, and building consistent habits.&lt;/li&gt;
&lt;li&gt;🏆 &lt;strong&gt;Gamified Progression:&lt;/strong&gt; Earn XP, level up, track streaks, complete quests, and unlock milestone achievements.&lt;/li&gt;
&lt;li&gt;📸 &lt;strong&gt;Trail Photos &amp;amp; Story Cards:&lt;/strong&gt; Add outdoor photos to workouts and create shareable story cards for platforms such as WhatsApp, Instagram, and X.&lt;/li&gt;
&lt;li&gt;🔒 &lt;strong&gt;Local AI Inference:&lt;/strong&gt; Uses Ollama with &lt;code&gt;qwen2.5:3b&lt;/code&gt;, avoiding a dependency on a hosted AI inference API for the core generation workflow.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What Makes FitQuest AI Different?
&lt;/h2&gt;

&lt;p&gt;Most fitness apps encourage you to spend more time looking at your screen. FitQuest AI takes the opposite approach: use AI to plan your next outdoor adventure, then put your phone away and go experience it.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;AI with a purpose:&lt;/strong&gt; Generate structured, actionable quests instead of generic fitness advice.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Progress without pressure:&lt;/strong&gt; XP, levels, streaks, and achievements make consistency rewarding.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Privacy-conscious by design:&lt;/strong&gt; Local inference helps keep workout context away from third-party cloud AI inference services.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Built for exploration:&lt;/strong&gt; Walking, running, cycling, and hiking become small adventures instead of another task on a to-do list.&lt;/li&gt;
&lt;/ul&gt;

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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Video demo / screenshots:&lt;/strong&gt; &lt;a href="https://drive.google.com/file/d/1VJUYdbomjBwQZYfRY70__1XXrKSOajDo/view?usp=drive_link" rel="noopener noreferrer"&gt;Watch the demo&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Source code:&lt;/strong&gt; &lt;a href="https://github.com/neerajsbhandari27/FitQuest" rel="noopener noreferrer"&gt;GitHub — FitQuest&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Tip:&lt;/strong&gt; Add a screenshot of the dashboard and an example AI-generated quest here if they are available. They help readers quickly understand the experience before watching the video.&lt;/p&gt;
&lt;/blockquote&gt;

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

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Component&lt;/th&gt;
&lt;th&gt;Technology&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Backend API&lt;/td&gt;
&lt;td&gt;FastAPI&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Database / ORM&lt;/td&gt;
&lt;td&gt;SQLite and SQLAlchemy&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Frontend&lt;/td&gt;
&lt;td&gt;React, Vite, Lucide icons&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Local AI runtime&lt;/td&gt;
&lt;td&gt;Ollama&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;AI model&lt;/td&gt;
&lt;td&gt;&lt;code&gt;qwen2.5:3b&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Data validation&lt;/td&gt;
&lt;td&gt;Pydantic&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Story card rendering&lt;/td&gt;
&lt;td&gt;HTML Canvas&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  How I Built It
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Local inference engine
&lt;/h3&gt;

&lt;p&gt;Rather than relying on a hosted AI inference API, the backend connects to an open-weight model (&lt;code&gt;qwen2.5:3b&lt;/code&gt;) through Ollama. Pydantic validates the generated structured data before it is used by the application, helping keep AI output predictable.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Context-aware coaching
&lt;/h3&gt;

&lt;p&gt;The coach can use workout context, explorer progress, and perceived-effort information to make its responses more relevant. Chat history is stored in SQLite so the application can retain conversation context locally.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Deterministic gamification
&lt;/h3&gt;

&lt;p&gt;The language model generates quest content, but important game rules—such as XP rewards, quest completion, levels, streaks, and achievements—are handled by backend logic. This keeps progression consistent rather than asking the model to decide application state.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Client-side story cards
&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fk7zir2njw6a3yjxmtxoa.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%2Fk7zir2njw6a3yjxmtxoa.png" alt=" " width="800" height="1050"&gt;&lt;/a&gt;&lt;br&gt;
The frontend uses an HTML Canvas-based renderer to combine a trail photo, workout stats, and XP details into a shareable image in the browser, without requiring server-side image rendering.&lt;/p&gt;
&lt;h2&gt;
  
  
  Challenges &amp;amp; Learnings
&lt;/h2&gt;

&lt;p&gt;Building FitQuest AI involved more than connecting a language model to a fitness app.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Structured AI output:&lt;/strong&gt; LLM responses can be inconsistent, so I used Pydantic validation to turn generated quest data into typed, predictable objects.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Running AI locally:&lt;/strong&gt; Integrating Ollama with a lightweight model makes local inference practical on suitable hardware without a dedicated GPU, though performance depends on the machine.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reliable gamification:&lt;/strong&gt; XP rewards and quest progression are handled by deterministic backend logic instead of being left to the LLM.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Full-stack integration:&lt;/strong&gt; I connected a FastAPI backend and SQLite database to a React frontend to bring AI-generated quests and fitness progress into one application.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The biggest lesson was that AI applications need more than a good prompt: they need validation, predictable business logic, and a user experience that makes the AI genuinely useful.&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%2F3mvtsqsxsa74oz1onh61.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%2F3mvtsqsxsa74oz1onh61.png" alt=" " width="800" height="394"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Run It Locally
&lt;/h2&gt;

&lt;p&gt;The project uses a local Ollama model, so the first setup requires downloading the model. Commands below are a starting point; check the repository for the latest project-specific setup instructions.&lt;/p&gt;
&lt;h3&gt;
  
  
  Prerequisites
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Python 3.12 or a compatible Python version&lt;/li&gt;
&lt;li&gt;Node.js and npm&lt;/li&gt;
&lt;li&gt;&lt;a href="https://ollama.com/" rel="noopener noreferrer"&gt;Ollama&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Git&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  1. Clone the repository
&lt;/h3&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/neerajsbhandari27/FitQuest.git
&lt;span class="nb"&gt;cd &lt;/span&gt;FitQuest
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h3&gt;
  
  
  2. Download the AI model
&lt;/h3&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ollama pull qwen2.5:3b
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Make sure Ollama is running before testing AI-powered features.&lt;/p&gt;
&lt;h3&gt;
  
  
  3. Start the backend
&lt;/h3&gt;

&lt;p&gt;Follow the backend setup instructions in the repository. A typical FastAPI workflow looks like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cd &lt;/span&gt;backend
python &lt;span class="nt"&gt;-m&lt;/span&gt; venv .venv
&lt;span class="nb"&gt;source&lt;/span&gt; .venv/bin/activate
pip &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-r&lt;/span&gt; requirements.txt
uvicorn app.main:app &lt;span class="nt"&gt;--reload&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If the repository uses a different dependency file or startup command, follow its current instructions.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Start the frontend
&lt;/h3&gt;

&lt;p&gt;In a second terminal, use the frontend directory name as it appears in the repository. For a Vite app, the commands are typically:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cd &lt;/span&gt;Frontend
npm &lt;span class="nb"&gt;install
&lt;/span&gt;npm run dev
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Open the local URL printed by Vite in your terminal. Check the repository's README for the exact API URL configuration and any additional setup.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Does Open Innovation Matter?
&lt;/h2&gt;

&lt;p&gt;Open-source AI is important to FitQuest AI for three reasons:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Personal data privacy:&lt;/strong&gt; Workout notes, perceived exertion, and activity history can be sensitive. Local inference can keep that context off third-party cloud AI services.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Lower ongoing inference costs:&lt;/strong&gt; Running a local model avoids per-request hosted AI inference charges, although hardware, electricity, and internet access for initial downloads may still have costs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;More control:&lt;/strong&gt; Developers can inspect, adapt, and run the AI workflow on their own machines. Core local features can work without an internet connection once dependencies and model files are installed, provided the app does not rely on external services for that workflow.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Open innovation proves that AI doesn't need to keep us trapped in digital feeds—it can be the gentle nudge that helps us disconnect and touch grass.&lt;/p&gt;

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

&lt;p&gt;FitQuest AI is an evolving project. Potential next steps include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Smarter personalization:&lt;/strong&gt; Adapt quests using activity history, difficulty preferences, and consistency over time.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Richer outdoor adventures:&lt;/strong&gt; Add themed quest chains, exploration milestones, and multi-day challenges.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Improved progress sharing:&lt;/strong&gt; Expand customizable story cards for celebrating achievements with friends.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Community contributions:&lt;/strong&gt; Welcome bug reports, documentation improvements, UI enhancements, and new feature ideas.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Contributing
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Team:&lt;/strong&gt; Built collaboratively with &lt;a href="https://dev.to/mukesh_kumar_18d186c6e486"&gt;@mukesh_kumar_18d186c6e486&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;FitQuest AI is open source under the &lt;strong&gt;MIT License&lt;/strong&gt;. Explore the &lt;a href="https://github.com/neerajsbhandari27/FitQuest" rel="noopener noreferrer"&gt;GitHub repository&lt;/a&gt;, try it locally, and share feedback or ideas. Before submitting, check the repository for its contribution instructions and existing issues.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final Thought
&lt;/h2&gt;

&lt;p&gt;Technology should help us live better—not just keep us online longer. FitQuest AI turns a little AI-generated motivation into a reason to step outside, move, explore, and &lt;strong&gt;touch grass&lt;/strong&gt;. 🌱&lt;/p&gt;

</description>
      <category>hf26challenge</category>
      <category>ai</category>
      <category>opensource</category>
      <category>devchallenge</category>
    </item>
  </channel>
</rss>
