- 통계 탭 삭제 (프론트 페이지/차트/네비 항목, 백엔드 stats 모듈은 대시보드용으로 유지) - PDF 문제 분리 → 문제집 생성으로 변경 (ProblemSet + Problem 레코드) - ProblemSet에 sourceType, uploadedByUserId 추가 - POST /problem-sets/create-from-pdf 엔드포인트 - GET /problem-sets/my-uploads, DELETE /problem-sets/:id - exams 페이지에 '내가 만든 문제집' 섹션 - 문제 풀이 UI 통일 - DrawingCanvas 공통 컴포넌트 추출 (필기모드) - 복습 페이지에 필기모드(캔버스+펜색상) 추가 - 다시풀기 페이지에 필기모드+메모 추가 - 처음풀기 페이지 난이도 슬라이더→3버튼(H/M/E)+SM-2 연동 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
152 lines
3.2 KiB
JSON
152 lines
3.2 KiB
JSON
{
|
|
"39": {
|
|
"failure_count": 0,
|
|
"last_action": "reset",
|
|
"updated_at": "2026-04-11T15:22:01Z"
|
|
},
|
|
"40": {
|
|
"failure_count": 0,
|
|
"last_action": "reset",
|
|
"updated_at": "2026-04-11T15:22:03Z"
|
|
},
|
|
"41": {
|
|
"failure_count": 0,
|
|
"last_action": "reset",
|
|
"updated_at": "2026-04-11T15:22:03Z"
|
|
},
|
|
"42": {
|
|
"failure_count": 0,
|
|
"last_action": "reset",
|
|
"updated_at": "2026-04-11T15:22:03Z"
|
|
},
|
|
"43": {
|
|
"failure_count": 0,
|
|
"last_action": "reset",
|
|
"updated_at": "2026-04-11T15:22:04Z"
|
|
},
|
|
"44": {
|
|
"failure_count": 0,
|
|
"last_action": "reset",
|
|
"updated_at": "2026-04-11T15:22:04Z"
|
|
},
|
|
"45": {
|
|
"failure_count": 0,
|
|
"last_action": "reset",
|
|
"updated_at": "2026-04-11T15:45:11Z"
|
|
},
|
|
"46": {
|
|
"failure_count": 0,
|
|
"last_action": "reset",
|
|
"updated_at": "2026-04-11T15:45:11Z"
|
|
},
|
|
"47": {
|
|
"failure_count": 0,
|
|
"last_action": "reset",
|
|
"updated_at": "2026-04-11T15:45:12Z"
|
|
},
|
|
"48": {
|
|
"failure_count": 0,
|
|
"last_action": "reset",
|
|
"updated_at": "2026-04-11T15:45:12Z"
|
|
},
|
|
"49": {
|
|
"failure_count": 0,
|
|
"last_action": "reset",
|
|
"updated_at": "2026-04-11T15:45:13Z"
|
|
},
|
|
"50": {
|
|
"failure_count": 0,
|
|
"last_action": "reset",
|
|
"updated_at": "2026-04-11T15:45:13Z"
|
|
},
|
|
"38": {
|
|
"failure_count": 0,
|
|
"last_action": "reset",
|
|
"updated_at": "2026-04-11T15:45:13Z"
|
|
},
|
|
"51": {
|
|
"failure_count": 0,
|
|
"last_action": "reset",
|
|
"updated_at": "2026-04-11T16:36:04Z"
|
|
},
|
|
"52": {
|
|
"failure_count": 0,
|
|
"last_action": "reset",
|
|
"updated_at": "2026-04-11T16:42:51Z"
|
|
},
|
|
"53": {
|
|
"failure_count": 0,
|
|
"last_action": "reset",
|
|
"updated_at": "2026-04-11T16:44:00Z"
|
|
},
|
|
"54": {
|
|
"failure_count": 0,
|
|
"last_action": "reset",
|
|
"updated_at": "2026-04-11T16:45:12Z"
|
|
},
|
|
"55": {
|
|
"failure_count": 0,
|
|
"last_action": "reset",
|
|
"updated_at": "2026-04-11T16:46:25Z"
|
|
},
|
|
"56": {
|
|
"failure_count": 0,
|
|
"last_action": "reset",
|
|
"updated_at": "2026-04-11T16:47:35Z"
|
|
},
|
|
"57": {
|
|
"failure_count": 0,
|
|
"last_action": "reset",
|
|
"updated_at": "2026-04-11T18:24:27Z"
|
|
},
|
|
"58": {
|
|
"failure_count": 0,
|
|
"last_action": "reset",
|
|
"updated_at": "2026-04-11T18:46:47Z"
|
|
},
|
|
"59": {
|
|
"failure_count": 0,
|
|
"last_action": "reset",
|
|
"updated_at": "2026-04-11T20:22:38Z"
|
|
},
|
|
"61": {
|
|
"failure_count": 0,
|
|
"last_action": "reset",
|
|
"updated_at": "2026-04-11T21:30:52Z"
|
|
},
|
|
"1": {
|
|
"failure_count": 0,
|
|
"last_action": "reset",
|
|
"updated_at": "2026-04-16T23:50:14Z"
|
|
},
|
|
"2": {
|
|
"failure_count": 0,
|
|
"last_action": "reset",
|
|
"updated_at": "2026-04-16T23:50:14Z"
|
|
},
|
|
"3": {
|
|
"failure_count": 0,
|
|
"last_action": "reset",
|
|
"updated_at": "2026-04-16T23:50:15Z"
|
|
},
|
|
"4": {
|
|
"failure_count": 0,
|
|
"last_action": "reset",
|
|
"updated_at": "2026-04-16T23:52:08Z"
|
|
},
|
|
"9": {
|
|
"failure_count": 0,
|
|
"last_action": "reset",
|
|
"updated_at": "2026-04-17T00:34:53Z"
|
|
},
|
|
"10": {
|
|
"failure_count": 0,
|
|
"last_action": "reset",
|
|
"updated_at": "2026-04-17T00:34:53Z"
|
|
},
|
|
"11": {
|
|
"failure_count": 0,
|
|
"last_action": "reset",
|
|
"updated_at": "2026-04-17T01:03:58Z"
|
|
}
|
|
} |