74 lines
1.7 KiB
Markdown
74 lines
1.7 KiB
Markdown
# WaniKani Kanji SRS
|
||
|
||
A **Spaced Repetition System (SRS) app for learning Japanese kanji** using WaniKani’s API.
|
||
Test your **kanji meanings, readings, and recognition skills** on your mobile device.
|
||
|
||
---
|
||
|
||
## 📱 Features
|
||
|
||
- Quiz modes:
|
||
- **Kanji → English**: Guess the meaning of the kanji.
|
||
- **English → Kanji**: Match the meaning back to the kanji.
|
||
- **Reading**: Practice **on’yomi** and **kun’yomi** readings.
|
||
- **Multiple-choice answers** with dynamic distractors.
|
||
- **Score tracking** for correct and attempted answers.
|
||
- Clean and responsive **Flutter UI** with animated kanji cards.
|
||
- Fully **offline-capable** once deck is fetched and cached.
|
||
- **Customizable themes** (dark mode by default).
|
||
- Settings page to manage your **WaniKani API key**.
|
||
|
||
---
|
||
|
||
## 🛠️ Tech Stack
|
||
|
||
- **Flutter** for cross-platform mobile development (Android/iOS)
|
||
- **Provider** for state management
|
||
- **Shared Preferences** for storing API key and settings
|
||
- **Dart** for core logic
|
||
- **WaniKani API** for fetching kanji data
|
||
|
||
---
|
||
|
||
## ⚡ Installation
|
||
|
||
1. Clone the repository:
|
||
|
||
`git clone https://git.crylia.de/Crylia/wanikani-kanji-srs.git`
|
||
|
||
|
||
`cd wanikani_srs`
|
||
|
||
|
||
2. Install dependencies:
|
||
|
||
`flutter pub get`
|
||
|
||
|
||
3. Run on a device/emulator:
|
||
|
||
`flutter run`
|
||
|
||
|
||
4. Set your **WaniKani API key** in the app’s settings to fetch your deck.
|
||
|
||
---
|
||
|
||
## 🔧 Usage
|
||
|
||
1. Open the app and enter your **WaniKani API key**.
|
||
2. Select a quiz mode:
|
||
- Kanji → English
|
||
- English → Kanji
|
||
- Reading
|
||
3. Tap on the multiple-choice options to answer.
|
||
4. Your **score** is displayed at the bottom.
|
||
5. Progress is updated automatically.
|
||
|
||
---
|
||
|
||
## 📦 Build APK
|
||
|
||
To generate a release APK:
|
||
|
||
`flutter build apk --release` |