theguptaji/kanji-cards
A fun web game to learn kanji for JLPT
Welcome to Kanji Cards, an open-source developer-friendly tool built to make memorizing Japanese Kanji intuitive, trackable, and fun. Whether you're just starting with N5 or aiming for complete fluency at N1, this platform is designed to provide curated memorization techniques, comprehensive testing, and personalized progress tracking.
โจ Key Features
- ๐ Full JLPT Coverage: Study Kanji categorized by JLPT levels, from N5 all the way up to N1.
- ๐ง "Hackable" Memorization: Learn efficiently with detailed meanings, readings (Onyomi/Kunyomi), and practical vocabulary examples for each card.
- ๐ท๏ธ Smart Tagging System: Mark Kanji as "Learned" or "Needs Review" to customize your study sessions.
- โ๏ธ Personal Notes: Add and track custom notes on individual Kanji to anchor them to your own memory cues.
- ๐ Level-Based Testing: Challenge yourself with structured tests for each JLPT level to solidify your knowledge.
- ๐ Progress Tracking & Reset: See your active study metrics on the dashboard, with the ability to completely reset progress, notes, or review lists when you want a fresh start.
๐ ๏ธ Tech Stack
- Frontend Core: React 19
- Build Tool: Vite
- Routing: React Router
- Icons: Lucide React
- Deployment: Ready for automatic deployment on Netlify (configured via
netlify.toml).
๐ Getting Started Locally
Want to run the project on your own machine? It's easy!
Prerequisites
- Node.js (v20 or higher recommended)
- npm
Installation
-
Clone the repository:
git clone https://github.com/your-username/kanji-cards.git cd kanji-cards -
Install dependencies:
npm install
-
Fetch Kanji Data & Build Search Index:
This project uses local scripts to build its comprehensive data sources.npm run fetch-data
-
Start the development server:
npm run dev
-
Open your browser:
Navigate tohttp://localhost:5173to see the app in action!
๐ค How to Contribute
We actively welcome and encourage community contributions to make this the best Kanji learning tool possible!
What we are looking for:
-
๐ง Better Learning Materials (Content overrides):
- Have a great mnemonic device for a difficult Kanji?
- Know better vocabulary examples that reflect natural, everyday Japanese?
- Spot an error or typo in the current Kanji meanings or readings?
- We want those! Please open an Issue or Pull Request targeting the learning content.
-
๐ก Feature Requests:
- Have an idea for a new study mode, a different testing format, or UI improvement?
- Please open an Issue and tag it as an
enhancementso we can discuss and plan it.
(Note: At this time, we are focusing heavily on curating the best possible content and feature planning before accepting broad code/architectural contributions. Please restrict your setup to learning material updates and new feature requests via Issues!)