Inspiration

Traditional study tools test what you can write or recognize, but real vivas test whether you can think, explain, and defend your answer aloud. We built Viva to simulate that pressure and turn speaking into an active learning loop.

What it does

Viva asks conceptual questions using text-to-speech, listens to your spoken answer, transcribes it, and evaluates it using an LLM-based rubric covering technical accuracy, missing concepts, confidence, and clarity. It also calculates words-per-minute and filler-word rate locally, then asks a targeted Socratic follow-up based on your biggest knowledge gap.

How we built it

Viva is built with React Native + Expo using a modular architecture:

  • Audio: native TTS/STT through Expo modules
  • AI Engine: Gemini → Groq → local mock fallback
  • Evaluation: structured JSON rubric
  • Billing: RevenueCat Test Store with official RevenueCatUI
  • Routing: Expo Router
  • Testing: Jest
  • CI: GitHub Actions

The app runs in demo mode with zero API keys and zero backend cost.

Challenges we ran into

The biggest challenge was making the experience feel like an actual oral examiner rather than a chatbot. We had to separate objective delivery metrics from subjective LLM grading, enforce structured outputs, handle speech recognition across platforms, and keep the audio, grading, and billing modules isolated.

Accomplishments that we're proud of

We built a complete oral-exam loop: Ask → Speak → Transcribe → Evaluate → Identify gaps → Follow up. We also implemented a zero-cost demo mode, provider fallback, local delivery analytics, custom syllabus support for Pro, and RevenueCat's official paywall flow without building a custom billing UI.

What we learned

We learned that AI evaluation becomes significantly more reliable when the model has a strict rubric and structured output instead of simply being asked to “grade” an answer. We also learned that keeping deterministic metrics local makes the system more trustworthy and easier to debug.

What's next for Viva

Next, we want to add long-term progress tracking, deeper syllabus personalization, adaptive difficulty, richer speaking analytics, interview-specific modes, and personalized revision plans based on recurring knowledge gaps.

Built With

Share this project:

Updates

Submission history