<?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>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>
