<?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: Yabrij01</title>
    <description>The latest articles on DEV Community by Yabrij01 (@ybrijwasi1010).</description>
    <link>https://dev.to/ybrijwasi1010</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%2F2442423%2Fd5a800d9-57b1-4a97-ada8-33cb08a48375.jpg</url>
      <title>DEV Community: Yabrij01</title>
      <link>https://dev.to/ybrijwasi1010</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ybrijwasi1010"/>
    <language>en</language>
    <item>
      <title>Plan My Day — Private Offline AI Timetable Planner</title>
      <dc:creator>Yabrij01</dc:creator>
      <pubDate>Sun, 04 Oct 2026 14:29:38 +0000</pubDate>
      <link>https://dev.to/ybrijwasi1010/plan-my-day-private-offline-ai-timetable-planner-jlg</link>
      <guid>https://dev.to/ybrijwasi1010/plan-my-day-private-offline-ai-timetable-planner-jlg</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-weekend-2026-10-01"&gt;Hacktoberfest Weekend Challenge: Build for a Friend&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Plan My Day — A Private Offline AI Timetable Planner
&lt;/h1&gt;

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

&lt;p&gt;&lt;strong&gt;Plan My Day&lt;/strong&gt; is a private, offline timetable planner that I built for a friend who has to fit a long to-do list around a fixed daily routine.&lt;/p&gt;

&lt;p&gt;The user enters fixed commitments such as classes, meals and gym sessions, along with the tasks they need to complete. A locally hosted language model turns this information into a structured, time-blocked schedule.&lt;/p&gt;

&lt;p&gt;The planner tries to respect fixed commitments and place demanding tasks within the user's preferred focus period whenever possible.&lt;/p&gt;

&lt;p&gt;When plans change, the user can describe the change in plain language, such as &lt;strong&gt;"move gym to the evening,"&lt;/strong&gt; and the timetable is regenerated.&lt;/p&gt;

&lt;p&gt;The main idea was to build something genuinely useful for a real person while keeping their daily routine private.&lt;/p&gt;

&lt;p&gt;Nothing leaves the device. The schedule and personal routine are processed locally using &lt;strong&gt;Gemma through Ollama&lt;/strong&gt;.&lt;/p&gt;

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

&lt;p&gt;I tested Plan My Day with my friend using their real schedule, including their fixed commitments, actual tasks and preferred focus period.&lt;/p&gt;

&lt;p&gt;I first generated a timetable from their inputs and then tested the natural-language editing feature by asking the planner to modify the schedule.&lt;/p&gt;

&lt;p&gt;The screenshot below shows the Plan My Day interface and the generated timetable.&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%2Fu1r8wptzhrexakkd680e.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%2Fu1r8wptzhrexakkd680e.png" alt="Plan My Day using Gemma locally" width="800" height="711"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Plan My Day — generating a personalized timetable using a locally running Gemma model.&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;The complete source code is available on GitHub:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://github.com/yaansa/planmyday" rel="noopener noreferrer"&gt;https://github.com/yaansa/planmyday&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The repository contains the HTML interface, timetable generation logic, Ollama integration and instructions for running the project locally.&lt;/p&gt;

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

&lt;h3&gt;
  
  
  Tech Stack
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Model:&lt;/strong&gt; Gemma 3, 4B parameters&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Local model runtime:&lt;/strong&gt; Ollama&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Frontend:&lt;/strong&gt; HTML, CSS and JavaScript&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Architecture:&lt;/strong&gt; Single HTML file with no framework and no backend&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hardware:&lt;/strong&gt; Intel i5, 16 GB RAM and NVIDIA RTX 2050 with 4 GB VRAM&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  How It Works
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;The page collects the user's wake and sleep times, preferred focus period, fixed commitments and tasks.&lt;/li&gt;
&lt;li&gt;These inputs are sent to the locally running Ollama endpoint.&lt;/li&gt;
&lt;li&gt;Gemma is instructed to return the timetable in a strict JSON format containing &lt;code&gt;start&lt;/code&gt;, &lt;code&gt;end&lt;/code&gt;, &lt;code&gt;title&lt;/code&gt; and &lt;code&gt;type&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;The application validates the model response before displaying it.&lt;/li&gt;
&lt;li&gt;Valid timetable blocks are sorted chronologically and rendered as a visual schedule.&lt;/li&gt;
&lt;li&gt;When the user wants to change the plan, the current timetable and the natural-language change request are sent back to the local model.&lt;/li&gt;
&lt;li&gt;Gemma generates an updated schedule, which is validated and rendered again.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Challenges and Lessons Learned
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Browser security:&lt;/strong&gt; Opening the HTML file directly from disk caused the browser to block requests to Ollama. Serving the file through a local web server bound to &lt;code&gt;127.0.0.1&lt;/code&gt; fixed the issue while keeping the application accessible only from my own machine.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Initial model setup:&lt;/strong&gt; The first run requires a one-time download of the Gemma model, which is around 3.3 GB. After the model is installed, the application can run without an internet connection.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Structured output from a small model:&lt;/strong&gt; A 4B model cannot always be expected to return perfectly structured data. I therefore instructed Gemma to return strict JSON and added validation on the client side. If the response is malformed, the application shows an error instead of rendering a broken timetable.&lt;/p&gt;

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

