cd /news/artificial-intelligence/vivamate-an-ai-viva-partner-built-fo… · home › topics › artificial-intelligence › article
[ARTICLE · art-144613] src=dev.to ↗ pub= topic=artificial-intelligence verified=true sentiment=↑ positive

VivaMate — An AI Viva Partner Built for a Friend

A developer built VivaMate, an AI-powered mock viva practice platform, for a friend preparing for technical university vivas. The tool chains a React/Vite frontend on Vercel with a FastAPI backend on Render, using open-weight Qwen3 4B run locally via Ollama during development and through Hugging Face Inference Providers in production, all behind a model-agnostic AI service layer. It generates grounded viva questions from uploaded study material, evaluates each answer with a score, correctness assessment, ideal answer and follow-up question, then produces an end-of-session performance report.

by read3 min views1 publishedOct 3, 2026

This is a submission for the Hacktoberfest Weekend Challenge: Build for a Friend. VivaMate is an AI-powered viva practice platform I built for a friend who has to prepare for technical university vivas.

The problem was simple: studying from notes is one thing, but actually answering questions and getting meaningful feedback is another. Finding someone who is always available to conduct a mock viva is not always practical.

So I built VivaMate to act as an on-demand viva practice partner.

You can:

The goal isn't to replace a professor or a real viva. It's to give a student a way to practice repeatedly before the real thing.

VivaMate is deployed with a React/Vite frontend on Vercel and a FastAPI backend on Render.

Flow:

Study Material → Question Generation → Mock Viva → AI Evaluation → Performance Report

The complete source code is available on GitHub:

VivaMate is built around open-weight AI rather than making a proprietary AI API the core of the application.

The core model is Qwen3 4B.

During local development, I run Qwen3 4B locally through Ollama. This allowed me to develop and test the AI workflow directly on my own machine.

The local architecture is:

React + Vite

↓

FastAPI

↓

AI Service Layer

↓

Ollama

↓

Qwen3 4B

For the deployed version, the same AI service abstraction allows the application to use Hugging Face Inference Providers with Qwen3 4B. The production architecture is:

Vercel

↓

React + Vite

↓

Render

↓

FastAPI

↓

AI Service Layer

↓

Hugging Face Inference Providers

↓

Qwen3 4B

I deliberately kept the AI integration behind a service abstraction so the application isn't tightly coupled to a single model or inference implementation.

The main technologies are:

The AI is used for two important parts of the application:

Given a topic or uploaded study material, Qwen3 generates structured viva questions with difficulty levels.

When study material is provided, the generated questions are instructed to stay grounded primarily in that material.

After the student answers a question, Qwen3 evaluates the response and returns:

The application doesn't expose the model's internal reasoning. It only uses the structured evaluation needed by the student.

VivaMate is designed around a simple practice loop:

Upload → Generate → Answer → Evaluate → Improve

The student answers each question one at a time and receives structured feedback from Qwen3 4B, including a score, correctness assessment, ideal answer, and a follow-up question.

At the end of the session, VivaMate summarizes performance and highlights areas that need further practice.

For VivaMate, open innovation isn't just a technology choice. It changes what the project can be. Because Qwen3 4B can run locally through Ollama, I could build and test the complete AI workflow on my own machine without making a proprietary cloud AI API a mandatory part of the development setup.

That matters for a study tool because uploaded material can contain personal notes, assignments, or course content.

With local inference, the development version can process the AI requests on the student's own machine rather than requiring every request to be sent to a proprietary AI service.

Open-weight models also give the project flexibility.

VivaMate's AI service is separated from the rest of the application, so the model or inference provider can be changed without rewriting the entire viva system.

For me, the biggest difference was that I wasn't simply building a UI around someone else's AI API. I was able to build the actual learning workflow around an AI model that I could run and experiment with locally. I used Google Antigravity as a coding agent while building VivaMate.

The agent helped me implement and verify the React frontend, FastAPI backend, AI integration, document extraction, structured AI responses, mock viva flow, and performance report.

I did not use a DevRelay agent-session link for this submission.

VivaMate started with a simple idea:

Instead of telling my friend to "practice more," why not build them something they can actually practice with?

That became VivaMate.

── more in #artificial-intelligence 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-an-ai-viva-…] indexed:0 read:3min 2026-10-03 · —