Inspiration

What it does

How we built it

Inspiration

Teachers often receive slide decks that are visually complete but not yet ready for teaching. They still need to understand difficult terminology, explain charts, prepare speaking notes, anticipate student questions, and decide how to present each slide naturally.

This challenge becomes even greater when the teaching materials and the classroom use different languages. TeachingHub Lecture Prep was created to help teachers turn existing PPTX and PDF materials into structured, multilingual, classroom-ready lessons—while keeping the teacher in control of the final content.

Although the project initially focused on Chinese teachers working with English materials, it now supports Chinese, English, and bilingual workflows. Its language architecture is designed to support teachers working in additional languages in the future.

What it does

Teachers upload a PPTX or PDF and select the desired output language. TeachingHub Lecture Prep then generates:

  • Slide-by-slide teaching notes
  • Editable lecture scripts
  • Explanations for charts and content-heavy slides
  • Language-aware academic terminology annotations
  • AI narration for each slide
  • Narration embedded directly into the generated PowerPoint
  • A downloadable DOCX lecture script
  • Per-slide MP3 files and a complete narration ZIP
  • A full-screen browser Teaching Mode with slide navigation, captions, scripts, and continuous narration

Teachers can review and edit the generated script before producing the audio. The application currently provides Chinese, English, and bilingual output modes, with a persistent Chinese/English interface switch.

How we built it

The application uses a FastAPI and Python backend with a browser-based JavaScript interface.

GPT-5.6 processes the instructional content through the OpenAI Responses API. Typed structured outputs are used to generate consistent slide summaries, teaching points, terminology, chart explanations, and lecture scripts.

The content-generation and speech-generation stages are deliberately separated. GPT-5.6 first creates an editable script for each slide. After the teacher reviews it, gpt-4o-mini-tts generates the narration using a warm, gentle teacher voice. The application can then embed that narration into the downloadable PPTX.

Codex was central to the Build Week development process. It helped us:

  • Extract the lecture-preparation workflow from a larger TeachingHub platform
  • Refactor it into a standalone, reproducible project
  • Migrate model calls to the Responses API with typed outputs
  • Build bilingual and language-consistent generation workflows
  • Implement background processing, cancellation, and refresh recovery
  • Add browser Teaching Mode
  • Embed slide narration into generated PowerPoint files
  • Improve privacy controls, testing, Docker support, and release checks

Challenges we faced

One major challenge was keeping every output in the teacher-selected language. Notes, terminology, scripts, speech, DOCX files, and PowerPoint output all needed to follow the same language setting.

Another challenge was combining generated narration with the original presentation without disrupting its visual layout. PDF-derived slides required especially careful terminology annotation so that labels would not cover the original content.

Long-running AI and speech tasks also required recoverable progress, cooperative cancellation, resource limits, and clear error handling. Finally, the application needed to keep API keys on the server and prevent sensitive teaching content from appearing in telemetry.

What we learned

We learned that an educational AI tool should not simply generate a finished answer. Teachers need to review, edit, and control how AI-generated material is presented.

Separating lecture-script generation from speech synthesis improved both quality and transparency. Structured outputs also made complex slide processing more reliable and easier to validate.

Most

Challenges we ran into

Accomplishments that we're proud of

What we learned

What's next for TeachingHub Lecture Prep

Built With

  • codex
Share this project:

Updates