<?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: Alok Ranjan</title>
    <description>The latest articles on DEV Community by Alok Ranjan (@alok_ranjan_b26a528343ac8).</description>
    <link>https://dev.to/alok_ranjan_b26a528343ac8</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%2F4153626%2F608c7fc1-b297-4351-8775-5107d1e19081.jpeg</url>
      <title>DEV Community: Alok Ranjan</title>
      <link>https://dev.to/alok_ranjan_b26a528343ac8</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/alok_ranjan_b26a528343ac8"/>
    <language>en</language>
    <item>
      <title>SlothSort</title>
      <dc:creator>Alok Ranjan</dc:creator>
      <pubDate>Sat, 24 Oct 2026 13:18:48 +0000</pubDate>
      <link>https://dev.to/alok_ranjan_b26a528343ac8/slothsort-3de7</link>
      <guid>https://dev.to/alok_ranjan_b26a528343ac8/slothsort-3de7</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-week3-2026-10-19"&gt;Hacktoberfest Open-Source AI Challenge Week 3: Slow and Steady&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;SlothSort&lt;/strong&gt; is a local-first AI file organizer. Choose a folder and it scans up to 100 top-level files, then suggests a category and a more descriptive filename. Review the suggestions and select which files to move into category folders.&lt;/p&gt;

&lt;p&gt;It’s for anyone who wants a tidier downloads or documents folder without sorting everything by hand. The AI proposes changes; you stay in control.&lt;/p&gt;

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

&lt;p&gt;SlothSort runs locally. Start it with Docker Compose, then open &lt;strong&gt;&lt;a href="http://localhost:5173" rel="noopener noreferrer"&gt;http://localhost:5173&lt;/a&gt;&lt;/strong&gt; in a recent version of Chrome or Edge. Choose a folder to see it in action.&lt;/p&gt;

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

&lt;p&gt;The project source is in this repository. To run it, follow the setup instructions in the README.&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Repository link:&lt;/strong&gt; &lt;a href="https://github.com/aLok-1105/slothsort" rel="noopener noreferrer"&gt;https://github.com/aLok-1105/slothsort&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;SlothSort combines a React and Vite frontend with a Node.js and Express backend, packaged with Docker Compose. It uses the browser’s folder-access API to let you select a folder and apply approved moves.&lt;/p&gt;

&lt;p&gt;For classification, the backend sends each file’s name and supported text content to &lt;strong&gt;Gemma 3 270M running locally through Ollama&lt;/strong&gt;. It supports text extraction from TXT, Markdown, CSV, JSON, LOG, and text-based PDF files; images are categorized by extension, without OCR. After you download the model, classification runs locally without a cloud AI API. The initial model download requires internet access.&lt;/p&gt;

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

&lt;p&gt;Using an open-weight model with Ollama makes it possible to run classification on my own machine, rather than depend on a closed, cloud-hosted AI API. That gives users more control over where their file content goes and makes the project easier to inspect and adapt. SlothSort sends files to its local backend for classification, and only moves files after the user approves the suggestions.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;I left out the optional agent-session and lazy-payoff sections because the repository doesn’t provide a session link or measured time savings.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
      <category>ai</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Studyforge</title>
      <dc:creator>Alok Ranjan</dc:creator>
      <pubDate>Sat, 17 Oct 2026 13:13:50 +0000</pubDate>
      <link>https://dev.to/alok_ranjan_b26a528343ac8/studyforge-5fi9</link>
      <guid>https://dev.to/alok_ranjan_b26a528343ac8/studyforge-5fi9</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-week2-2026-10-12"&gt;Hacktoberfest Open-Source AI Challenge Week 2: Side Hustle&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;I built &lt;strong&gt;Studyforge&lt;/strong&gt;, a locally hosted assessment builder for teachers, professors, tutors, and other educators.&lt;/p&gt;

&lt;p&gt;An educator enters course material or learning objectives, adds details such as the course, grade level, and student instructions, then chooses how many multiple-choice, short-answer, and long-answer questions to generate. Studyforge creates an assessment draft with an answer key, shows it in a browser preview, and exports a print-ready PDF. The PDF can be made as a student copy without answers or a teacher copy with the answer key on a separate page.&lt;/p&gt;

