LearnSynth

Turn text, audio, or video into study-ready materials—summaries, concept maps, quizzes, cloze drills, flashcards, and TTS.

Flutter client + FastAPI backend orchestrating open and hosted LLMs. Default model: GPT-OSS-20B (OpenAI open model) via an OpenAI-compatible endpoint.

App Screenshots

See LearnSynth in action

Add Content Screen - Upload and process your study materials

Add Content

Upload text, PDF, audio, or video files

Library Screen - View your study materials collection

Library

Organize and access your study materials

How it uses GPT-OSS-20B

Leveraging a powerful, open model for high-quality generation.

  • Primary open model: GPT-OSS-20B
  • Routed via an OpenAI-compatible /v1/chat/completions interface (streaming), exposed to the client as /llm/generate.
  • Strong performance for summarization, key term selection, and Q&A generation.
  • Swappable providers via environment variables; fallbacks allowed if configured.

Core Features

Everything you need to accelerate your learning workflow.

One-click study pack

From any text, PDF, audio, or video source.

Summaries & deep prompts

Get the gist and explore deeper concepts.

Concept map

Visualize connections with data + image export.

Quizzes & cloze drills

Quickly validate your understanding.

Flashcards + simple SRS

Reinforce key terms and definitions.

Whisper transcription + OCR

Powered by PyMuPDF and Tesseract for accuracy.


High-Level Architecture

A modern, scalable stack for robust performance.

Flutter (Android / Windows / Web)

FastAPI backend:

/upload-content → ingest (text/pdf/audio/video → text)

/analyze → summary, concept map, prompts, quiz, flashcards

/llm/generate → streaming, OpenAI-compatible

Services: Whisper (AV), PyMuPDF + Tesseract (OCR), gTTS (TTS)

LLM providers: GPT-OSS-20B (primary), optional fallbacks via env vars


Client Build Flags

API_BASE

Backend URL (release builds default to production; override with --dart-define=API_BASE=...).

ENABLE_OFFLINE_LLM

false by default (enable only when local GGUF models are installed).

Quick Start Snippets

Flutter web/windows/apk (production backend):

flutter run --dart-define=API_BASE=https://learnsynth-api.fly.dev --dart-define=ENABLE_OFFLINE_LLM=false

Local dev (local backend + offline LLM):

flutter run --dart-define=API_BASE=http://localhost:8000 --dart-define=ENABLE_OFFLINE_LLM=true

Backend Quick Start

Get the server running with Docker Compose.

cd backend
cp .env.example .env
docker compose up --build

Key endpoints:

/upload-content /analyze /llm/generate /speak /export
Security Note: Do not commit secrets. .env is ignored. Backend masks tokens in logs.

Technology Stack

Flutter Dart FastAPI Python Docker Whisper PyMuPDF Tesseract gTTS

Downloads & Links

Get the latest builds and resources.

Verify checksums (optional)

Use PowerShell to verify file integrity with SHA-256.

Get-FileHash .\\app-release.apk -Algorithm SHA256
Get-FileHash .\\LearnSynth-Setup-1.0.0.exe -Algorithm SHA256

Roadmap

What's coming next for LearnSynth.

In-app editing for concept maps
Better quiz validation & distractors
Model selector (multiple OSS endpoints)
iOS/macOS packaging