DEV Community

Dinuka Ekanayake
Dinuka Ekanayake

Posted on

CareRelay Local: Private AI Care Handovers with Gemma 3

This is a submission for the Hacktoberfest Weekend Challenge: Build for a Friend.

What I Built

I built CareRelay Local, a private AI-powered tool that turns rough caregiving notes into clear handover reports.

I built it for a friend who helps care for an older family member.

The problem is small, but very real.

Care notes are often written quickly throughout the day:

Breakfast at 8. Ate about half. Medicine after breakfast. Went outside around 10. Said knee was hurting a little. Lunch at 12:30. Doctor appointment tomorrow.

All of the information is there, but handing those notes to the next person means they still have to scan through everything and work out what matters.

CareRelay converts those rough notes into a structured handover with sections for:

  • Summary
  • Meals & Hydration
  • Medication Mentioned
  • Activities & Mobility
  • Observations
  • Rest
  • Appointments & Reminders
  • Information for the Next Caregiver

There are two output modes.

Next Caregiver produces a concise and practical handover.

Family Member communicates the same facts in warmer, simpler language.

Most importantly, CareRelay is deliberately a note-organization tool, not a medical assistant. It is instructed not to diagnose conditions, recommend treatments, invent medication names or dosages, or fill gaps with assumptions.

The goal is simple: take information someone has already written and make it easier to pass to the next person.

After building it, I gave it to a friend to try.

“I like how I can just write the notes normally without worrying about a format. The handover is much easier to read, and knowing the notes stay on the computer makes me more comfortable using it.”

Demo

Demo: https://drive.google.com/file/d/1I1g-li0_KS-S0qEij_abUX7vczf-8wcd/view?usp=sharing

The demo shows CareRelay taking unstructured notes, generating a caregiver handover, switching to the family-friendly version, and running through Gemma locally.

One of my favorite parts of the demo is disconnecting from the internet and generating another report.

It still works.

That is not a workaround; it is one of the reasons I designed the project this way.

Code

GitHub: https://github.com/DinukaEk/CareRelayLocal

The project is intentionally small.

The stack is:

  • ASP.NET Core / .NET 10
  • HTML
  • CSS
  • Vanilla JavaScript
  • Ollama
  • Gemma 3 4B

No cloud AI SDK is hidden behind the interface.

The browser sends the notes to my local ASP.NET backend. The backend sends them to Ollama on localhost, and Ollama runs Gemma 3 4B locally.

The basic path is:

Browser
   ↓
ASP.NET Core
   ↓
Ollama
   ↓
Gemma 3 4B
   ↓
Structured handover
Enter fullscreen mode Exit fullscreen mode

How I Built It

I started with the AI layer rather than the UI.

First, I installed Ollama and downloaded gemma3:4b. I tested Gemma directly and then tested Ollama's local chat API.

Once local inference worked, I created a small ASP.NET Core API with a /api/handover endpoint.

The endpoint receives:

{
  "notes": "...",
  "audience": "caregiver",
  "model": "gemma3:4b"
}
Enter fullscreen mode Exit fullscreen mode

The backend constructs a carefully constrained system prompt and passes the request to Ollama.

For this project, prompting was not mainly about making the model more creative. It was about making it less creative.

CareRelay tells Gemma to use only information explicitly contained in the supplied notes. It must preserve uncertainty, avoid diagnoses and treatment recommendations, and say Not mentioned. rather than filling in missing information.

For example, if the original note says:

Went outside around 10.
Enter fullscreen mode Exit fullscreen mode

CareRelay should retain around 10, rather than silently changing it to an invented exact time such as 10:00 AM.

Likewise:

Medicine after breakfast.
Enter fullscreen mode Exit fullscreen mode

must not suddenly become a medication name or dosage that the caregiver never wrote.

I use a low generation temperature because consistency matters more here than imaginative output.

I then added a small browser interface with:

  • a large natural-language notes field
  • Caregiver and Family output modes
  • a live local-AI status indicator
  • a character limit
  • loading and error states
  • Copy
  • Download

The status indicator calls a local backend endpoint which checks Ollama and verifies that Gemma is available.

When everything is ready, the interface displays:

100% Local AI - Gemma 3 4B is ready on this computer.

I also tested failure cases such as empty notes, missing information, ambiguous medication references, Ollama being unavailable, and potentially medical observations.

Why Does Open Innovation Matter?

This is the part of the project I care about most.

I could have built CareRelay around a closed cloud AI API. Technically, that might even have been easier.

But it would have changed an important property of the product.

Caregiving notes can contain information that people may not want sent to an external AI service.

With CareRelay, the model runs through Ollama on the same computer as the application. After the model is installed, the core AI workflow does not require an internet connection.

That gives this small project several useful properties.

Privacy and control

The raw care notes do not need to be sent to a cloud AI provider for inference.

Offline use

The application can generate handovers even when the laptop is disconnected from the internet.

No per-request AI bill

Generating another handover does not consume paid API credits.

Model freedom

The application is not fundamentally coupled to a single hosted AI vendor. I can experiment with a smaller model for weaker hardware or another compatible local model without rebuilding the product around a new external service.

Behavior I can control

Because the model and inference layer are under my control, I can iterate on the guardrails, generation parameters, and eventually even specialized model behavior.

For CareRelay, open-weight AI was not something I added to qualify for the challenge.

It influenced the actual product design.

The fact that it can run locally is one of the reasons the idea makes sense in the first place.

Prize Categories

  • Best Use of Gemma

CareRelay uses Gemma 3 4B as the AI at the core of the application, running locally through Ollama.

Top comments (0)