&lt;p&gt;The intended users are educators who want to prepare classroom tests more quickly. Schools, tutoring centers, and individual teachers could use a tool like this, though Studyforge does not currently include billing or paid plans.&lt;/p&gt;

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

&lt;p&gt;There isn’t a public deployment or video demo yet. You can run it locally by following the setup instructions in the README.&lt;/p&gt;

&lt;p&gt;After setup, open &lt;a href="http://localhost:8000" rel="noopener noreferrer"&gt;http://localhost:8000&lt;/a&gt; to try the assessment builder.&lt;/p&gt;

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

&lt;p&gt;&lt;a href="https://github.com/aLok-1105/-studyforge" rel="noopener noreferrer"&gt;https://github.com/aLok-1105/-studyforge&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;Studyforge is a Node.js and Express application. Its browser UI is served by the Express server, which also provides endpoints for generating assessment drafts and downloading PDFs.&lt;/p&gt;

&lt;p&gt;For AI, it uses &lt;strong&gt;Ollama&lt;/strong&gt; to run the &lt;strong&gt;Gemma 3 270M&lt;/strong&gt; model locally. The app sends the educator’s source material to the local Ollama API, which returns the questions and answer key. PDFKit generates the downloadable assessment PDFs.&lt;/p&gt;

&lt;p&gt;The model and dependencies need to be downloaded during initial setup. After that, question generation and the app’s main workflow can run offline on the same computer: no hosted inference API is required. The interface also loads Google Fonts when an internet connection is available; offline, it falls back to system fonts.&lt;/p&gt;

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

&lt;p&gt;Open-weight models and local inference make it possible to build an AI-assisted teaching tool without depending on a closed, hosted inference API. Educators can run the model on their own machine, avoid sending course material to a third-party AI service by default, and use the app without per-request hosted-model fees.&lt;/p&gt;

&lt;p&gt;It also makes the stack more adaptable: users can configure a different Ollama model to suit their hardware or needs. Local inference does have trade-offs—the model must be downloaded first, generation depends on available hardware, and smaller models may produce content that needs careful review. Studyforge treats generated assessments as drafts, not as a substitute for an educator’s judgment.&lt;/p&gt;

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

&lt;p&gt;No partner categories selected. Studyforge uses Ollama and Gemma; I have not confirmed that either corresponds to an eligible partner category for this challenge.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
      <category>gemma</category>
      <category>ai</category>
    </item>
    <item>
      <title>WildQuest | Make room for outside.</title>
      <dc:creator>Alok Ranjan</dc:creator>
      <pubDate>Sun, 11 Oct 2026 06:51:55 +0000</pubDate>
      <link>https://dev.to/alok_ranjan_b26a528343ac8/wildquest-make-room-for-outside-4l7b</link>
      <guid>https://dev.to/alok_ranjan_b26a528343ac8/wildquest-make-room-for-outside-4l7b</guid>
      <description>&lt;h2&gt;
  
  
  WildQuest — Hacktoberfest Open-Source AI Challenge
&lt;/h2&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&lt;br&gt;
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;WildQuest turns everyday activity ideas into small, real-world&lt;br&gt;
adventures.&lt;/strong&gt; Tell it what you want to do---such as taking a walk,&lt;br&gt;
stretching, or birdwatching---and it uses AI to generate exactly three&lt;br&gt;
personalized quests.&lt;/p&gt;

&lt;p&gt;Each quest includes clear instructions, an estimated time, a difficulty&lt;br&gt;
level, points, XP, and relevant safety notes. Users can mark quests&lt;br&gt;
complete or undo completion, making it easier to turn an intention to&lt;br&gt;
get outside into a short, achievable challenge.&lt;/p&gt;

