This is a submission for the Hacktoberfest Weekend Challenge: Build for a Friend
What I Built
VivaBuddy is a practice examiner for university vivas. You upload a study PDF, pick a subject and difficulty, and an AI examiner asks you five questions drawn from your own material. It follows up based on what you say, scores each answer, and ends with a report on your strengths and what to revise.
I built it for my friends Pratyush, Sumeet and Ayush. A generic quiz tool asks generic questions. What they needed was an examiner that had actually read their notes and would push on their answers the way a real one does.
Demo
- Live app: https://vivabuddy.vercel.app
- Video: https://youtu.be/zFm-F8nfE5Y
Code
VivaBuddy
Practice explaining what you know before the real conversation. VivaBuddy turns a study PDF or resume into an interactive practice session, asks follow-up questions grounded in that material, and gives you a final report with feedback.
VivaBuddy was built for a friends who wanted a better way to prepare for viva and interview questions. It is an MVP, focused on one uploaded document and one practice session at a time.
What it does
- Upload a text-based PDF, such as study notes or a resume, and choose a subject and difficulty.
- Practice a five-question session grounded in the uploaded material.
- Get adaptive follow-up questions as you answer.
- Review a final report with feedback on your answers.
- Run inference with a local Ollama model or a configured Ollama service.
Built for a friend
A friend tested VivaBuddy with his resume. He liked that the questions came from the PDF he uploaded…
How I Built It
The app is built with Next.js and TypeScript, deployed on Vercel. The model runs through Ollama on a separate host. The server extracts text from the uploaded PDF, then separate endpoints handle question generation, answer evaluation with an adaptive follow-up, and the final report. There's no database: session data lives in the browser tab and disappears when you close it.
During development, I used Qwen2.5-Coder 7B through local Ollama. It gave me a local model for coding and debugging, so I could iterate without sending development prompts to a hosted service. For the deployed practice sessions, I chose Gemma 4 31B because its general reasoning focus is a better fit for generating questions from a student's notes or resume. Using Ollama for both lets the app switch models through configuration while keeping model choice central to the project.
What my friends said: Pratyush, Sumeet and Ayush all tried it. What they liked most was that the questions came straight from the PDF they uploaded, not from generic subject knowledge.
One of them then uploaded his resume, which I hadn't planned for. VivaBuddy asked about his actual projects: what his role was in each one and which technologies he used. It then scored his answers. I built this for exam vivas, but it also works as interview practice, because the questions are grounded in whatever document you give it.
Current limits: it reads text-based PDFs only (no scanned images), handles one PDF per session, and the scores come from the model's judgment, so treat them as practice feedback, not a grade.
Why Does Open Innovation Matter?
Study notes and resumes are personal documents. Because the model is open and runs on infrastructure I control, a friend's PDF is never sent to a third-party model API, and I can say exactly where the data goes. That mattered to me when asking friends to upload a resume.
Open models also made experimentation cheap. I started with a small local model and moved to a larger one for the deployed app by changing configuration, not rewriting code. And anyone can run their own copy with Ollama and the README's setup steps, so it isn't tied to my account or someone else's pricing.



Top comments (0)