Inspiration

I am originally from South Africa, but I am currently a full-time teacher in South Korea and as such, I’ve seen too many students fall through the cracks—not because they lack talent, but because they lack access, I have also been a student in need and know what it feels like to be, in rural classrooms, where there's often no Wi-Fi, no computers, and no after-school support. I wanted to create something that could be their voice-powered tutor, even without the internet. iFundo was born to be exactly that: a lightweight, offline-first educational assistant that listens, speaks, and teaches.


What it does

iFundo is a voice-powered educational assistant designed to work in both online and offline environments. It allows students to:

  • Ask questions out loud and receive spoken answers
  • Study flashcards pulled from Amazon S3
  • Practice past exam papers
  • Interact with a natural-sounding AI voice (Amazon Polly) when online
  • Rely on locally stored AI knowledge (Titan embeddings + JSON) when offline
  • Use a simple, accessible Flask dashboard interface It runs entirely on a Raspberry Pi and starts up automatically with the system.

How we built it

  • Speech Recognition: Vosk offline STT engine
  • Offline Retrieval: JSON-based QA powered by Titan Embeddings G1 to support RAG
  • Voice Output: pyttsx3 (offline) and Amazon Polly (online)
  • Wake Word Detection: Custom stream listener for “Hello Teacher”
  • Dashboard: Flask web interface for flashcards and past papers
  • Content Hosting: Amazon S3 for flashcards and exams
  • Cloud AI Mode: Amazon Bedrock (Titan Text Express) for online query handling
  • Automation: Crontab to auto-launch the assistant on boot
  • Infra Tools: Git, EC2 (testing), and lots of Bash

Challenges we ran into

  • IAM Permissions: I couldn’t create buckets, push Docker images, or access ECR until I manually attached full access policies. I was learning AWS roles live, mid-deployment.
  • Terraform Errors: The Breaking Barriers deploy script broke on a malformed backend.hcl file. I had to edit and rebuild it by hand.
  • Docker on Linux: Even after installing Docker, it refused to work until I added myself to the Docker group and restarted.
  • Local Embedding Search: Without a vector DB, I had to write my own local query-matching system using cosine similarity from scratch.
  • pyttsx3 Voice Issues: The offline voice sounded like a robot until I manually adjusted voice rate and cleaned up response formatting.
  • CORS Hell: My S3-hosted flashcards wouldn't load in the dashboard until I fixed CORS permissions and rewrote the frontend JSON loader.
  • Threaded Audio Listening: Getting continuous audio + wake word detection + TTS + Flask to all work simultaneously on a Pi? That nearly broke me.

Accomplishments that we're proud of

  • Successfully deployed a working, voice-based tutor that works completely offline.
  • Created a fallback system that switches between local and cloud AI based on connectivity.
  • Learned and integrated multiple AWS services on the go (S3, Polly, Bedrock, EC2, IAM).
  • Used the Breaking Barriers AI Gateway deployment repo despite its quirks, and completed it with CLI tools, Terraform, and Docker.
  • Built a system that boots automatically and runs without needing a human operator—perfect for real classrooms.

What we learned

  • How to juggle multiple AWS tools with little-to-no upfront documentation
  • How to debug IAM and permissions errors under time pressure
  • How to architect for offline-first AI systems using lightweight libraries
  • How to deploy Docker images to ECR, and services to EC2, using Terraform
  • That the Raspberry Pi is wildly underpowered—but wildly capable with optimization
  • How to blend Python AI logic, web servers, CLI tools, and cloud services into a fully working product

What's next for iFundo

  • Add multilingual support for more African and Asian languages
  • Create a student-facing mobile app that connects to the Pi wirelessly
  • Expand the dashboard to include interactive tests and game-based learning
  • Add teacher features like analytics, voice notes, and student usage reports
  • Package iFundo into a deployable image (SD card) to roll out in classrooms with zero setup
  • Partner with education NGOs and local schools to pilot iFundo in low-resource regions

Built With

Share this project:

Updates