JesseRWeigel / JesseRWeigel/battlemath
Add parent/teacher progress dashboard
- 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
Assessment
This issue has not been assessed yet.