← Apps

AI learning platform

Mingdao

An AI Mandarin-learning PWA that turns conversation, pronunciation, reading, and review into one adaptive learning loop.

Conversation, pronunciation, reading and review feeding one learner model.
Credit
Live
Role
Product Engineer
Status
Live production app
Stack
ReactTypeScriptBunSupabaseiFlytek speech APIsFSRSPWA

The problem

As a Mandarin learner, I kept finding the same signals split across different tools: a tutor knew what I said, a dictionary knew what I tapped, and a flashcard app knew what I forgot, but none of them could help the next practice session. Mingdao was built to make those signals compound instead of disappear at the end of a session.

What I built

I designed and shipped the product end to end: a conversation tutor, pronunciation diagnostics, generated graded readings, dictionary interactions, flashcards, and the persistence and quota systems around them. A learner can speak or type in a scenario, inspect Mandarin corrections and vocabulary notes, save a word, read a generated HSK-level passage, answer comprehension questions, and return to FSRS review with those interactions attached to the same learner model.

Diagram: conversation (saved words and corrections), pronunciation (tone and phone errors), graded reading (lookups and answers) and FSRS review all feed one learner model. Vocabulary skill rests on FSRS review history and canonical word IDs; grammar signals and speech progress stay distinct. An exercise selector combines them into the next practice session, which feeds the loop again.
Every mode writes to the same learner model, so a session’s signals carry into the next one.

The app is available at app.mingdaoapp.com, with the public product context at mingdaoapp.com. It was also presented in a CCCM context and developed alongside early pilot conversations; this page does not turn that context into a claim of institutional backing or commercial traction.

Engineering decisions

  • Keep feedback attached to the learner’s turn. Tutor insight state is stored separately from the raw transcript and keyed to the original utterance. This keeps grammar and pronunciation feedback correct when a learner edits a transcription, asks for a correction, or resends a message. Pronunciation scoring can finish after the tutor reply, so iFlytek latency does not freeze the conversation.
  • Make speech diagnostics inspectable. The pronunciation pipeline preserves per-character results, tone and phone errors, timing offsets, and replayable clips rather than collapsing everything into one opaque score. Server-signed ASR/ISE/TTS requests keep provider credentials out of the browser; quota reservation and refund handle failed or abandoned work.
  • Generate readings as a workflow, not a blocking request. Reading creation runs asynchronously. A writer pass produces the passage, then an analyst pass adds segmentation, pinyin, meanings, and translations. Tapped words, sentence translation, and comprehension answers become vocabulary or grammar signals instead of being disposable UI interactions.
  • Use one learning state across modes. FSRS review history and canonical word IDs form the source of truth for vocabulary skill. Conversation saves, reading lookups, exercises, and phrase drills feed that state, while grammar and speech progress remain distinct signals that the exercise selector can combine.
Diagram: a writer pass produces an HSK-level passage and an analyst pass adds segmentation, pinyin, meanings and translations, both asynchronously. While reading, tapped words, sentence translations and comprehension answers become vocabulary or grammar signals in the learner model.
Reading generation runs in the background; what the learner does with the passage is kept as signal.

Results and boundaries

Mingdao is a deployed product rather than a chat prototype: it has authenticated persistence, background generation, push notifications, analytics, rate limits, and production speech and model integrations. The documented system includes HSK 1–4 lesson packs, pronunciation history, generated-question flows, and FSRS-backed exercise selection. I keep the outcome claim focused on the shipped learning system; the wiki does not support claims about revenue, large user numbers, or proven learning efficacy.