リクエスト詳細
✨ 既存アプリの改善
対応完了
対象アプリ: 多言語フラッシュカード学習 CardMaster
復習タイマー機能:次回復習の最適タイミングを通知する「間隔反復スケジューラー」
## 1. 目的
学習した単語を忘れる前に効率よく復習できるよう、SM-2アルゴリズムをシンプルに模した「間隔反復スケジューラー」を追加する。各カードに復習予定日を設定し、「今日復習すべきカード」をホーム画面で即座に把握できるようにすることで、毎日のアプリ起動動機を高め継続率を向上させる。
## 2. 具体的な仕様
### 2-1. データ構造(localStorage)
既存の `wrongCards`(苦手リスト)とは別に `srsData` キーで以下を保存する。
```json
{
"[言語]_[カテゴリ]_[カードID]": {
"nextReview": "2025-07-15", // 次回復習日(ISO日付文字列)
"interval": 1, // 現在の復習間隔(日数)
"easeFactor": 2.5, // 難易度係数(1.3〜2.5)
"repetitions": 0 // 連続正解回数
}
}
```
### 2-2. 間隔計算ロジック(SM-2簡易版)
4択モード・エンドレスモード・苦手集中モードの回答時に以下を実行する。
- **正解時**: `repetitions += 1`。interval は `repetitions=1→1日`, `repetitions=2→6日`, 以降は `interval = round(interval × easeFactor)`。easeFactor は 2.5 固定(簡易版のため変動なし)。
- **不正解時**: `repetitions = 0`, `interval = 1`(翌日に再出題)。
- `nextReview = 今日の日付 + interval日後` を設定して保存。
### 2-3. ホーム画面への「復習バッジ」追加
- 言語・カテゴリ選択画面の上部(進捗サマリーの直下)に、以下のバナーを表示する。
- 条件: `nextReview <= 今日の日付` のカードが 1 枚以上存在する場合のみ表示。
- デザイン: 黄色背景のカード型バナー。「📅 今日の復習: **N枚** のカードが待っています!」と表示し、「復習スタート」ボタンを配置。
- N枚の内訳を言語別に小さく表示(例:英語 12枚 / 日本語 5枚)。
### 2-4. 「今日の復習モード」の追加
- 上記バナーの「復習スタート」ボタンを押すと、`nextReview <= 今日` のカードを言語・カテゴリをまたいで最大30枚(期限が古い順)抽出し、既存の4択モードと同じUIで出題する。
- 学習設定モーダル(出題順・枚数)は表示せずそのまま開始(復習対象が優先)。
- 結果画面には既存の全問答え合わせ画面を流用し、セッション履歴にもモード名「📅 今日の復習」として記録する。
- 出題対象が0枚の場合はバナー自体を非表示にするため「復習スタート」ボタンは常に有効。
### 2-5. カテゴリカード一覧への「復習マーク」表示
- 既存の言語・カテゴリ選択画面で、各カテゴリボタンに復習期限切れカードが存在する場合、右上に黄色の小バッジ「📅 N」を重ねて表示する(Nは枚数)。
### 2-6. SRSデータのリセット
- 既存の「履歴削除」モーダルに「SRS復習データもあわせて削除する」チェックボックスを追加し、オンにした場合 `srsData` も削除する。デフォルトはオフ。
## 3. 既存機能との整合(壊さない点)
- 既存の4択・エンドレス・苦手集中モードの画面UIは変更しない。回答イベントのコールバック末尾に `updateSRS(cardId, isCorrect)` 関数を呼ぶだけで既存フローを壊さない。
- `srsData` は独立したlocalStorageキーのため、`wrongCards`・`sessionHistory`・`streakData` 等の既存データとは完全に分離。
- 今日の復習モードは既存モード選択UIに追加するのではなく、ホームバナー専用の導線とするため、既存のモード選択ボタン群のレイアウトに影響しない。
- Web Speech API(音声読み上げ)・効果音・読み方トグルはすべてそのまま今日の復習モードでも動作する(既存4択UIを流用するため自動対応)。
- スマホ対応:バナーはflex縦積みで幅100%、バッジはposition:absoluteで右上配置し、既存のレスポンシブCSSに準拠する。
学習した単語を忘れる前に効率よく復習できるよう、SM-2アルゴリズムをシンプルに模した「間隔反復スケジューラー」を追加する。各カードに復習予定日を設定し、「今日復習すべきカード」をホーム画面で即座に把握できるようにすることで、毎日のアプリ起動動機を高め継続率を向上させる。
## 2. 具体的な仕様
### 2-1. データ構造(localStorage)
既存の `wrongCards`(苦手リスト)とは別に `srsData` キーで以下を保存する。
```json
{
"[言語]_[カテゴリ]_[カードID]": {
"nextReview": "2025-07-15", // 次回復習日(ISO日付文字列)
"interval": 1, // 現在の復習間隔(日数)
"easeFactor": 2.5, // 難易度係数(1.3〜2.5)
"repetitions": 0 // 連続正解回数
}
}
```
### 2-2. 間隔計算ロジック(SM-2簡易版)
4択モード・エンドレスモード・苦手集中モードの回答時に以下を実行する。
- **正解時**: `repetitions += 1`。interval は `repetitions=1→1日`, `repetitions=2→6日`, 以降は `interval = round(interval × easeFactor)`。easeFactor は 2.5 固定(簡易版のため変動なし)。
- **不正解時**: `repetitions = 0`, `interval = 1`(翌日に再出題)。
- `nextReview = 今日の日付 + interval日後` を設定して保存。
### 2-3. ホーム画面への「復習バッジ」追加
- 言語・カテゴリ選択画面の上部(進捗サマリーの直下)に、以下のバナーを表示する。
- 条件: `nextReview <= 今日の日付` のカードが 1 枚以上存在する場合のみ表示。
- デザイン: 黄色背景のカード型バナー。「📅 今日の復習: **N枚** のカードが待っています!」と表示し、「復習スタート」ボタンを配置。
- N枚の内訳を言語別に小さく表示(例:英語 12枚 / 日本語 5枚)。
### 2-4. 「今日の復習モード」の追加
- 上記バナーの「復習スタート」ボタンを押すと、`nextReview <= 今日` のカードを言語・カテゴリをまたいで最大30枚(期限が古い順)抽出し、既存の4択モードと同じUIで出題する。
- 学習設定モーダル(出題順・枚数)は表示せずそのまま開始(復習対象が優先)。
- 結果画面には既存の全問答え合わせ画面を流用し、セッション履歴にもモード名「📅 今日の復習」として記録する。
- 出題対象が0枚の場合はバナー自体を非表示にするため「復習スタート」ボタンは常に有効。
### 2-5. カテゴリカード一覧への「復習マーク」表示
- 既存の言語・カテゴリ選択画面で、各カテゴリボタンに復習期限切れカードが存在する場合、右上に黄色の小バッジ「📅 N」を重ねて表示する(Nは枚数)。
### 2-6. SRSデータのリセット
- 既存の「履歴削除」モーダルに「SRS復習データもあわせて削除する」チェックボックスを追加し、オンにした場合 `srsData` も削除する。デフォルトはオフ。
## 3. 既存機能との整合(壊さない点)
- 既存の4択・エンドレス・苦手集中モードの画面UIは変更しない。回答イベントのコールバック末尾に `updateSRS(cardId, isCorrect)` 関数を呼ぶだけで既存フローを壊さない。
- `srsData` は独立したlocalStorageキーのため、`wrongCards`・`sessionHistory`・`streakData` 等の既存データとは完全に分離。
- 今日の復習モードは既存モード選択UIに追加するのではなく、ホームバナー専用の導線とするため、既存のモード選択ボタン群のレイアウトに影響しない。
- Web Speech API(音声読み上げ)・効果音・読み方トグルはすべてそのまま今日の復習モードでも動作する(既存4択UIを流用するため自動対応)。
- スマホ対応:バナーはflex縦積みで幅100%、バッジはposition:absoluteで右上配置し、既存のレスポンシブCSSに準拠する。
💬 返信 (3)
🛠 開発を開始しました (機能追加 cardmaster)
ご要望ありがとうございます。AI 開発ワーカーが実装を開始します。
通常 5〜30 分で Pull Request を作成し、レビュー後にリリースされます。
ご要望ありがとうございます。AI 開発ワーカーが実装を開始します。
通常 5〜30 分で Pull Request を作成し、レビュー後にリリースされます。
📝 開発が完了しました
ご要望いただいた内容の実装が完了し、最終チェック段階に入りました。
レビュー (自動) → リリース、の流れで進みます。
もう少々お待ちください。
ご要望いただいた内容の実装が完了し、最終チェック段階に入りました。
レビュー (自動) → リリース、の流れで進みます。
もう少々お待ちください。
✅ リリース完了のお知らせ
ご要望いただいた「多言語フラッシュカード学習 CardMaster」を実装し、リリースいたしました。
【ご利用方法】
ダッシュボード: https://www.aiapps.jp/?action=dashboard
アプリ詳細: https://www.aiapps.jp/apps/show.php?slug=cardmaster
デモ環境は 1 時間以内に自動構築されます:
https://www.aiapps.jp/demo/cardmaster/
ご利用ありがとうございます!
ご要望いただいた「多言語フラッシュカード学習 CardMaster」を実装し、リリースいたしました。
【ご利用方法】
ダッシュボード: https://www.aiapps.jp/?action=dashboard
アプリ詳細: https://www.aiapps.jp/apps/show.php?slug=cardmaster
デモ環境は 1 時間以内に自動構築されます:
https://www.aiapps.jp/demo/cardmaster/
ご利用ありがとうございます!
Echo
Iris