Nihongo Path is a production-quality mobile application that takes a self-study learner from JLPT N5 to JLPT N2. It is built as a single React Native + Expo + TypeScript codebase for Android and iOS, with an offline-first SQLite store for all lessons, progress, and spaced-repetition data. The interface and support languages are English and Urdu, with full right-to-left support for Urdu text blocks.
The product intent is a patient, wellbeing-paced daily study ritual rather than a gamified arcade: a learner opens the app, sees one clear "Today" arc, works through review, new words, kanji, grammar, writing, listening, speaking, and a short quiz, and watches a long-horizon streak and level progression build up over months. The audience is English- and Urdu-speaking adults studying Japanese from beginner to upper-intermediate level, often on a mid-range Android phone, frequently at night.
The app is content-driven: every word, kanji, and sentence is presented in a four-line stack (Japanese with furigana, Romaji, English, Urdu RTL), and each level uses only the kanji and grammar of that level or lower. Content is stored as JSON by level and unit and imported into SQLite. Open datasets (JMdict, KANJIDIC2, KanjiVG, Tatoeba) and community level lists supply the linguistic data, with licenses respected and attribution surfaced in Settings. An optional, online-only AI tutor calls Claude through the user's own small backend proxy; no API key is ever placed inside the app, and the model name is a configuration value.
Nihongo Path is delivered as a mobile application (Android and iOS) with an optional companion backend proxy owned by the user for the AI tutor. All core learning work — lessons, kana, kanji, writing, listening, speaking, spaced repetition, quizzes, mock tests, progress, and settings — runs offline against a local SQLite database. Only the AI tutor requires network connectivity, and it is explicitly optional.
The current delivery covers the full N5→N2 learning journey as specified: onboarding and placement, kana, the daily lesson arc, kanji study with stroke order and stroke checking, writing practice, listening with TTS dialogues, speaking roleplay with speech recognition and a typed fallback, SM-2 spaced repetition with a review-queue badge, weekly review tests and level mock tests with an 80% pass mark to unlock the next level, progress tracking with streak/XP/accuracy/weak points/weekly charts, the optional online AI tutor, and settings including display toggles, voice speed, theme, font size, reminder time, and progress backup export/import.
Actors are: the Japanese Learner (N5–N2), the AI Tutor Chat User (online), and the Content Maintainer / Importer. The AI tutor's Claude provider is an external service reached only through the user's own backend proxy. The app owns learner identity so that durable learning state, progress, and review queues remain bound to the correct learner across sessions and devices.
Narrow exclusions: the AI tutor is optional and online-only; no API key is stored in the app; N3 and N2 content is import-ready with the same schema but real authored content is created for N5 first, then N4 as a second pass; audio and speech features are only claimed to work when tested on a real device.
Nihongo Path is a first-party mobile application. The learner's durable state — lessons completed, SM-2 scheduling, streak, XP, accuracy, weak points, settings, and backup — is owned by the app and stored locally in SQLite, so the app must establish and verify learner identity before that protected state is created or resumed. The anonymous entry surface (Landing) explains the product and its N5–N2 journey; Sign Up establishes a new learner identity; Login verifies a returning learner, an online tutor user, or an authorized content maintainer. Content Maintainer / Importer access to Content Import is provisioned or authorized separately and is not self-service.
The AI tutor is a distinct, optional, online-only workflow. It is owned by the app's AI Tutor surface but depends on the user's own backend proxy, which holds the Claude API key server-side; the app never contains the key, and the model name is a configuration value. When there is no network or the proxy is unreachable, the AI tutor is unavailable and the rest of the app continues to work offline.
Microphone permission and an installed Japanese TTS voice are prerequisites for the speaking and audio workflows respectively; the app must handle their absence with clear recovery guidance (including how to install the Japanese voice) rather than failing silently. SQLite initialization and content import must complete before durable lessons and review queues can be used.
Future horizon: N3 and N2 are import-ready with the same schema but are not authored as real content in the current delivery; real content is created for all of N5 first, then N4 as a second pass. Play Store / App Store build steps with EAS are part of the final phase.
The following open datasets and community sources are authoritative content sources for Nihongo Path. Each must be used under its own license, and each must be listed on the Attribution screen in Settings.
Content is stored as JSON files by level and unit with fields: id, level, jp, furigana, romaji, en, ur, audioText, tags. Any uncertain reading or meaning is marked needs review rather than guessed. Level targets: N5 ~100 kanji / 800 words; N4 ~300 kanji / 1,500 words; N3 ~650 kanji / 3,700 words; N2 ~1,000 kanji / 6,000 words.
needs review.Each requirement is a distinct story point with provenance, lifecycle facts, and observable acceptance. Provenance is explicit (source-stated), basic_default (accepted default), or required_inference (indispensable inferred mechanics).
FR-1 — Learner self-service enrollment (required_inference) As a Japanese Learner (N5–N2), I should be able to create my own learner identity from Sign Up so that my durable learning state is bound to me.
FR-2 — Returning verification (required_inference) As a Japanese Learner (N5–N2), an AI Tutor Chat User (online), or a Content Maintainer / Importer, I should be able to verify my identity from Login so that I can resume my protected state.
FR-3 — Onboarding setup (explicit) As a Japanese Learner (N5–N2), I should be able to choose my interface language (English / Urdu / both), my daily goal (10 / 20 / 30 min), and my reminder time (default 9:00 PM, changeable) during Onboarding.
FR-4 — Placement quiz (explicit) As a Japanese Learner (N5–N2), I should be able to take a placement quiz during Onboarding so that my starting level is determined.
FR-5 — Kana charts and audio (explicit) As a Japanese Learner (N5–N2), I should be able to view hiragana and katakana charts and tap a kana to hear it on Kana.
FR-6 — Kana writing practice and quizzes (explicit) As a Japanese Learner (N5–N2), I should be able to do kana writing practice and take kana quizzes on Kana.
FR-7 — Daily lesson arc (explicit) As a Japanese Learner (N5–N2), I should be able to complete a 30–40 minute Daily Lesson that reviews 10 old items, introduces 5 new words, 3 kanji, and 1 grammar point, then covers writing, listening, speaking, and a 10-question quiz.
FR-8 — Kanji study (explicit) As a Japanese Learner (N5–N2), I should be able to study a kanji's meaning, on'yomi, kun'yomi, stroke count, animated stroke order, and example words on Kanji.
FR-9 — Trace-then-write-from-memory with stroke checking (explicit) As a Japanese Learner (N5–N2), I should be able to trace a kanji and then write it from memory on a canvas with stroke checking on Kanji.
FR-10 — Writing practice (explicit) As a Japanese Learner (N5–N2), I should be able to do kanji tracing, typing practice with a romaji-to-kana keyboard, and sentence building by tapping word tiles on Writing.
FR-11 — Listening practice (explicit) As a Japanese Learner (N5–N2), I should be able to listen to TTS dialogues at normal and slow speed, complete dictation, answer 3 comprehension questions, and toggle show/hide text on Listening.
FR-12 — Speaking roleplay (explicit) As a Japanese Learner (N5–N2), I should be able to practice roleplay scenes (shop, station, restaurant, office, hospital) on Speaking, where the app speaks one side, I answer by voice, and the app shows what it heard next to the target sentence with a match score and tips.
FR-13 — Spaced repetition with SM-2 (explicit) As a Japanese Learner (N5–N2), I should be able to work through a daily review queue on Practice that uses the SM-2 algorithm, where wrong answers return sooner.
FR-14 — Daily review queue badge on Home (explicit) As a Japanese Learner (N5–N2), I should see a daily review queue badge on Home so that I know how many items are due.
FR-15 — Weekly review test (explicit) As a Japanese Learner (N5–N2), I should be able to take a weekly review test on Tests.
FR-16 — Level mock test and unlock (explicit) As a Japanese Learner (N5–N2), I should be able to take a full JLPT-style mock test at the end of each level (vocabulary and kanji, grammar, reading, listening) on Tests, with a pass mark of 80% to unlock the next level.
FR-17 — Progress tracking (explicit) As a Japanese Learner (N5–N2), I should be able to see my streak, words and kanji learned, accuracy by skill, weak-points list, and weekly charts on Progress.
FR-18 — AI tutor chat (explicit) As an AI Tutor Chat User (online), I should be able to chat with the AI tutor on AI Tutor so that my sentences are corrected, mistakes are explained in English and Urdu, and conversations can be role-played.
FR-19 — Settings controls (explicit) As a Japanese Learner (N5–N2), I should be able to control show/hide furigana, romaji, English, Urdu; voice speed; dark mode; font size; reminder time; and export/import progress backup on Settings.
FR-20 — Attribution (explicit) As a Japanese Learner (N5–N2) or Content Maintainer / Importer, I should be able to read open-dataset licenses and attribution on Attribution, reached from Settings.
FR-21 — Content import (required_inference) As a Content Maintainer / Importer, I should be able to validate and import N5–N2 level/unit JSON content into SQLite on Content Import, with access provisioned or authorized.
needs review.FR-22 — Four-line word stack (explicit) As a Japanese Learner (N5–N2), I should see every word, kanji, and sentence in four lines: Japanese with furigana, Romaji, English, and Urdu (RTL, natural everyday Urdu).
FR-23 — Level-appropriate content (explicit) As a Japanese Learner (N5–N2), I should only encounter kanji and grammar of my current level or lower.
FR-24 — No invented readings or meanings (explicit)
As a Content Maintainer / Importer, I should mark any uncertain reading or meaning as needs review instead of guessing.
needs review.FR-25 — Error handling for offline, microphone, and TTS (explicit) As a Japanese Learner (N5–N2), I should see clear handling for no internet, no microphone permission, and a missing TTS voice (including how to install the Japanese voice).
FR-26 — Accessibility (explicit) As a Japanese Learner (N5–N2), I should have screen-reader labels and scalable text throughout the app.
FR-27 — Friendly progress feedback (explicit) As a Japanese Learner (N5–N2), I should receive friendly progress feedback with XP, streaks, level badges, and short encouragement in English and Urdu.
needs review rather than guessing. Access to Content Import is provisioned or authorized, not self-service.needs review, and ensures attribution for JMdict, KANJIDIC2, KanjiVG, Tatoeba, and community level lists.needs review.The creative direction is authoritative for this section. The muse is Yves Béhar; the headline is "Humane technology for a language learner." The direction is a patient, encouraging, quietly intellectual study ritual — a well-made everyday object, not a hype product.
Light mode
#F7F4EE (warm oat-paper ground)#FFFDF9 (slightly brighter card surface — never pure white)#23211D#2F3B3A (deep slate-green — structure, tab bar, primary actions)#C25E3A (terracotta — reserved for exactly three things: the daily streak number, the review-queue badge, and the one primary CTA per screen)#8A8578 (muted clay — romaji, furigana, secondary labels, hairline rules)#7C8F7A and Oat #E8E1D4 (level badges N5 sage → N2 terracotta; progress fills)#E4DCCE0 1px 2px rgba(35,33,29,0.05) (very soft, never a glow)Dark mode
#1C1B18 (warm charcoal ground)#26241F#F1ECE2#E07A52 (lifted terracotta for contrast)clamp() so nothing overflows at 375px.#E4DCCE) plus a very soft 0 1px 2px rgba(35,33,29,0.05) shadow, never a glow.#2F3B3A with the active tab marked by a terracotta 3px top rule rather than a colour swap, so it reads in RTL too.The Home screen is not a marketing hero — it is a daily ritual card. The signature concept is "the day's page": a warm oat ground holding one composed card that contains the entire day's work, with the Japanese and Urdu scripts as the heroes.
#FFFDF9 with a 1px oat border. Inside it, the day's four-line Japanese word of the day at full width (kanji 44px, furigana above in clay, romaji, English, Urdu block right-aligned), then a vertical checklist of today's lesson steps with a single terracotta CTA pinned to the bottom of the card.The concept recomposes only accepted content, states, and controls: the greeting, date, level badge, word of the day, lesson checklist, review-queue badge, and the single primary CTA. It introduces no new behaviour, page, or destination.
Interaction Model: Animated Motion Tempo: restrained Hero Dimensionality: layered_2d
needs review instead of guessing. Rationale: accuracy and trust.font-size: clamp(...) with its mobile size) to fit, and no other element covers any part of them. Rationale: legibility across devices.expo-speech with the ja-JP voice. (explicit)expo-speech-recognition (ja-JP) for speaking practice. (explicit)react-native-skia canvas with stroke-order data from KanjiVG. (explicit)expo-notifications (daily reminder, default 9:00 PM, user can change). (explicit)I18nManager RTL for Urdu text blocks. (explicit + direction)id, level, jp, furigana, romaji, en, ur, audioText, tags. (explicit)needs review instead of guessing. (explicit)needs review: The marker applied to any uncertain reading or meaning instead of guessing.No completed page designs yet.
Completed design pages will appear here when they are ready to preview.
No completed page designs yet.
Completed design pages will appear here when they are ready to preview.
No comments yet. Be the first!