feat(error-book): implement error book module with SM2 spaced repetition

- Add SM2 algorithm implementation with tests for spaced repetition review scheduling

- Add data-access, schema, types, and server actions for error book CRUD

- Add components: add dialog, class overview, filters, item card, stats cards, review buttons, top wrong questions

- Add error-book routes for admin, teacher, parent, and student roles

- Add i18n messages (en, zh-CN) for error book module
This commit is contained in:
SpecialX
2026-06-23 17:36:42 +08:00
parent 396c2c568d
commit bf056399c6
26 changed files with 3613 additions and 0 deletions

View File

@@ -0,0 +1,101 @@
{
"title": "Error Book",
"description": "Automatically collect wrong answers from exams and homework, review scientifically",
"stats": {
"total": "Total Errors",
"new": "New",
"learning": "Learning",
"mastered": "Mastered",
"dueReview": "Due Review",
"masteredRate": "Mastery Rate"
},
"status": {
"new": "New",
"learning": "Learning",
"mastered": "Mastered",
"archived": "Archived"
},
"source": {
"exam": "Exam",
"homework": "Homework",
"manual": "Manual"
},
"review": {
"again": "Again",
"hard": "Hard",
"good": "Good",
"easy": "Easy",
"againDesc": "Don't know, review tomorrow",
"hardDesc": "Barely correct, review in 2 days",
"goodDesc": "Correct, review in 4 days",
"easyDesc": "Easy, review in 7 days"
},
"actions": {
"add": "Add Manually",
"viewDetail": "View Details",
"saveNote": "Save Note",
"archive": "Archive",
"delete": "Delete",
"collect": "Collect Errors"
},
"fields": {
"question": "Select Question",
"note": "Study Note",
"errorTags": "Error Reason Tags",
"masteryLevel": "Mastery Level",
"reviewCount": "Review Count",
"nextReview": "Next Review",
"createdAt": "Added At"
},
"errorTags": {
"concept": "Concept Gap",
"calculation": "Calculation Error",
"careless": "Careless",
"misread": "Misread Question",
"method": "Wrong Method",
"memory": "Memory Error",
"time": "Out of Time"
},
"empty": {
"title": "Error book is empty",
"description": "Wrong answers from exams and homework will be collected here automatically. You can also add manually."
},
"teacher": {
"title": "Error Analysis",
"description": "View class error statistics and weak knowledge points",
"coverage": "Student Coverage",
"totalErrors": "Total Errors",
"avgMastery": "Avg Mastery Rate",
"weakPoints": "Weak Knowledge Points",
"subjectDist": "Subject Distribution",
"studentDetail": "Student Error Details",
"topWrong": "Top Wrong Questions",
"noClass": "No classes assigned",
"noStudent": "No students in class"
},
"parent": {
"title": "Child Error Book",
"description": "View your child's error statistics and learning progress",
"noChild": "No children linked"
},
"admin": {
"title": "School-wide Error Analysis",
"description": "School-wide error statistics and weak point analysis"
},
"messages": {
"added": "Error added",
"noteSaved": "Note saved",
"reviewRecorded": "Review recorded",
"archived": "Error archived",
"deleted": "Error deleted",
"collected": "Collected {{count}} errors",
"noNewErrors": "No new errors to collect",
"addFailed": "Failed to add error",
"saveFailed": "Save failed",
"deleteFailed": "Delete failed",
"archiveFailed": "Archive failed",
"collectFailed": "Failed to collect errors",
"notFound": "Error not found or access denied",
"selectQuestion": "Please select a question"
}
}