<?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: Shubham kumar singh</title>
    <description>The latest articles on DEV Community by Shubham kumar singh (@shubkumar).</description>
    <link>https://dev.to/shubkumar</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%2F883476%2F6797399a-abc0-4bbb-9631-c2c8b9240d3e.png</url>
      <title>DEV Community: Shubham kumar singh</title>
      <link>https://dev.to/shubkumar</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/shubkumar"/>
    <language>en</language>
    <item>
      <title>GrassMate: An AI Outdoor Companion That Tells You to Put Your Phone Away</title>
      <dc:creator>Shubham kumar singh</dc:creator>
      <pubDate>Fri, 09 Oct 2026 14:06:23 +0000</pubDate>
      <link>https://dev.to/shubkumar/grassmate-an-ai-outdoor-companion-that-tells-you-to-put-your-phone-away-44f6</link>
      <guid>https://dev.to/shubkumar/grassmate-an-ai-outdoor-companion-that-tells-you-to-put-your-phone-away-44f6</guid>
      <description>&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;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;🌿 &lt;strong&gt;GrassMate — Your AI-Powered Outdoor Companion&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;GrassMate turns your free time into a personalized outdoor mission. It helps people spend less time staring at screens and more time exploring the outdoors.&lt;/p&gt;

&lt;p&gt;Users select their available time, preferred activity, interests, and mission style. GrassMate generates a personalized outdoor mission with a warm-up, main activity, and cooldown, along with relevant California State Parks route recommendations.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;Personalized missions for walking, hiking, running, cycling, exploring, and relaxing.&lt;/li&gt;
&lt;li&gt;Interest-based challenges for nature, adventure, fitness, wildlife, and photography.&lt;/li&gt;
&lt;li&gt;Flexible time planning based on the user's available time.&lt;/li&gt;
&lt;li&gt;Semantic trail search using embeddings and vector similarity.&lt;/li&gt;
&lt;li&gt;Optional location-aware search using manually entered coordinates.&lt;/li&gt;
&lt;li&gt;A phone-away philosophy: get your mission, put your phone away, and go outside.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;GrassMate is built for anyone who wants inspiration to step away from their screen and experience the outdoors.&lt;/p&gt;

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

&lt;p&gt;Screenshots of the working Streamlit application:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. GrassMate Interface&lt;/strong&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fgoea3wscgvskf21adtrw.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%2Fgoea3wscgvskf21adtrw.png" alt="GrassMate Interface" width="800" height="669"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Personalized Outdoor Mission&lt;/strong&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fni6j5i5xqsht2pbyo4c5.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%2Fni6j5i5xqsht2pbyo4c5.png" alt="Personalized Mission" width="800" height="727"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Trail Recommendations&lt;/strong&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fvf4acwqdelpw0pcspl8t.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%2Fvf4acwqdelpw0pcspl8t.png" alt="Trail Recommendations" width="780" height="816"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The application currently runs locally and is not publicly deployed. To run it, follow the setup instructions in the &lt;a href="https://github.com/Shubhamkumar-op/GrassMate/blob/main/README.md" rel="noopener noreferrer"&gt;README&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Code
&lt;/h2&gt;

&lt;p&gt;🌿 &lt;strong&gt;GitHub Repository:&lt;/strong&gt; &lt;a href="https://github.com/Shubhamkumar-op/GrassMate" rel="noopener noreferrer"&gt;https://github.com/Shubhamkumar-op/GrassMate&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;📸 &lt;strong&gt;Screenshots:&lt;/strong&gt; &lt;a href="https://github.com/Shubhamkumar-op/GrassMate/tree/main/screenshots" rel="noopener noreferrer"&gt;https://github.com/Shubhamkumar-op/GrassMate/tree/main/screenshots&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The repository contains the Streamlit interface, AI mission-generation logic, semantic retrieval components, database integration, and setup instructions.&lt;/p&gt;

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

