Lexical retrieval, inspectable outputs.
Flask and a plain JavaScript interface connect document parsing, selected-source retrieval and SQLite storage. BM25-style scoring ranks overlapping chunks or whole files, with word ranges, matched terms and retrieval diagnostics.
The generator selects source sentences and builds answers or flashcard templates. It makes no model call. Audience, tone and creativity controls are visible, but their presence does not establish LLM-level style control or semantic understanding.

