<?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: Akshra</title>
    <description>The latest articles on DEV Community by Akshra (@axraa).</description>
    <link>https://dev.to/axraa</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%2F4130399%2Fcc827af1-6327-4fea-8a00-9368202cddd1.png</url>
      <title>DEV Community: Akshra</title>
      <link>https://dev.to/axraa</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/axraa"/>
    <language>en</language>
    <item>
      <title>CycleCare: a private, local cycle companion powered by Gemma and Ollama</title>
      <dc:creator>Akshra</dc:creator>
      <pubDate>Fri, 02 Oct 2026 18:53:23 +0000</pubDate>
      <link>https://dev.to/axraa/cyclecare-a-private-local-cycle-companion-powered-by-gemma-and-ollama-2j26</link>
      <guid>https://dev.to/axraa/cyclecare-a-private-local-cycle-companion-powered-by-gemma-and-ollama-2j26</guid>
      <description>&lt;p&gt;This is a submission for the Hacktoberfest Weekend Challenge: Build for a Friend&lt;/p&gt;

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

&lt;p&gt;CycleCare is a small web app that estimates where I am in my menstrual cycle, lets me log symptoms, mood and energy, and then asks a local AI model for general self-care and meal ideas for the day.&lt;/p&gt;

&lt;p&gt;The friend I built it for is me. I wanted a simple way to understand my cycle without creating an account or putting my health data on a server I don't control. I haven't handed it to anyone else, so everything in this post comes from my own use.&lt;/p&gt;

&lt;p&gt;It is a wellness companion, not a medical tool. It doesn't diagnose, recommend medication, or make medical predictions.&lt;/p&gt;

&lt;p&gt;Demo&lt;/p&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/RlaNDTgPgBc" width="710" height="399"&gt;
  &lt;/iframe&gt;
The video uses fake data only. It shows me setting a cycle date and food preferences, logging symptoms, checking the dashboard, and generating suggestions from the local gemma2:2b model.&lt;/p&gt;

&lt;p&gt;Code&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/akshrapsit1256" rel="noopener noreferrer"&gt;
        akshrapsit1256
      &lt;/a&gt; / &lt;a href="https://github.com/akshrapsit1256/cyclecare" rel="noopener noreferrer"&gt;
        cyclecare
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;CycleCare — a local cycle companion&lt;/h1&gt;
&lt;/div&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Built for the DEV / Hacktoberfest 2026 "Build for a Friend" challenge. The friend I built it for is me.&lt;/strong&gt;
&lt;em&gt;A small, local menstrual-cycle tracker with wellness and meal suggestions from an open-weight AI model running on my own laptop.&lt;/em&gt;&lt;/p&gt;


&lt;/blockquote&gt;
&lt;br&gt;


&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;🌸 About CycleCare&lt;/h2&gt;
&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;CycleCare&lt;/strong&gt; is a small web app I built for myself to track my menstrual cycle, log daily symptoms, and get general self-care, hydration, and meal ideas from a local open-weight AI model (Gemma, run through Ollama). Everything runs on my own laptop, with no account and no cloud service.&lt;/p&gt;




&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;💡 The Problem&lt;/h2&gt;
&lt;/div&gt;

&lt;p&gt;I wanted a simple way to understand where I am in my cycle, but most cycle apps ask me to create an account and keep my health data on their servers. I didn't want that for something this personal.&lt;/p&gt;

&lt;p&gt;So I built CycleCare to run entirely on my own…&lt;/p&gt;&lt;/div&gt;


&lt;/div&gt;
&lt;br&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/akshrapsit1256/cyclecare" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;br&gt;
&lt;br&gt;&lt;br&gt;
How I Built It&lt;br&gt;&lt;br&gt;
Frontend: React and Vite&lt;br&gt;&lt;br&gt;
Backend: Python and FastAPI&lt;br&gt;&lt;br&gt;
Database: SQLite, a single file on my machine&lt;br&gt;&lt;br&gt;
AI: Gemma (gemma2:2b), an open-weight model, run locally through Ollama

&lt;p&gt;The flow:&lt;/p&gt;

&lt;p&gt;I save my last period date, average cycle length and food preferences.&lt;br&gt;
I log a daily check-in with symptoms, mood, energy and notes.&lt;br&gt;
When I click "Generate Suggestions", the backend reads my data from SQLite and builds a structured prompt from my cycle day, phase, symptoms, preferences and restrictions.&lt;br&gt;
It sends the prompt to Ollama's /api/generate endpoint and asks for JSON back.&lt;br&gt;
The backend parses the JSON and checks its shape, and the UI shows self-care, hydration, movement, sleep, 2 to 3 meal ideas and one short piece of guidance.&lt;/p&gt;

&lt;p&gt;The system prompt tells the model not to diagnose and not to recommend medication. If Ollama isn't running, the app doesn't crash. It falls back to a generic built-in plan, labelled as coming from the built-in knowledge base, not the AI model.&lt;/p&gt;

&lt;p&gt;I used an AI coding agent to generate most of the code. I then ran the app myself and tested it through the full flow. The backend, the Ollama call and the UI all work together on my laptop.&lt;/p&gt;

&lt;p&gt;Limitations:&lt;/p&gt;

&lt;p&gt;It's built for one user and tested only by me.&lt;br&gt;
It needs a laptop running Ollama, so I can't deploy it for others to try.&lt;br&gt;
Cycle phases are simple estimates from the last period date and average cycle length. They aren't reliable for irregular cycles and shouldn't be used to plan or avoid pregnancy.&lt;br&gt;
A 2B model can be slow, generic or inconsistent, and the meal ideas are general suggestions, not nutritional advice.&lt;br&gt;
SQLite is unencrypted, so anyone with access to my laptop could read the data.&lt;br&gt;
Why Does Open Innovation Matter?&lt;br&gt;
My data stays on my machine. Cycle and symptom data is deeply personal. With local inference, my prompts never go to a third party.&lt;br&gt;
No account, no API key, no cost. After the one-time model download, it runs for free.&lt;br&gt;
I control the model. The model name is one config setting, so I can swap it for a different Gemma size or another open-weight model without changing the code.&lt;/p&gt;

&lt;p&gt;A closed API would have meant sending this data to a company's servers and paying per request.&lt;/p&gt;

&lt;p&gt;Safety&lt;/p&gt;

&lt;p&gt;CycleCare is a wellness companion and is not intended to diagnose, treat, or prevent medical conditions. AI-generated suggestions are general wellness information and should not replace professional medical advice.&lt;/p&gt;

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