&lt;p&gt;WildQuest is designed for anyone who wants a little extra motivation to&lt;br&gt;
step away from their screen and do something in the real world. It adds&lt;br&gt;
a lightweight game loop to everyday activities without requiring an&lt;br&gt;
account.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;WildQuest runs locally and can work offline after setup.&lt;/strong&gt; The web app&lt;br&gt;
and AI inference run on your own machine through Express and Ollama, so&lt;br&gt;
generating quests does not require sending prompts to a hosted AI API.&lt;br&gt;
An internet connection is needed initially to install dependencies and&lt;br&gt;
download the Docker image/model. Once those are available locally, you&lt;br&gt;
can use WildQuest without an internet connection.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Current limitation:&lt;/strong&gt; Quest completion is self-reported. The app does&lt;br&gt;
not independently verify that a quest was completed.&lt;/p&gt;
&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;The app can be run locally by following the setup instructions below.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Video demo:&lt;/strong&gt; Add a demo video is available in GitHub repo.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  Code
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;GitHub repository:&lt;/strong&gt; &lt;a href="https://github.com/aLok-1105/WildQuest" rel="noopener noreferrer"&gt;https://github.com/aLok-1105/WildQuest&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The project serves the responsive web interface and JSON API from a&lt;br&gt;
single Express application.&lt;/p&gt;
&lt;h2&gt;
  
  
  How I Built It
&lt;/h2&gt;

&lt;p&gt;WildQuest is built with a lightweight web stack and local AI inference:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Node.js and Express&lt;/strong&gt; serve the web interface and the API.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Ollama&lt;/strong&gt; runs the language model locally.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Gemma 3 270M (&lt;code&gt;gemma3:270m&lt;/code&gt;)&lt;/strong&gt; generates personalized activity
sessions and quests on the local machine.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Zod&lt;/strong&gt; validates the generated response structure before it is
returned to the client.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;HTML, CSS, and JavaScript&lt;/strong&gt; power the responsive interface, quest
display, completion controls, and reward totals.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Docker Compose&lt;/strong&gt; helps start the Ollama service and pull the
configured model.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  How it works
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt; The user enters an activity prompt with any useful details, such as
duration, pace, location, or difficulty.&lt;/li&gt;
&lt;li&gt; The frontend sends the prompt to &lt;code&gt;POST /task&lt;/code&gt; on the local Express
server.&lt;/li&gt;
&lt;li&gt; The Express server asks the local Ollama model to generate an
activity session.&lt;/li&gt;
&lt;li&gt; The server validates the response structure and returns the session
as JSON.&lt;/li&gt;
&lt;li&gt; The interface displays exactly three quests, including instructions,
estimated time, difficulty, rewards, and safety notes.&lt;/li&gt;
&lt;li&gt; Users can mark quests complete or undo completion. Earned points and
XP are kept in browser &lt;code&gt;sessionStorage&lt;/code&gt; for the current tab session.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Because both the application server and model inference run locally,&lt;br&gt;
quest generation does not depend on a remote AI API. &lt;strong&gt;After the initial&lt;br&gt;
installation and model download, WildQuest can generate quests&lt;br&gt;
offline&lt;/strong&gt;, provided the local services are running and the model is&lt;br&gt;
installed.&lt;/p&gt;
&lt;h3&gt;
  
  
  Run it locally
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Requirements:&lt;/strong&gt; Node.js 18.11 or newer and Docker Desktop.&lt;/p&gt;

&lt;p&gt;An internet connection is needed for the initial dependency installation&lt;br&gt;
and for Docker/Ollama to download the required model. After setup, you&lt;br&gt;
can run the app locally without internet access.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="n"&gt;npm&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;install&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;docker&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;compose&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;up&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-d&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;npm&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;start&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Open &lt;a href="http://localhost:8000" rel="noopener noreferrer"&gt;http://localhost:8000&lt;/a&gt; in your browser. The web server expects&lt;br&gt;
Ollama at &lt;code&gt;http://localhost:11434&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;The Docker Compose setup pulls &lt;code&gt;gemma3:270m&lt;/code&gt; when the Ollama service&lt;br&gt;
starts, if the model is not already available locally. By default, the&lt;br&gt;
app uses &lt;code&gt;gemma3:270m&lt;/code&gt;. Set the &lt;code&gt;OLLAMA_MODEL&lt;/code&gt; environment variable to&lt;br&gt;
use a different model that is already available in Ollama.&lt;/p&gt;
&lt;h3&gt;
  
  
  API example
&lt;/h3&gt;

&lt;p&gt;Send a request to &lt;code&gt;POST /task&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"prompt"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Plan a relaxed 30-minute walk through a leafy park"&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A successful response contains session details, exactly three quests, an&lt;br&gt;
empty &lt;code&gt;bonus_quests&lt;/code&gt; array, and total available points and XP. Each&lt;br&gt;
quest includes completion criteria and reward values.&lt;/p&gt;

