Back to projects

Full-Stack Learning Platform

Learn-Kana

A Japanese-learning platform for Hiragana, Katakana, and 2,140 Joyo Kanji with flashcards, quizzes, progress tracking, and rule-based adaptive practice.

Next.js 14 · TypeScript · MongoDB · Google Login · localStorage

Overview

Learn-Kana is a Japanese-learning platform covering Hiragana, Katakana, and 2,140 Joyo Kanji. It includes flashcards, quizzes, learner analytics, progress tracking, and adaptive practice recommendations based on rules rather than machine learning.

Recommendation Flow

01Learner Activity
02Performance Statistics
03Due / Weak / New Classification
04Rule-Based Scoring
05Recommended Practice

Problem

Learners need targeted practice that responds to weak characters, due reviews, recent mistakes, and confusion pairs without relying on a one-size-fits-all lesson order.

Requirements

Content Coverage

Hiragana, Katakana, 2,140 Joyo Kanji, flashcards, quizzes, and progress tracking.

Persistence

Anonymous progress uses localStorage. Authenticated progress uses MongoDB.

Authentication

Google federated login supports persistent authenticated user accounts.

Technical Decisions

Rule-based recommendations

The adaptive practice system is intentionally rule-based. It prioritizes due reviews first, weak characters second, and new material third.

Spaced repetition · Accuracy · Response time · Recency · Incorrect-answer history · Confusion pairs · Recent mistakes

Learner analytics

Weak kana · Character-level statistics · Accuracy · Attempts · Incorrect answers · Average response time · Last practiced · Confusion pairs · Recommended practice

Implementation

The application is built with Next.js 14, TypeScript, MongoDB, localStorage, and Google federated login. The practice engine evaluates learner history using deterministic rules such as spaced repetition, accuracy, response time, recency, recent mistakes, and confusion pairs. It does not use AI, machine learning, or generative recommendations.

Tradeoffs, Results, and What I Learned

A rule-based system is easier to inspect and explain than a model driven recommendation layer, which fits the learning context well. The tradeoff is that recommendations depend on explicitly modeled signals rather than learned patterns. The project demonstrates full-stack product thinking, persistence design, responsive UI, analytics, and adaptive learning logic.