&lt;p&gt;GrassMate combines open-weight AI, semantic search, vector storage, and an interactive web interface.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Technology stack:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Python&lt;/strong&gt; — application logic and time-plan generation.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Streamlit&lt;/strong&gt; — interactive user interface.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ollama + Gemma 3 4B&lt;/strong&gt; — local AI mission generation.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sentence Transformers&lt;/strong&gt; — embedding generation.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;BAAI/bge-base-en-v1.5&lt;/strong&gt; — semantic search embeddings.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tiger Cloud PostgreSQL&lt;/strong&gt; — storage for route records and embeddings.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;pgvector&lt;/strong&gt; — vector similarity search.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;psycopg and python-dotenv&lt;/strong&gt; — database connectivity and environment configuration.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;How it works:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Users select an activity, interest, mission style, and available time.&lt;/li&gt;
&lt;li&gt;GrassMate creates a semantic search query from their preferences.&lt;/li&gt;
&lt;li&gt;BGE generates an embedding for the query.&lt;/li&gt;
&lt;li&gt;PostgreSQL and pgvector retrieve relevant route records.&lt;/li&gt;
&lt;li&gt;Gemma generates instructions for the warm-up, main activity, and cooldown.&lt;/li&gt;
&lt;li&gt;Python manages the time allocation and assembles the final mission.&lt;/li&gt;
&lt;li&gt;Streamlit displays the mission and associated route information.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I also implemented fallback instructions so the app can still generate a useful mission if the AI response fails or cannot be parsed.&lt;/p&gt;

&lt;p&gt;The route data comes from California State Parks recreational routes. These records represent route segments, not necessarily complete trails, so their recorded lengths should not be mistaken for total trail distances.&lt;/p&gt;

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

&lt;p&gt;Open innovation gave me the flexibility to build an AI application using tools I can inspect, run, and adapt.&lt;/p&gt;

&lt;p&gt;Using Gemma 3 4B through Ollama allows mission generation to run locally rather than requiring a proprietary hosted language-model API for every generation request. This makes experimentation with prompts and application logic more accessible.&lt;/p&gt;

&lt;p&gt;The BGE embedding model and pgvector also make it possible to retrieve route records by semantic similarity instead of relying only on exact keyword matches.&lt;/p&gt;

&lt;p&gt;Combining these tools allowed me to build a complete AI-powered application using open technologies while retaining control over how its components work together.&lt;/p&gt;

&lt;p&gt;GrassMate is not fully offline because route retrieval depends on the configured PostgreSQL database service. Its route coverage is also limited to the available California dataset, and users should always verify local trail conditions and safety information.&lt;/p&gt;

&lt;p&gt;My goal is to use AI to help people discover what they can do outdoors—and then encourage them to put the technology away.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Get your mission. Put your phone away. Touch grass. 🌿&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  My Agent Session
&lt;/h2&gt;

&lt;p&gt;I haven't recorded a DevRelay agent session for this project yet.&lt;/p&gt;

&lt;h2&gt;
  
  
  Prize Categories
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Best Use of Gemma&lt;/strong&gt; — Gemma 3 4B generates personalized outdoor mission instructions through Ollama.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Best Use of Tiger Data&lt;/strong&gt; — Tiger Cloud PostgreSQL and pgvector power semantic retrieval over route records and embeddings.&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Hacktoberfest #hf26challenge #devchallenge #OpenSourceAI #Gemma #TigerData #Python #Streamlit
&lt;/h1&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>Made a Disease prediction web app</title>
      <dc:creator>Shubham kumar singh</dc:creator>
      <pubDate>Sun, 16 Apr 2023 04:57:29 +0000</pubDate>
      <link>https://dev.to/shubkumar/made-a-disease-prediction-web-app-4h5e</link>
      <guid>https://dev.to/shubkumar/made-a-disease-prediction-web-app-4h5e</guid>
      <description>&lt;p&gt;Made a Disease prediction app using streamlit and regression machine learning models&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%2Fzvde7omthnzy9nbw4w82.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%2Fzvde7omthnzy9nbw4w82.png" alt=" " width="799" height="370"&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/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgx5nzn5mx3vzrrjuur8u.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%2Fgx5nzn5mx3vzrrjuur8u.png" alt=" " width="800" height="368"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>python</category>
      <category>machinelearning</category>
    </item>
  </channel>
</rss>
