Skip to content

Add TinyTeach: PDF-based curiosity-driven tutor app - #7

Open
Ad-gh-26 wants to merge 1 commit into
vicharanashala:mainfrom
Ad-gh-26:feature/tinyteach
Open

Add TinyTeach: PDF-based curiosity-driven tutor app#7
Ad-gh-26 wants to merge 1 commit into
vicharanashala:mainfrom
Ad-gh-26:feature/tinyteach

Conversation

@Ad-gh-26

Copy link
Copy Markdown

What is TinyTeach?

TinyTeach is a standalone Python/Streamlit app that turns any programming-language
PDF (Python, Java, C++, Rust, Go, etc.) into a personal tutor. It parses and indexes
the book locally with FAISS, then uses a small LLM to generate 5–8 progressive case
studies plus a learning roadmap for any topic the user asks about.

Key features

  • Accepts any programming PDF — language behavior is handled through a pluggable
    prompt template registry, so the retrieval core stays language-agnostic
  • Generates 5–8 case studies per topic, ordered novice → intermediate → advanced
  • Each case study includes a cross-domain real-world analogy, starter code,
    expected output, progressive hints, and a fact check
  • Produces a learning roadmap with milestones mapped to case studies
  • Supports 4 pluggable free LLM providers: HF Inference Router, HF Local, Groq,
    and Ollama
  • Grounded generation — if a topic isn't covered in the uploaded book, it says so
    instead of making something up
  • Case studies and roadmap can be exported as JSON or Markdown
  • No infrastructure required — runs on a free HuggingFace Space

Why it's added as a separate folder

TinyTeach runs on a different stack (Python/Streamlit) than the existing
client//server/ app in this repo, so it's added as a self-contained project
under /tinyteach rather than merged into the existing structure.

What's included

  • Full source code (src/) — parsing, chunking, embedding, retrieval, generation,
    and UI layers
  • Test suite (tests/) — unit and integration tests
  • Documentation (docs/, README.md, PROJECT_BLUEPRINT.md, context.md)
  • .env.example for configuration (no real secrets included)

What's excluded

  • .env (contains local secrets)
  • data/ (FAISS indices — regenerated automatically at runtime from uploaded PDFs)
  • Cache/log files (__pycache__, .pytest_cache, *.log)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant