선생님 대시보드

선생님 대시보드는 커뮤니티의 전반적인 학습 현황을 한눈에 파악할 수 있는 통합 관리 페이지입니다.

개요

주요 기능

1. 통계 카드 (8개)

학생 관련

학습 자료

제출 현황

성적 현황

최근 활동 (30일 기준)

2. 상위 학생 (점수 기준)

Top 5 학생을 점수 순으로 표시:

3. 관심 필요 학생

연속 출석일이 0인 학생 목록 (최대 10명):

4. 수동 채점 대기 과제

AI 자동 채점은 되었지만 선생님의 수동 채점이 필요한 과제:

5. 빠른 액션 버튼

자주 사용하는 기능으로 바로 이동:

API 엔드포인트

GET /api/teacher/dashboard?community=slug

Response:

{ "stats": { "totalMembers": 25, "totalAssignments": 10, "totalQuizzes": 5, "assignmentSubmissions": 150, "assignmentsGraded": 120, "quizAttempts": 75, "avgQuizScore": 82, "recentDiaries": 30, "attendanceSessions": 8, "attendanceMarks": 180 }, "topStudents": [ { "id": 1, "userId": 10, "name": "김철수", "avatar": "/avatars/user1.jpg", "level": 5, "points": 1250, "streak": 15 } ], "lowEngagementStudents": [ { "id": 5, "userId": 20, "name": "이영희", "avatar": "/avatars/user5.jpg", "level": 2, "points": 350, "streak": 0 } ], "pendingGrading": [ { "submissionId": "123", "assignmentId": "45", "assignmentTitle": "한국어 작문 과제 1", "studentName": "박민수", "submittedAt": "2025-12-14T10:30:00.000Z" } ] }

데이터 소스

대시보드는 다음 테이블에서 데이터를 집계합니다:

통계 계산

학생 목록

채점 대기

UI 컴포넌트

통계 카드

<Card> <CardContent> <Icon /> {/* 아이콘 */} <Value /> {/* 숫자 */} <Label /> {/* 설명 */} </CardContent> </Card>

학생 카드

<StudentCard> <Rank>#1</Rank> <Avatar /> <Name>김철수</Name> <Level>레벨 5</Level> <Points>1,250점</Points> <Streak>🔥 15일</Streak> </StudentCard>

실시간 업데이트

데이터 갱신

자동 갱신 (Optional)

useEffect(() => { const interval = setInterval(() => { fetchDashboard(); }, 60000); // 1분마다 갱신 return () => clearInterval(interval); }, []);

색상 코딩

통계 카드 색상

학생 상태

사용 시나리오

매일 아침 체크리스트

  1. 대시보드 접속
  2. 전체 통계 확인
  3. 관심 필요 학생 확인 → 개별 연락
  4. 채점 대기 과제 확인 → 수동 채점
  5. 상위 학생 확인 → 칭찬/격려

주간 분석

  1. 최근 7일 일기 작성 추이 확인
  2. 퀴즈 평균 점수 모니터링
  3. 출석률 분석
  4. 학생별 진도 추적

월간 리포트

  1. 전체 통계 스크린샷
  2. 상위 학생 시상 준비
  3. 비활동 학생 상담 계획
  4. 다음 달 목표 설정

권한 관리

Owner

Admin

Student

성능 최적화

쿼리 최적화

데이터 캐싱

로딩 상태

{isLoading ? ( <Loader2 className="animate-spin" /> ) : ( <DashboardContent /> )}

확장 가능성

향후 추가 기능

트러블슈팅

통계가 0으로 표시되는 경우

학생 목록이 비어있는 경우

채점 대기 목록이 업데이트되지 않는 경우