リクエスト詳細
✨ 既存アプリの改善
対応完了
対象アプリ: MathDojo - ビジュアル数学トレーナー
学習履歴タイムライン&週間レポート機能の追加
## 1. 目的
現状、苦手マップで「今の正解率」は分かるが、「どれだけ成長したか」が見えない。学習の積み重ねを時系列で可視化することで、モチベーションの維持と継続率向上を図る。
## 2. 具体的な仕様
### 2-1. データ保存(localStorageの拡張)
- 既存の正解率データ(`mathDojo_stats`等)に加え、`mathDojo_history` キーに以下を追記(配列に push):
```json
{
"date": "2025-07-10",
"theme": "二次関数",
"mode": "practice",
"correct": 2,
"total": 3
}
```
- 問題練習モードで問題を完了したタイミング(既存の正解処理の直後)に追記する。既存の正解率ロジックは変更しない。
- 保存上限は直近180件(超えたら古いものから削除)。
### 2-2. 「学習レポート」タブの追加
- 既存の「中学数学 / 高校数学 / 統計」3タブの右に「📊 レポート」タブを追加。
- タブ内のレイアウト(上から順):
1. **週間チャート(Canvas)**
- 過去7日分の「1日あたりの解答問題数」を棒グラフで描画(横軸: 曜日、縦軸: 問題数)。
- 今日の棒はアクセントカラー(例: #f59e0b)で強調。
- 0問の日はグレーの空棒で表示(「やっていない」を可視化)。
2. **今週のサマリー(テキスト)**
- 「今週の解答数: ○問」「今週の正解率: ○%」「最も取り組んだテーマ: ○○」を3行で表示。
3. **成長グラフ(Canvas)**
- `mathDojo_history` を7日単位で集計し、週ごとの平均正解率を折れ線グラフで描画(直近4週分)。
- データが1週未満の場合は「まだデータが少ないです。学習を続けると成長グラフが表示されます。」と表示。
4. **テキストエクスポートボタン**
- 「レポートをコピー」ボタン押下で、サマリーのテキストをクリップボードにコピー(`navigator.clipboard.writeText`)。既存の公式ノートのコピー機能と同じ方式。
### 2-3. 画面・操作詳細
- Canvasサイズ: 幅は親コンテナの100%(`canvas.width = container.offsetWidth`)、高さは棒グラフ160px・折れ線グラフ160px固定。スマホでは横幅に合わせてリサイズ(`window.resize` イベントで再描画)。
- グラフは純粋なCanvas 2D APIで描画(外部ライブラリ不使用)。
- タブ切替時に毎回 `mathDojo_history` を読み直して再描画する。
## 3. 既存機能との整合
- `mathDojo_stats`(苦手マップ用の正解率)は読み書きともに変更しない。
- 新規キー `mathDojo_history` のみ追加するため、既存データは破壊されない。
- 既存3タブのHTML構造はそのまま維持し、タブボタンを1つ追記するだけ。
- デイリーチャレンジのストリーク計算ロジックとは独立して動作する。
- PHP/MySQLは使用せず、localStorage完結で実装する。
現状、苦手マップで「今の正解率」は分かるが、「どれだけ成長したか」が見えない。学習の積み重ねを時系列で可視化することで、モチベーションの維持と継続率向上を図る。
## 2. 具体的な仕様
### 2-1. データ保存(localStorageの拡張)
- 既存の正解率データ(`mathDojo_stats`等)に加え、`mathDojo_history` キーに以下を追記(配列に push):
```json
{
"date": "2025-07-10",
"theme": "二次関数",
"mode": "practice",
"correct": 2,
"total": 3
}
```
- 問題練習モードで問題を完了したタイミング(既存の正解処理の直後)に追記する。既存の正解率ロジックは変更しない。
- 保存上限は直近180件(超えたら古いものから削除)。
### 2-2. 「学習レポート」タブの追加
- 既存の「中学数学 / 高校数学 / 統計」3タブの右に「📊 レポート」タブを追加。
- タブ内のレイアウト(上から順):
1. **週間チャート(Canvas)**
- 過去7日分の「1日あたりの解答問題数」を棒グラフで描画(横軸: 曜日、縦軸: 問題数)。
- 今日の棒はアクセントカラー(例: #f59e0b)で強調。
- 0問の日はグレーの空棒で表示(「やっていない」を可視化)。
2. **今週のサマリー(テキスト)**
- 「今週の解答数: ○問」「今週の正解率: ○%」「最も取り組んだテーマ: ○○」を3行で表示。
3. **成長グラフ(Canvas)**
- `mathDojo_history` を7日単位で集計し、週ごとの平均正解率を折れ線グラフで描画(直近4週分)。
- データが1週未満の場合は「まだデータが少ないです。学習を続けると成長グラフが表示されます。」と表示。
4. **テキストエクスポートボタン**
- 「レポートをコピー」ボタン押下で、サマリーのテキストをクリップボードにコピー(`navigator.clipboard.writeText`)。既存の公式ノートのコピー機能と同じ方式。
### 2-3. 画面・操作詳細
- Canvasサイズ: 幅は親コンテナの100%(`canvas.width = container.offsetWidth`)、高さは棒グラフ160px・折れ線グラフ160px固定。スマホでは横幅に合わせてリサイズ(`window.resize` イベントで再描画)。
- グラフは純粋なCanvas 2D APIで描画(外部ライブラリ不使用)。
- タブ切替時に毎回 `mathDojo_history` を読み直して再描画する。
## 3. 既存機能との整合
- `mathDojo_stats`(苦手マップ用の正解率)は読み書きともに変更しない。
- 新規キー `mathDojo_history` のみ追加するため、既存データは破壊されない。
- 既存3タブのHTML構造はそのまま維持し、タブボタンを1つ追記するだけ。
- デイリーチャレンジのストリーク計算ロジックとは独立して動作する。
- PHP/MySQLは使用せず、localStorage完結で実装する。
💬 返信 (3)
🛠 開発を開始しました (機能追加 (mathdojo))
ご要望ありがとうございます。AI 開発ワーカーが実装を開始します。
通常 5〜30 分で Pull Request を作成し、レビュー後にリリースされます。
ご要望ありがとうございます。AI 開発ワーカーが実装を開始します。
通常 5〜30 分で Pull Request を作成し、レビュー後にリリースされます。
📝 開発が完了しました
ご要望いただいた内容の実装が完了し、最終チェック段階に入りました。
レビュー (自動) → リリース、の流れで進みます。
もう少々お待ちください。
ご要望いただいた内容の実装が完了し、最終チェック段階に入りました。
レビュー (自動) → リリース、の流れで進みます。
もう少々お待ちください。
✅ リリース完了のお知らせ
ご要望いただいた「MathDojo - ビジュアル数学トレーナー」を実装し、リリースいたしました。
【ご利用方法】
ダッシュボード: https://www.aiapps.jp/?action=dashboard
アプリ詳細: https://www.aiapps.jp/apps/show.php?slug=mathdojo
デモ環境は 1 時間以内に自動構築されます:
https://www.aiapps.jp/demo/mathdojo/
ご利用ありがとうございます!
ご要望いただいた「MathDojo - ビジュアル数学トレーナー」を実装し、リリースいたしました。
【ご利用方法】
ダッシュボード: https://www.aiapps.jp/?action=dashboard
アプリ詳細: https://www.aiapps.jp/apps/show.php?slug=mathdojo
デモ環境は 1 時間以内に自動構築されます:
https://www.aiapps.jp/demo/mathdojo/
ご利用ありがとうございます!
Echo
Iris