DEV Community

Pratish Chaudhary
Pratish Chaudhary

Posted on

I built my friend a language trainer with backboard.io that runs in a website hosted by render.

Hacktoberfest Weekend Challenge: Build for a Friend Submission 🤝

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

What I Built

My friend wanted to learn Korean language from a long time. She started but got overwhelmed. So, I built her a website where she can learn Korean words for English words which she can pair with other learning apps like: Duolingo.

You can record yourself and send it to the bot and voila it will convert it to korean and speak with you.

Demo

Link to my website: https://october-sober.onrender.com/

Code

OCTOBER_SOBER

This is my hackathon project for MLH HacktoberFest.

Korean Tutor Setup

The FastAPI app transcribes Korean speech with Whisper, sends the transcript to a Backboard assistant for document retrieval and Gemini generation, then speaks the reply in Korean. Configure the Google/Gemini provider and a supported model in Backboard before running the app.

  1. Install dependencies with pip install -r requirements.txt.
  2. Copy .env.example to .env and set the Backboard API key, assistant ID, and model name. Do not put API keys in source files.
  3. In Backboard, upload curated Korean lesson documents to the configured assistant and wait until each document is indexed.
  4. Run uvicorn main:app --reload and open http://127.0.0.1:8000.

To check the Backboard assistant independently, run python test.py after setting the environment variables. Unit tests for request construction run with python -m pytest tests -q.

The app does not send a thread ID and sets Backboard memory to…

How I Built It

My project uses the open-weight Whisper Tiny speech-recognition model through faster-whisper, running locally with CTranslate2 on CPU using INT8. The FastAPI backend receives the learner’s English audio, transcribes it, and sends the text to a Backboard assistant, which retrieves relevant lesson material and routes generation to Gemini 3.8 Flash. The Korean response is then converted to speech with gTTS and returned to the learner.

The open-source/local AI component is speech recognition. Gemini is a hosted, proprietary model, and Backboard provides the managed RAG and assistant orchestration; the project does not currently run an open-weight conversational LLM locally.

Why Does Open Innovation Matter?

Open innovation let me build the tutor from interchangeable pieces instead of relying on one all-in-one service. I can run the open-weight Whisper Tiny model locally through faster-whisper for speech recognition, then connect that transcript to Backboard’s RAG and Gemini for lesson-grounded replies, and gTTS for speech. That gives me more control over the transcription model and deployment, and makes it easier to replace or adapt individual components.

It’s a hybrid system, not a fully open-source stack: Backboard and Gemini are hosted services. So learner audio is transcribed locally, but the resulting text is sent to those services; open innovation gives me choice and control at the component level, not complete data independence.

My Agent Session

Prize Categories

Best Use of Render

Best Use of Backboard

Top comments (0)