JesseRWeigel / JesseRWeigel/battlemath

Add parent/teacher progress dashboard

Open
#166 1 comment 0 reactions 0 assignees View on GitHub
education feature
Dominant language
TypeScript
Stars
37
Forks
29
PR merge metrics
No merged PRs in 30d

Description

## Summary

Add a progress dashboard view for parents and teachers to review a student's learning analytics. This helps identify strengths, weaknesses, and learning patterns. Inspired by Alpha School's data-driven approach to identifying and addressing learning gaps.

> **⚠️ NEEDS DISCUSSION:** This feature needs maintainer input on scope, privacy considerations, and whether data should remain local-only or support any form of sharing/export. Please comment with preferences before starting work.

## Implementation Details

- **Access:** Separate view accessible via a settings menu option or a URL parameter (e.g., `?view=dashboard`). Consider a simple PIN or toggle to prevent kids from accidentally entering it.
- **Analytics charts:**
- **Accuracy over time per operation:** Line chart showing accuracy % trends for addition, subtraction, multiplication, division
- **Time spent per session:** Bar chart showing daily/weekly practice time
- **Problems solved per day:** Bar chart showing daily problem count
- **Speed trends:** Average time-to-answer over time
- **Weakness identification:** Highlight the weakest operation/difficulty combination and suggest targeted practice (e.g., "Needs more practice with Hard Division").
- **Data export:** Export all progress data as CSV for use in spreadsheets or school systems.
- **Data source:** All data comes from `localStorage` — the same data tracked by the game.
- **Charting:** Use a lightweight charting library (e.g., Chart.js or Recharts since the project uses React).

## Acceptance Criteria

- [ ] Dashboard view is accessible from settings or URL parameter
- [ ] Accuracy over time chart renders per operation
- [ ] Time spent per session chart renders
- [ ] Problems solved per day chart renders
- [ ] Weakest area is identified and highlighted with a recommendation
- [ ] Data can be exported as CSV
- [ ] Dashboard reads from existing `localStorage` game data
- [ ] Dashboard is read-only (cannot modify game progress)

## Notes

- **This issue is marked as needing discussion.** Privacy and scope need to be decided before implementation.
- All data is currently local-only (`localStorage`). This keeps things simple and private but means data doesn't sync across devices.
- Consider what happens when `localStorage` is cleared — the dashboard should handle empty/missing data gracefully.
- The dashboard should be responsive but is primarily a desktop/tablet feature.
- Future enhancement: optional cloud sync for multi-device families (out of scope for this issue).

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.