cd /news/ai-tools/vivamate Β· home β€Ί topics β€Ί ai-tools β€Ί article
[ARTICLE Β· art-144823] src=dev.to β†— pub= topic=ai-tools verified=true sentiment=↑ positive

Vivamate

A developer built VivaMate, a local AI-powered viva preparation assistant that runs an open-weight model through Ollama to help a friend revise college notes. The Streamlit and Python tool generates practice and follow-up questions from the user's own study material while keeping it private and avoiding per-request API costs.

by read2 min views2 publishedOct 4, 2026

The Problem

My friend often finds it difficult to revise lengthy college notes before viva examinations. They need quick explanations and practice questions instead of going through everything repeatedly.

So I decided to build something specifically for them.

πŸ’‘ The Solution

I built VivaMate, a local AI-powered viva preparation assistant.

It helps my friend:

πŸ“š Understand difficult topics in simple language

🎀 Generate viva questions

🧠 Practice follow-up questions

πŸ“ Use their own study material

πŸ”’ Keep their study material private

πŸ€– Open-Source AI

VivaMate uses an open-weight AI model running locally through Ollama.

This was important because the project isn't just using AI as an external API. The AI actually runs on the user's own computer.

This means:

πŸ”’ Study material can stay on the laptop

🌐 It can work without sending data to a cloud AI provider

πŸ’° No per-request API cost

πŸ”„ The model can be replaced with another compatible open model

πŸ› οΈ I have more control over how the assistant behaves

πŸ› οΈ Tech Stack

Python

↓

Streamlit

↓

Ollama

↓

Open-weight AI model

❀️ Built for a Real Friend

I didn't build VivaMate as a generic AI chatbot.

I built it for one friend who actually has this problem.

After giving it to them, I'll include their genuine feedback here:

β€œ[Write what my friend actually said after trying it.]”

πŸŽ₯ Demo

import streamlit as st

import subprocess

st.set_page_config(

page_title="VivaMate",

page_icon="πŸŽ“"

)

st.title("πŸŽ“ VivaMate")

st.write("Your private local AI viva preparation partner")

question = st.text_area(

"Ask your viva question:",

placeholder="Example: What is a linked list?"

)

if st.button("Ask VivaMate"):

if question.strip():

    prompt = f"""

You are VivaMate, a helpful college viva preparation assistant.

Answer the following question in simple language.

Give:

Question:

{question}

"""

    result = subprocess.run(
        ["ollama", "run", "gemma3:4b", prompt],
        capture_output=True,
        text=True
    )

    st.subheader("Answer")
    st.write(result.stdout)
else:
    st.warning("Please enter a question.")
── more in #ai-tools 4 stories Β· sorted by recency
── more on @vivamate 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain β€” perfect for shipping the agent you just read about.

$git push zahid main
β†’ Live at https://your-agent.zahid.host βœ“
Get free account β†’ Pricing
from €0/mo Β· no card required
LIVE [news/vivamate] indexed:0 read:2min 2026-10-04 Β· β€”