Project Info
Inspiration
We've all been in that Zoom lecture where the instructor asks "Any questions?" and silence follows. Not because everyone understands—but because no one wants to interrupt. Students tab out to Google concepts mid-lecture, losing context. Instructors teach blind, with no feedback loop until the exam reveals the damage. The problem isn't recording or transcription. Tools like Otter.ai capture words. But they don't close the learning loop. TA-DA was born from a simple question: What if the classroom could sense confusion in real time and intervene—without breaking the flow? We wanted to build a teaching assistant that lives where learning happens: inside Zoom, always listening, always ready, never interrupting unless you need it.
What it does
TA-DA is an AI-powered teaching assistant built natively into Zoom using the Real-Time Meeting SDK (RTMS). It runs as an in-meeting side panel—no browser tabs, no context switching. Core Features: Auto-Generated Concept Cards: As the instructor teaches, TA-DA autonomously detects topic boundaries and generates concept cards with explanations and examples—appearing in real time on the Learning Timeline. Auto-Generated Concept Cards: As the instructor teaches, TA-DA autonomously detects topic boundaries and generates concept cards with explanations and examples—appearing in real time on the Learning Timeline. Intelligent Q&A: Students ask questions directly in the side panel. TA-DA doesn't just answer—it retrieves relevant transcript context, explains the concept, and provides examples. Intelligent Q&A: Students ask questions directly in the side panel. TA-DA doesn't just answer—it retrieves relevant transcript context, explains the concept, and provides examples. Live Learning Analytics: Instructors see which concepts students marked as "Lost" or "Understood," enabling instant intervention. Live Learning Analytics: Instructors see which concepts students marked as "Lost" or "Understood," enabling instant intervention. Catch-Up Summaries: Joined late? Ask TA-DA for a summary and get a structured recap of everything covered so far. Catch-Up Summaries: Joined late? Ask TA-DA for a summary and get a structured recap of everything covered so far. No Tab Switching: Everything happens inside Zoom. No Googling mid-lecture. No context loss. Just seamless learning. No Tab Switching: Everything happens inside Zoom. No Googling mid-lecture. No context loss. Just seamless learning.
How we built it
We designed TA-DA as a real-time, multi-agent system with four key layers: 1️⃣ Zoom RTMS + SDK (Frontend) Built a native Zoom app using the Real-Time Meeting SDK for in-meeting side panels Integrated RTMS pipeline to stream live transcripts and meeting events Created a responsive UI with Learning Timeline, Q&A interface, and analytics dashboard Designed for Zoom Marketplace deployment—one-click install for educators 2️⃣ Node.js Backend (Orchestration) Express.js API to handle transcript ingestion, agent communication, and search queries WebSocket events for real-time updates between Zoom, Elastic, and Fetch.ai agents Proxy layer for concept card retrieval and agent conversation endpoints 3️⃣ Elasticsearch (Memory Layer) Two indices: ta-da-latest (transcript chunks) and ta-da-concept-cards (structured concepts) Semantic search with vector embeddings for intelligent retrieval Filters by meeting ID, timestamps, and concept tags The single source of truth for everything we know about the lecture 4️⃣ Fetch.ai Agents (Intelligence Layer) Concept Card Agent: Runs on Fetch.ai's Agentverse platform Monitors new transcript chunks via Redis state tracking Detects topic boundaries using LLM-powered segmentation Generates concept cards (title, short explanation, example) and indexes them to Elastic Autonomous 60-second intervals with pause/resume controls Concept Card Agent: Runs on Fetch.ai's Agentverse platform Monitors new transcript chunks via Redis state tracking Detects topic boundaries using LLM-powered segmentation Generates concept cards (title, short explanation, example) and indexes them to Elastic Autonomous 60-second intervals with pause/resume controls Agent Tools: query_elastic_chunks() – Retrieve transcript context create_concept_card() – Generate and store concept cards call_backend_agent_converse() – Provide summaries and answers Agent Tools: query_elastic_chunks() – Retrieve transcript context create_concept_card() – Generate and store concept cards call_backend_agent_converse() – Provide summaries and answers LLM Integration: OpenAI GPT-4 for concept extraction, summarization, and Q&A LLM Integration: OpenAI GPT-4 for concept extraction, summarization, and Q&A 5️⃣ Tech Stack Frontend: Zoom RTMS SDK, JavaScript, CSS Backend: Node.js, Express.js, WebSockets Memory: Elasticsearch (with semantic search) Agents: Fetch.ai Agentverse, Python LLM: OpenAI GPT-4 / xAI State: Redis (incremental processing, pause/resume) Deployment: Docker, cloud-ready architecture
Challenges we ran into
1. Real-Time Agent Coordination Running autonomous agents while avoiding duplicate processing was tricky. We solved it with Redis-based state tracking: each agent stores the last processed chunk index per meeting and only processes new chunks incrementally. 2. Zoom RTMS Learning Curve The Real-Time Meeting SDK documentation was sparse. We spent hours debugging WebSocket connections, transcript streaming delays, and side panel rendering. Eventually, we built a robust event-driven architecture that handles live data gracefully. 3. Live Avatar Instability We built a TA avatar assistant with lip-sync and custom-configured voice for a human-like learning experience. The feature works but isn't production-stable yet—lip-sync timing drifts, and rendering performance degrades in low-bandwidth scenarios. It's one of our most exciting features, but needs optimization. 4. Concept Boundary Detection Determining when one "concept" ends and another begins is subjective. We iterated on LLM prompts, testing different segmentation strategies (sliding windows, topic modeling, explicit markers) before landing on a hybrid approach: fixed chunk windows + LLM-based topic extraction. 5. Elastic Search Latency Initially, our searches were slow because we were doing full-text queries on large transcript indices. We optimized by: Adding semantic vector search with embeddings Filtering by meeting ID and timestamps Pre-indexing concept cards separately from raw transcripts 6. Fetch.ai Agent Debugging Debugging agents running on Agentverse was non-trivial—logs were async, and testing required deploying to the cloud. We added verbose logging, local Redis mocking, and a manual trigger endpoint to iterate faster.
Accomplishments we're proud of
Built a fully functional AI teaching assistant in 36 hours—from idea to live demo Seamless Zoom integration with native side panel—no browser tabs required Autonomous agents that generate concept cards without human intervention Real-time learning analytics that give instructors actionable feedback Scalable architecture ready for thousands of concurrent classrooms Closed the learning loop: sense confusion → intervene → verify understanding We didn't just build a transcript tool. We built a learning intelligence system that actively improves education outcomes.
What's next
for TA-DA Short-term: Stabilize Live Avatar: Fix lip-sync timing, optimize rendering, and make the TA avatar production-ready for a truly immersive learning experience Voice-based Q&A: Students speak questions instead of typing Multi-language support: Real-time translation for global classrooms Instructor dashboards: Advanced analytics—confusion heatmaps, engagement scores, concept mastery Pre-class prep mode: Upload slides/notes before class; TA-DA cross-references during lecture Long-term: TA-DA as Substitute Teacher: Train TA-DA on a professor's teaching style, course materials, and past lectures—if the professor can't join, TA-DA delivers the lecture autonomously with the live avatar Adaptive learning paths: TA-DA generates personalized review sessions based on which concepts each student struggled with Cross-meeting memory: Agents remember past lectures, building a knowledge graph across an entire course Federated agents: Specialized agents for different subjects (Math Tutor, Code Debugger, Writing Coach) Zoom Marketplace launch: One-click install for universities, bootcamps, and corporate training The vision? Every classroom gets a teaching assistant that never sleeps, never judges, and scales infinitely. Education shouldn't be a guessing game. With TA-DA, it won't be. TA-DA: Teaching Assistant Done Autonomously The closed-loop learning system built for Zoom.
TA-DA!
A Live Zoom Teaching Assistant that Detects Confusion, Fixes It in the Moment, and Verifies Understanding
Built at TreeHacks 2026.
What is TA-DA?
TA-DA! is a real-time AI Teaching Assistant built directly inside Zoom. It transforms passive lectures into an active learning loop:
Sense confusion → Intervene instantly → Verify understanding → Generate personalized next steps
Unlike traditional meeting tools that just transcribe or summarize, TA-DA actively changes what happens during class and closes the learning loop afterward.
The Problem
Live classes fail for predictable reasons:
- Instructors don't know what isn't landing
- Questions don't scale (duplicates, vague, shy students)
- No verification of understanding
- Students leave without clear next steps
Most tools are passive. TA-DA is active.
What It Does
| Feature | Description |
|---|---|
| Live Concept Cards | Auto-generated during lecture: concept name, short explanation, example, timestamp, and one quick check question. Builds a live "course memory." |
| Real-Time Confusion Heatmap | Students signal Lost / Kinda / Got it / Question. TA-DA clusters signals, surfaces top confusing concepts, duplicate questions, and suggested interventions. |
| Instructor Intervention Engine | On confusion spike, instructor can generate a 30-second re-explain (simpler analogy, reframed explanation, quick poll). Optional HeyGen Avatar reads it live. |
| Multi-Turn Diagnostic Tutor | Agentic core: clarifying questions, targeted explanations, check questions, adaptation, and student learning profile updates. |
| Learning Contract (After Class) | Per student: what they struggled with, what they nailed, 2 micro-practice actions (≤10 min), 3-question verification. Instructor gets concept-by-concept understanding %, top misconceptions, and suggested tweaks. |
Architecture
| Layer | Tech | Location |
|---|---|---|
| Frontend | Zoom App (in-meeting side panel), Next.js on Vercel | frontend |
| Backend | Render (API, WebSocket, background worker) | backend |
| Memory & retrieval | Elastic Cloud, Jina embeddings, hybrid retrieval | elastic |
| Multi-agent | Fetch.ai (Moments, Confusion, Tutor, Contract agents) | fetch-ai |
| Research | Perplexity Sonar API (sources, misconception detection) | perplexity |
| Avatar (optional) | HeyGen Avatar API (re-explain mode) | heygen |
Sponsor Alignment
TA-DA is designed to be award-eligible across:
- Zoom × Render — In-meeting app + real-time backend
- Elastic — End-to-end agentic system on Elasticsearch
- Fetch.ai — Multi-agent workflow + monetization-ready
- HeyGen — Real-time avatar integration
- Vercel — Production-ready deployed app
- Perplexity Sonar — Grounded research + citations
Getting Started
1. Clone the repo
git clone https://github.com/pb2323/TA-da
cd TA-da
2. Install dependencies
npm install
3. Environment variables
Create .env.local with:
ZOOM_CLIENT_ID=
ZOOM_CLIENT_SECRET=
ELASTICSEARCH_URL=
ELASTIC_API_KEY=
RENDER_BACKEND_URL=
SONAR_API_KEY=
HEYGEN_API_KEY=
FETCH_AGENTVERSE_KEY=
4. Run locally
npm run dev
5. Deploy
- Frontend: Deploy to Vercel
- Backend: Deploy API + worker to Render
- Elastic: Provision Elastic Cloud cluster; configure Jina embeddings inference endpoint
Demo Script (2-minute flow)
- Start Zoom mini-lecture
- Concept cards appear live
- Two students hit "Lost" → instructor dashboard updates
- Click "Generate 30-sec re-explain"
- Student asks question → TA-DA runs multi-turn diagnostic
- End class → show Learning Contract
Vision
TA-DA turns Zoom from a video platform into a Learning Operations System: not just notes or summaries, but a closed-loop intelligence layer for real-time education.
Repository structure
- frontend — Next.js app (Vercel) + Zoom in-meeting UI
- backend — Render API, WebSocket server, workers
- elastic — Elastic Cloud, search, concept cards, embeddings
- fetch-ai — Multi-agent layer (Agentverse)
- heygen — HeyGen avatar integration
- perplexity — Perplexity Sonar research & verification
- docs — Architecture, demo script, and design notes
Team — Built at TreeHacks 2026. 36 hours. One mission: make learning adaptive in real time.
Analysis
View
Metric
- 12
- 6
- 6
Figures cover GitHub contributors during the hackathon window. A co-authored commit counts in full for each author, so per-member totals add up to more than the whole-team figures.
Technology
- CSSIn code
- ExpressIn code
- HTMLIn code
- JavaScriptIn code
- OpenAIIn code
- PythonIn code
- RedisIn code
- TypeScriptIn code
- LangChainClaimed
8 of 9 appear in the indexed code. 1 claimed on Devpost could not be matched to code, which may simply mean the tool leaves no trace in the repository.
AI coding agents
- CursorCommits
Detected from committed agent config files and commit authorship. Absence of a signal is not proof an agent was unused.
Codebase size
Source size
769 KB
Source files
43
Counts recognized source files only; vendored directories, binaries and lockfiles are excluded, so this is smaller than the repository on disk.
Repository
pb2323/TA-da
68 files · 1.7 MB · @ b396763
Structure
Application logic
26 files · 38%Domain rules, services and shared utilities.
Supporting
Layers are inferred from where files sit in the tree, not from reading the code. A project that names its directories unconventionally will read oddly here — open the file browser to check anything the diagram implies.
Languages
- JavaScript73%
- Python8%
- TypeScript7%
- Markdown5%
- CSS4%
- HTML3%
- Other (2)0%
Share of indexed source by file size. Binary and vendored files are excluded.
Dependencies
zoom-RTMS-SDK/package.json
npm · 20- @elastic/elasticsearch
- @inworld/runtime
- @zoom/rtms
- dotenv
- express
- livekit-client
- sharp
- ws
- +12 more
fetch-ai/requirements.txt
pypi · 8- elasticsearch
- openai
- pydantic
- python-dotenv
- redis
- requests
- uagents
- uagents-core
backend/package.json
npm · 3- @elastic/elasticsearch
- dotenv
- express
Declared in the repository’s manifests at the indexed commit. A declared package is not proof it is used, and runtime dependencies are listed first.
This project’s features have not been analysed yet.
Export this project's context (description, README, evidence, key source files) to chat with an AI agent elsewhere.