explaingit

mussabpro/kanatest

13JavaScriptAudience · generalComplexity · 1/5LicenseSetup · easy

TLDR

A fully offline, browser-based quiz for learning Japanese hiragana and katakana, open the HTML file and start practicing immediately, no installation, build step, or account needed.

Mindmap

mindmap
  root((KanaTest))
    What it does
      Kana flashcard quiz
      Offline study tool
      Progress tracking
    Characters Covered
      Hiragana
      Katakana
      Dakuon voiced sounds
      Combination characters
    Quiz Features
      Reinforcement re-queue
      Alternate spelling accepted
      Timer option
      Results review grid
    Progress
      50-session history
      Browser local storage
      Accuracy display
    Setup
      Four files only
      No npm or build step
      MIT license
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Practice Japanese hiragana and katakana offline with no account, no install, and no internet connection required.

USE CASE 2

Study all kana character groups including basic, voiced, semi-voiced, and combination characters in the traditional layout.

USE CASE 3

Track quiz accuracy across up to 50 sessions automatically saved in the browser to see improvement over time.

USE CASE 4

Self-host this quiz on any static file server for a language classroom or personal learning site.

Tech stack

JavaScriptHTMLCSS

Getting it running

Difficulty · easy Time to first run · 5min
Use freely for any purpose, including commercial use, as long as you keep the copyright notice.

In plain English

KanaTest is a browser-based quiz tool for learning Japanese hiragana and katakana. It runs entirely offline with no installation required: download the files, open index.html in a browser, and it works. There is no build step, no npm, and no server. The app has two main modes. Study mode displays the full character tables for hiragana and katakana, laid out in the traditional Gojuon order with proper column groupings. The tables cover basic characters plus the three modifier categories: Dakuon (voiced sounds), Handakuten (semi-voiced sounds), and combinations. Test mode presents one character at a time on a large card and asks for the romaji equivalent typed from the keyboard. Submitting with Enter gives instant feedback. Wrong answers do not simply move on. The engine re-queues the question near the front, so you have to get it right before the quiz advances past it. The progress bar only moves forward when you answer a fresh question correctly on the first attempt. This reinforcement mechanic ensures you actually learn the characters you are struggling with rather than moving past them. The test engine accepts common alternate spellings. For example, the character for shi also accepts si, chi accepts ti, and tsu accepts tu. A results screen at the end shows accuracy, time taken if a timer is enabled, and a grid review of every mistake. A history of the last 50 test sessions is stored automatically in the browser's local storage, so you can track improvement over time without any account or server. The interface respects the system dark-mode setting and lets you toggle it manually. The entire app is four files: one HTML, one CSS, one JavaScript file with all kana data, and one JavaScript file with the application logic. It is MIT licensed.

Copy-paste prompts

Prompt 1
Fork KanaTest and add a mode that quizzes only dakuon and combination characters, skipping basic hiragana until the user toggles them back in.
Prompt 2
Modify the KanaTest quiz engine to add a 5-second countdown per card so the user has to answer quickly before it counts as wrong.
Prompt 3
Add a katakana-only mode to KanaTest that stores weak-spot history separately from the hiragana session history in local storage.
Open on GitHub → Explain another repo

← mussabpro on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.