&lt;p&gt;Invalid or empty prompts return &lt;code&gt;400&lt;/code&gt;. Ollama connection errors or&lt;br&gt;
responses that do not match the expected structure return &lt;code&gt;502&lt;/code&gt;.&lt;/p&gt;

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

&lt;p&gt;Open innovation makes it possible to build an AI-powered experience&lt;br&gt;
without relying entirely on a closed, hosted model API.&lt;/p&gt;

&lt;p&gt;WildQuest uses Gemma 3 270M through Ollama, so inference can run locally&lt;br&gt;
on the developer's machine. This gives developers a practical way to&lt;br&gt;
experiment with an open-weight model, inspect and adapt the surrounding&lt;br&gt;
application, and build a working prototype without requiring a&lt;br&gt;
hosted-model API key.&lt;/p&gt;

&lt;p&gt;Local inference also makes &lt;strong&gt;offline use possible after the initial&lt;br&gt;
setup&lt;/strong&gt;. Users can generate quests without sending their prompts to a&lt;br&gt;
remote AI service or depending on an active internet connection, as long&lt;br&gt;
as the app, Ollama, and the model are installed and running locally.&lt;/p&gt;

&lt;p&gt;Using a small model makes local experimentation more approachable. The&lt;br&gt;
trade-off is that output quality and reliability can vary, so WildQuest&lt;br&gt;
validates the response structure and keeps quest completion&lt;br&gt;
self-reported rather than claiming that the AI verifies real-world&lt;br&gt;
activity.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
      <category>ai</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Chronicle | History by date</title>
      <dc:creator>Alok Ranjan</dc:creator>
      <pubDate>Fri, 02 Oct 2026 11:59:16 +0000</pubDate>
      <link>https://dev.to/alok_ranjan_b26a528343ac8/chronicle-history-by-date-g6h</link>
      <guid>https://dev.to/alok_ranjan_b26a528343ac8/chronicle-history-by-date-g6h</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;I built &lt;strong&gt;Chronicle | History by Dates&lt;/strong&gt;, a local-first history revision application for a friend who is preparing for competitive exams.&lt;/p&gt;

&lt;p&gt;One of the problems my friend struggles with is remembering &lt;strong&gt;important historical dates and the chronological order of events&lt;/strong&gt;. There are hundreds of dates to remember while preparing for competitive exams, and repeatedly reading the same information doesn't always make it easier to recall.&lt;/p&gt;

&lt;p&gt;So I built Chronicle around a simple idea:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Make history easier to remember by organizing it around dates and using AI to create useful memory aids.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Chronicle allows my friend to explore historical events by date and use AI to generate explanations and memory aids for difficult events.&lt;/p&gt;

&lt;p&gt;Rather than building another general-purpose AI chatbot, I wanted to build something focused on a real problem faced by one particular person.&lt;/p&gt;

&lt;p&gt;And there's one more important part:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Chronicle runs locally and can work offline.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;After the initial setup and download of the AI model, the application doesn't need an internet connection to use its AI features.&lt;/p&gt;

&lt;p&gt;The demo shows Chronicle running locally, including the AI functionality with the internet disconnected.&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&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%2F40ft1mhdr9pkrh7ytqx9.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%2F40ft1mhdr9pkrh7ytqx9.png" alt=" " width="200" height="200"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/aLok-1105/chronicle" rel="noopener noreferrer"&gt;https://github.com/aLok-1105/chronicle&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;Chronicle is a lightweight web application built using:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Node.js&lt;/strong&gt; — application runtime&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Express.js&lt;/strong&gt; — backend/server&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;HTML, CSS and JavaScript&lt;/strong&gt; — frontend&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Docker Compose&lt;/strong&gt; — running the application and AI infrastructure&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ollama&lt;/strong&gt; — local AI inference&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Qwen2.5 0.5B&lt;/strong&gt; — open-weight language model&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The AI model I currently use is &lt;strong&gt;Qwen2.5 0.5B&lt;/strong&gt;, which is only around &lt;strong&gt;397 MB&lt;/strong&gt; and can run locally on a regular laptop without a dedicated GPU.&lt;/p&gt;

