Docendo Discimus — By teaching, we learn.

Teach what you know. Discover what you don't.

Updated September 27, 2026 from the repository's merged README and implementation notes. Echo remains under active development.

Inspiration

Knowing something and explaining it clearly are different challenges. We wanted to create a learning experience in which the human becomes the teacher: explaining an idea, seeing where the explanation falls short, and trying again.

Echo grew from our Inverse Tutor concept. Our objective is to help the person doing the teaching deepen their understanding and practise communicating it. We began with recursion for UMBC introductory programming students and have expanded the prototype to support topics generated from uploaded study materials. Our broader vision includes workplace mentors and first-time team leads who know their jobs but have had little opportunity to practise teaching others.

What it does

Upload one or more PDFs, such as lecture slides, notes, or a study guide, and name your topic. Echo uses Gemini to generate a structured teaching rubric grounded in those documents. You then explain the topic in your own words to a simulated learner, which can ask clarifying follow-ups.

When you trigger an assessment, the learner answers from the validated teaching record. Three connected panels — Teach, Teaching record, and Assess & review — let you connect your explanation to concepts and assessment results. Selecting a concept highlights supporting words and related questions; review identifies missing evidence. You can reteach, reassess using a second matched question set, and compare the two preserved records.

The learner is a rubric-driven simulation, not an LLM answering questions. Deterministic code controls its responses and scoring. Its score measures explanation coverage under the rubric; it does not establish your mastery, prove human learning gains, or demonstrate that an AI model has learned or generalized.

Current progress

The prototype now includes:

  • PDF upload and Gemini-based topic/rubric generation.
  • Live explanation evaluation with exact quoted evidence validated against the user's original text.
  • A connected three-panel teaching, concept-map, and assessment interface.
  • Evidence-linked review, reteaching, reassessment, and comparison using pinned historical records.
  • Persistent sessions, messages, versioned learning records, assessment attempts, and results in PostgreSQL through Drizzle.
  • Optional ElevenLabs voice output for approved learner text. Teaching input remains typed; speech-to-text is not implemented.
  • Server-enforced session phases, revision checks, and session ownership controls.

The fixed recursion path and generated-topic path differ. Generated topics currently require every topic concept to be demonstrated before a question is marked correct. This is coarser than the fixed recursion rubric's question-specific partial-credit criteria. PDF-based topic quality and live evaluator accuracy need broader testing before we can claim consistent performance across subjects.

How we built it

Echo uses Next.js App Router, React 19, TypeScript, Tailwind CSS 4, and Zod. PostgreSQL/Tiger Data stores the learning history through Drizzle ORM. Vitest, Playwright, ESLint, and GitHub Actions support verification. The repository includes DigitalOcean App Platform hosting configuration; the current README reports a single-instance deployment.

Gemini has two roles: generating topic rubrics from uploaded PDFs and evaluating each submitted explanation against a rubric. Evaluation output passes exact-span evidence validation before being stored. The simulated learner then uses deterministic code to compose permitted responses and scores. The explanation evaluator is kept separate from assessment answer keys; topic generation creates the question material.

ElevenLabs turns already-approved learner text into optional speech. It does not generate the learner's reasoning or evaluate the student.

AI coding agents supported development under human direction and review. The repository documents Claude Code contributions to implementation, debugging, auditing, and verification. Codex supports project framing and prototype preparation. Antigravity is used as an additional debugging coding agent.

Challenges we're addressing

A central design challenge is ensuring the simulated learner responds only from a validated teaching record. Other challenges include linking evidence to the student's actual words, handling contradictory explanations, preserving earlier attempts, and adapting a carefully authored recursion assessment to PDF-generated topics.

The generalized path introduced differences in question structure and review data. Repository follow-up work addressed dynamic question/review mapping, strict schema validation, and non-recursion database coverage. Question-specific scoring for generated topics remains an important follow-up.

Accomplishments so far

Echo has progressed from a development scaffold to an integrated teaching and review prototype with PDF topics, persistence, comparison, and optional voice. The latest README reports a passing verification gate with 470 tests across 26 files, plus content validation, secret scanning, production build checks, bundle checks, and production-startup guards.

Repository verification notes report 54/54 held-out evaluator fixtures passing on the fixed recursion rubric with the recorded Gemini model. That result may cover arbitrary PDF-generated topics but is not evidence of human learning gains. These are recorded repository results.

What we're learning

A useful learning experience needs more than a rising score. It needs an explanation of what changed and an independent way to evaluate whether the person benefited. Separating evidence validation, simulated learner behavior, and human-learning evaluation has helped us keep those claims clear.

Expanding beyond recursion also reveals a tradeoff: accepting new study materials makes Echo more flexible, but generated assessments need deeper validation and more precise scoring than a single authored topic.

Known limitations and next steps

  • Improve generated-topic scoring from the current all-concepts requirement to question-specific prerequisites and partial credit.
  • Evaluate live extraction and explanation accuracy across a broader set of PDF topics.
  • Replace process-local rate limiting with shared, durable quota coordination before scaling beyond one instance.
  • Retain typed input and optional voice output; speech-to-text is future work.
  • Complete and record the latest deployed end-to-end demo verification.

For community impact, we propose an opt-in UMBC pilot with separate student pre/post application questions and an equal-time ordinary-practice comparison. We would assess explanation quality and application performance independently of the simulated learner's score and gather usability feedback. This pilot has not been conducted; no learning gains or institutional partnership are claimed.

Workplace teaching practice remains a future expansion. Mentors could rehearse explaining unfamiliar concepts to newcomers; workplace scenarios, customer demand, and a possible team subscription remain hypotheses to validate.

Trying the current prototype

To set up on localhost: Follow the repository README for supported Node.js setup, dependency installation, environment configuration, database migrations, and local startup. The integrated app requires Gemini and PostgreSQL configuration; optional voice requires ElevenLabs. A separate test database is required for database tests. Review migration instructions before applying them to retained data.

Source code: https://github.com/UMBC-Hackathon-2026/Echo

Built With

Share this project:

Updates

Submission history