학교 전용 공부 타이머(열품타) + 학년별 랭킹 기능 추가

학생 참여 유도를 위해 공부 시작/종료 타이머와 학년별(오늘/이번주/전체)
랭킹 화면을 대시보드에 추가. 로그인 응답에 학년 정보를 포함시켜
세션 저장/복원 전체 경로에 전달되도록 함.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
2026-09-14 14:58:55 +09:00
co-authored by Claude Sonnet 5
parent 26e54a1798
commit a59a3054fb
9 changed files with 662 additions and 2 deletions
+7
View File
@@ -78,6 +78,7 @@ class _LoginScreenState extends State<LoginScreen> {
result.name!,
result.role!,
result.isDeviceMatched,
result.grade,
);
break;
case LoginOutcome.success:
@@ -87,6 +88,7 @@ class _LoginScreenState extends State<LoginScreen> {
result.studentId!,
result.name!,
result.isDeviceMatched,
result.grade,
);
break;
}
@@ -98,6 +100,7 @@ class _LoginScreenState extends State<LoginScreen> {
String name,
String role,
bool isDeviceMatched,
int? grade,
) {
final TextEditingController newPwController = TextEditingController();
@@ -168,6 +171,7 @@ class _LoginScreenState extends State<LoginScreen> {
studentId,
name,
isDeviceMatched,
grade,
);
} else {
AppNotice.show(context, message);
@@ -189,6 +193,7 @@ class _LoginScreenState extends State<LoginScreen> {
String studentId,
String name,
bool isDeviceMatched,
int? grade,
) async {
if (_keepLoggedIn) {
await SessionStore.save(
@@ -197,6 +202,7 @@ class _LoginScreenState extends State<LoginScreen> {
userName: name,
role: role,
isDeviceMatched: isDeviceMatched,
grade: grade,
),
);
} else {
@@ -211,6 +217,7 @@ class _LoginScreenState extends State<LoginScreen> {
userName: name,
role: role,
isDeviceMatched: isDeviceMatched,
grade: grade,
),
),
);