&lt;p&gt;The architecture looks like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;┌───────────────────────────────┐
│        HTML / CSS / JS        │
│           Chronicle           │
└───────────────┬───────────────┘
                │
                ▼
┌───────────────────────────────┐
│          Express.js           │
│            Node.js            │
└───────────────┬───────────────┘
                │
                ▼
┌───────────────────────────────┐
│          Docker Compose       │
│                               │
│  ┌─────────────────────────┐  │
│  │         Ollama          │  │
│  │                         │  │
│  │    Qwen2.5 0.5B         │  │
│  └─────────────────────────┘  │
└───────────────────────────────┘
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The user interacts with the normal web interface, while the Express backend communicates with the locally running Ollama instance.&lt;/p&gt;

&lt;p&gt;There is no requirement to send the user's questions to a remote AI API.&lt;/p&gt;

&lt;h3&gt;
  
  
  Offline Mode
&lt;/h3&gt;

&lt;p&gt;The first setup requires downloading the Docker images and the Qwen model.&lt;/p&gt;

&lt;p&gt;After that, the complete application can run locally:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Internet
   │
   ✕
   │
   ▼
┌─────────────────────────────┐
│       Chronicle             │
│                             │
│ HTML/CSS/JS                 │
│      ↓                      │
│ Express                     │
│      ↓                      │
│ Ollama                      │
│      ↓                      │
│ Qwen2.5 0.5B                │
└─────────────────────────────┘
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This means the AI functionality can continue working &lt;strong&gt;without an internet connection&lt;/strong&gt; after the initial installation and model download.&lt;/p&gt;

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

&lt;p&gt;Open innovation is important to Chronicle because the project is designed around &lt;strong&gt;local AI rather than a closed cloud AI API&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;I wanted to see how much could be built with a very small open-weight model running on an ordinary laptop.&lt;/p&gt;

&lt;p&gt;Using Qwen2.5 0.5B with Ollama gives Chronicle several advantages:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Works offline&lt;/strong&gt; after the initial setup&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;No AI API key required&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;No per-request API cost&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;User interactions can stay on the local machine&lt;/li&gt;
&lt;li&gt;The model can be replaced with another open-weight model&lt;/li&gt;
&lt;li&gt;I can customize prompts and AI behavior for competitive-exam preparation&lt;/li&gt;
&lt;li&gt;The application isn't tied to a single cloud AI provider&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The offline capability is particularly important to me.&lt;/p&gt;

&lt;p&gt;A student shouldn't need a constant internet connection just to use an AI-powered study tool. With Chronicle, the model is downloaded once and can then run locally.&lt;/p&gt;

&lt;p&gt;The project also demonstrates that local AI doesn't necessarily require an expensive GPU or a huge model.&lt;/p&gt;

&lt;p&gt;I'm currently using a &lt;strong&gt;397 MB Qwen2.5 0.5B model&lt;/strong&gt; on a regular laptop with no dedicated GPU.&lt;/p&gt;

&lt;p&gt;That makes experimentation much more accessible.&lt;/p&gt;

&lt;p&gt;Instead of:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Student
   ↓
Internet
   ↓
Cloud AI API
   ↓
Answer
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Chronicle can work like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Student
   ↓
Chronicle
   ↓
Local Qwen model
   ↓
Answer
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For me, that's the biggest reason open innovation matters here: &lt;strong&gt;I have control over the model, the data flow, and the application.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Built for a Friend
&lt;/h2&gt;

&lt;p&gt;Chronicle started with a simple conversation with my friend.&lt;/p&gt;

&lt;p&gt;He's preparing for competitive exams and was having trouble remembering historical dates and putting events in the correct chronological order.&lt;/p&gt;

&lt;p&gt;Instead of building a generic AI application and looking for a problem to solve, I started with his problem.&lt;/p&gt;

&lt;p&gt;I wanted to build something small that he could actually use while studying.&lt;/p&gt;

&lt;p&gt;The result is Chronicle:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;History organized by dates, with a local AI companion to help make those dates easier to remember.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;And because it runs locally, he can even use it when he's offline.&lt;/p&gt;

&lt;p&gt;That's what made this project meaningful to me—not just building something with AI, but building something &lt;strong&gt;for someone I know and care about&lt;/strong&gt;.&lt;/p&gt;

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