&lt;p&gt;A daily schedule can contain personal information such as class timings, work routines, exercise schedules and other parts of someone's daily life.&lt;/p&gt;

&lt;p&gt;Because Plan My Day uses an open-weight model that runs locally, my friend's routine does not need to be sent to a third-party AI service.&lt;/p&gt;

&lt;p&gt;The application does not require an account, API key or paid subscription.&lt;/p&gt;

&lt;p&gt;Open models also provide flexibility. Users can select from models available through Ollama and choose a smaller model if they have limited hardware, without changing the core idea of the application.&lt;/p&gt;

&lt;p&gt;This makes the project practical for students and other users who may not have access to paid AI APIs. Once the model is downloaded, the planner can work offline without per-request API costs.&lt;/p&gt;

&lt;p&gt;For me, open innovation is valuable because it makes AI experimentation more accessible, private and adaptable. Instead of building around one hosted API, the application can work with locally available models and hardware.&lt;/p&gt;

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

&lt;p&gt;Building Plan My Day taught me that using a local AI model is not only about connecting an application to an LLM.&lt;/p&gt;

&lt;p&gt;I had to think about browser security, local networking, structured model outputs, validation and how to make AI-generated results reliable enough for an actual user.&lt;/p&gt;

&lt;p&gt;The project also showed me how useful small local models can be when privacy and simplicity matter more than having access to a large cloud-based model.&lt;/p&gt;

&lt;h2&gt;
  
  
  Prize Category
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Best Use of Gemma&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Plan My Day uses &lt;strong&gt;Gemma 3 locally through Ollama&lt;/strong&gt; to transform a user's routine and task list into a structured timetable and to revise that timetable based on natural-language change requests.&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/yaansa/planmyday" rel="noopener noreferrer"&gt;https://github.com/yaansa/planmyday&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Built for:&lt;/strong&gt; A real friend and their daily routine&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Model:&lt;/strong&gt; Gemma 3 (4B) running locally through Ollama&lt;/p&gt;

</description>
      <category>hf26challenge</category>
      <category>devchallenge</category>
      <category>hacktoberfest</category>
    </item>
    <item>
      <title>I Built an Offline AI Timetable Planner for a Friend Using Gemma</title>
      <dc:creator>Yabrij01</dc:creator>
      <pubDate>Sun, 04 Oct 2026 13:55:02 +0000</pubDate>
      <link>https://dev.to/ybrijwasi1010/i-built-an-offline-ai-timetable-planner-for-a-friend-using-gemma-ih8</link>
      <guid>https://dev.to/ybrijwasi1010/i-built-an-offline-ai-timetable-planner-for-a-friend-using-gemma-ih8</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-weekend-2026-10-01"&gt;Hacktoberfest Weekend Challenge: Build for a Friend&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;Plan My Day&lt;/strong&gt; is a private, offline timetable planner that I built for a friend who has to fit a long to-do list around a fixed daily routine.&lt;/p&gt;

&lt;p&gt;You enter your fixed commitments such as classes, meals and gym sessions, along with the tasks you need to finish. A locally hosted language model turns this information into a structured, time-blocked schedule.&lt;/p&gt;

&lt;p&gt;It respects fixed commitments and places demanding work in the user's peak focus window whenever possible.&lt;/p&gt;

&lt;p&gt;When plans change, you can describe the change in plain language, such as &lt;strong&gt;"move gym to the evening,"&lt;/strong&gt; and the timetable is revised.&lt;/p&gt;

&lt;p&gt;Nothing leaves the device. The schedule and personal routine are processed locally using Gemma through Ollama.&lt;/p&gt;

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

&lt;p&gt;I tested the tool with my friend using their real schedule: their fixed times, actual tasks and preferred focus time.&lt;/p&gt;

&lt;p&gt;I generated a timetable using their inputs and then tested the natural-language editing feature by asking the planner to modify the schedule.&lt;/p&gt;

&lt;p&gt;The screenshot below shows the Plan My Day interface and generated timetable.&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%2Fqbnbioehopaxi98diezf.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%2Fqbnbioehopaxi98diezf.png" alt=" " width="800" height="711"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Plan My Day — generating a personalized timetable using a locally running Gemma model.&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;The complete source code is available on GitHub:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://github.com/yaansa/planmyday" rel="noopener noreferrer"&gt;https://github.com/yaansa/planmyday&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The repository contains the HTML interface, timetable generation logic, Ollama integration and instructions for running the project locally.&lt;/p&gt;

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

&lt;h3&gt;
  
  
  Stack
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Model:&lt;/strong&gt; Gemma 3, 4B parameters, served locally through Ollama&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Interface:&lt;/strong&gt; A single HTML file with no framework and no backend&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Language:&lt;/strong&gt; HTML, CSS and JavaScript&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hardware:&lt;/strong&gt; Intel i5, 16 GB RAM and NVIDIA RTX 2050 with 4 GB VRAM&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  How it works
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;The page collects wake and sleep times, the peak focus period, fixed commitments and tasks.&lt;/li&gt;
&lt;li&gt;These inputs are sent to the locally running Ollama endpoint.&lt;/li&gt;
&lt;li&gt;Gemma is instructed to return the timetable in a strict JSON format containing &lt;code&gt;start&lt;/code&gt;, &lt;code&gt;end&lt;/code&gt;, &lt;code&gt;title&lt;/code&gt; and &lt;code&gt;type&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;The page validates the model response before displaying it.&lt;/li&gt;
&lt;li&gt;Valid timetable blocks are sorted chronologically and rendered as a visual schedule.&lt;/li&gt;
&lt;li&gt;When the user wants to change the plan, the current timetable and the natural-language change request are sent back to the local model.&lt;/li&gt;
&lt;li&gt;Gemma returns an updated schedule, which is validated and rendered again.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Lessons from the build
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Browser security:&lt;/strong&gt; Opening the HTML file directly from disk caused the browser to block requests to Ollama. Serving the file through a local web server bound to &lt;code&gt;127.0.0.1&lt;/code&gt; fixed the issue while keeping the application accessible only from my own machine.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Setup cost:&lt;/strong&gt; The first run requires a one-time download of the Gemma model, which is around 3.3 GB. It took about an hour on a slow connection, but after installation the application can run without an internet connection.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Small-model output:&lt;/strong&gt; A 4B model cannot always be assumed to return perfectly structured data. I therefore instructed the model to return strict JSON and added validation on the client side. If the response is malformed, the application shows an error instead of rendering a broken timetable.&lt;/p&gt;

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

&lt;p&gt;A daily schedule can contain personal information such as class timings, work routines, exercise schedules and other parts of someone's daily life.&lt;/p&gt;

&lt;p&gt;Because Plan My Day uses an open-weight model that runs locally, my friend's routine does not need to be sent to a third-party AI service. The application does not require an account, API key or paid subscription.&lt;/p&gt;

&lt;p&gt;Open models also provide flexibility. The model can be selected from the models installed in Ollama, so users can choose a smaller model if they have weaker hardware without changing the application's core logic.&lt;/p&gt;

&lt;p&gt;This makes the project practical for students and other users who may not have access to paid AI APIs. Once the model is downloaded, the planner can work offline and does not incur per-request API costs.&lt;/p&gt;

&lt;p&gt;For me, open innovation is valuable because it makes AI experimentation more accessible, private and adaptable. Instead of building around one hosted API, the application can work with locally available models and hardware.&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;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Plan My Day uses Gemma 3 locally through Ollama to transform a user's routine and task list into a structured timetable and to revise that timetable based on natural-language change requests.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>weekendchallenge</category>
      <category>hf26challenge</category>
    </item>
  </channel>
</rss>
