Commit Graph
58 Commits
Author SHA1 Message Date
sihooandClaude Sonnet 5 1140747af2 선생님 위치 알리기 화면도 호출 화면처럼 가운데 최대 560 폭으로 제한
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-22 00:40:42 +00:00
sihooandClaude Sonnet 5 cb0984ed6f 선생님 호출 화면 폭 제한 + 출석 달력 크기 축소
넓은 화면에서 양옆으로 늘어나던 선생님 호출 내용을 가운데 최대 560 폭으로,
출석 달력은 최대 440 폭 + 칸 비율/간격을 줄여서 한눈에 보이게 했다.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-22 00:32:10 +00:00
sihooandClaude Sonnet 5 e8b375a18c 백품타 타이머 켜놓고 탭 이탈 시 브라우저 알림 추가
공부 타이머가 진행 중일 때 브라우저 탭이 백그라운드로 가면(다른
탭/창/앱으로 이동) 20초 뒤에도 계속 그 상태면 "다시 돌아와서
집중해볼까요?" 브라우저 알림을 띄운다. dart:html 대신 package:web +
js_interop로 구현하고, 웹이 아닌 빌드에서는 조건부 임포트로 아무
동작 안 하는 스텁을 쓴다.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-21 04:17:48 +00:00
sihooandClaude Sonnet 5 8a9b414535 백품타에 친구/그룹 스터디/출석 달력 기능 추가
친구 신청·수락, 그룹 생성·초대(친구 목록에서 선택)·오늘 출석 현황
공유, 개인 연속 출석(스트릭) 달력, 관리자가 날짜별로 선물/이벤트를
등록하는 달력 관리 화면을 추가. 대시보드에 학생용 3개(친구/그룹
스터디/출석 달력) + 교사·관리자용 1개(출석 달력 관리) 타일을 배치.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-21 04:09:35 +00:00
sihooandClaude Sonnet 5 bdc79b94c3 선생님 호출 화면 이모티콘을 검정 아이콘으로 통일
위치 이모티콘(🏢🍴🧪 등)을 Material 아이콘으로, 랭킹 메달 이모티콘을
백품타 랭킹 화면과 같은 금/은/동 색 emoji_events 아이콘으로 교체.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-18 06:28:50 +00:00
sihooandClaude Sonnet 5 86a8f7b9d1 선생님 호출 화면을 실시간 출석 현황과 같은 패밀리룩으로 재디자인
제목을 AppBar 대신 본문 상단 알약(TitlePill)으로 옮기고, 필 모양
통계/선택 버튼과 그림자 있는 둥근 타일(원형 아이콘 배지 + 코너 배지)
스타일을 출석 화면에서 그대로 가져왔다.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-18 03:57:10 +00:00
sihooandClaude Sonnet 5 4cf759de62 선생님 호출 시스템 추가 (Firebase 버전을 앱 계정 체계로 이전)
별도로 돌아가던 Firebase RTDB 기반 호출 페이지(index.html/teacher.html)에서
발견한 XSS, 익명 접근(아무나 아무 선생님 위치 변경 가능), 이름 위조 문제를
우리 앱 로그인 체계로 재구현하면서 구조적으로 없앴다. 학생은 본인 계정으로만
호출하고 본인 호출 기록만 보이며, 교사는 본인 위치만 수정하고 본인이 받은
호출만 본다. TTS 대신 FCM 푸시로 대체. 시간표 데이터의 "김지"→"조신현" 오타도
"조신"으로 수정해서 옮겼다.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-17 23:34:08 +00:00
sihooandClaude Sonnet 5 89487a7dfc 뽀모도로 웹 탭 딜레이로 공부/휴식 시간 안맞는 버그 수정
브라우저가 백그라운드 탭의 타이머를 느리게 돌려서(setInterval
throttling) 카운트다운을 매 tick마다 1초씩 빼는 방식으로는 다른
창에 갔다오면 시간이 밀렸다. 남은 시간을 절대 종료 시각
(_phaseEndsAt) 기준으로 계산하도록 바꾸고, 탭이 다시 활성화될 때
(AppLifecycleState.resumed) 서버 상태를 재동기화하고 밀린 전환을
바로 따라잡도록 함.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-17 00:24:35 +09:00
sihooandClaude Sonnet 5 d183370cca 뽀모도로 공부/휴식 시간 커스텀 설정을 친구들과 공유하는 기능 추가
내가 쓰는 공부/휴식 시간 조합에 이름을 붙여 공유하고, 다른 학생이
올린 루틴을 목록에서 골라 그대로 적용할 수 있다. 인기순/최신순 정렬,
많이 쓰인 루틴일수록 사용 횟수가 올라가서 눈에 띄게 했다.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-17 00:15:28 +09:00
sihooandClaude Sonnet 5 7277eb5962 백품타에 뽀모도로 커스텀 모드 추가
공부/휴식 시간을 5분 단위로 직접 정해두면(기본 50/10), 공부 시간이
끝났을 때 자동으로 일시정지되고 휴식이 끝나면 자동으로 재개된다.
서버의 기존 일시정지/재개 API를 그대로 재사용하는 클라이언트 전용
스케줄러라 백엔드 변경은 없음.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-16 15:01:50 +09:00
sihooandClaude Sonnet 5 094ce2292c 백품타에 일시정지/재개 기능 추가
진행 중일 때 일시정지하면 그 구간은 누적 시간에서 빠지고, 재개하면
다시 이어서 잰다. 상태를 idle/running/paused 3가지로 나눠서 관리.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-16 14:49:48 +09:00
sihooandClaude Sonnet 5 93104362be 익명 커뮤니티 게시판(백판) 기능 추가
디시인사이드식 고정 카테고리 게시판 + 에타 스타일 익명(글 안에서만
유효한 익명 번호) 댓글. 신고는 자동 삭제 없이 운영자(교사/관리자)
검토 후 처리하도록 별도 신고 검토 화면을 대시보드에 추가.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-15 00:59:04 +09:00
sihooandClaude Sonnet 5 73772de78a 공부 타이머 이름을 "백품타"로 변경 (백산고 + 열품타)
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-14 15:12:43 +09:00
sihooandClaude Sonnet 5 a59a3054fb 학교 전용 공부 타이머(열품타) + 학년별 랭킹 기능 추가
학생 참여 유도를 위해 공부 시작/종료 타이머와 학년별(오늘/이번주/전체)
랭킹 화면을 대시보드에 추가. 로그인 응답에 학년 정보를 포함시켜
세션 저장/복원 전체 경로에 전달되도록 함.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-14 14:58:55 +09:00
sihooandClaude Sonnet 5 26e54a1798 전체 학생 허용 시 장시간(1시간 59분 이상) 요청은 자동 제외
기존엔 전체 승인이 장시간 요청도 구분 없이 다 승인해버렸음. 이제
1시간 59분 넘는 요청은 자동으로 빼고 대기중 상태로 남겨서, "많은
시간요청 학생" 목록에서 따로 검토 후 개별 승인/거절하게 함. 확인
다이얼로그에도 몇 건이 승인되고 몇 건이 제외되는지 미리 보여줌.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-09 15:03:27 +09:00
sihooandClaude Sonnet 5 04892d5e65 스마트기기 반출 대장: 1시간 59분 이상 요청은 목록에서 빨간 테두리로 표시
기존엔 "많은 시간요청 학생" 팝업에서만 2시간 기준으로 걸러냈는데,
메인 목록 카드 자체에도 (대기중/승인/거절 등 상태 무관하게) 빨간
테두리를 씌워서 바로 눈에 띄게 함. 기준을 2시간 → 1시간 59분(119분)으로
낮춰서 두 기능이 같은 기준을 쓰도록 통일.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-09 08:31:10 +09:00
sihooandClaude Sonnet 5 a3894cc878 스마트기기 반출 대장: 전체 학생 허용 + 많은 시간요청 학생 검토 기능 추가
- "전체 학생 허용" 아이콘을 새로고침 버튼 옆에 추가 - 대기 중인 요청을
  한 명씩 승인하는 대신 확인 팝업 후 한 번에 전부 승인
- "많은 시간요청 학생" 아이콘 추가 - 학생이 시간을 비정상적으로 길게
  적어낼 수 있으니, 2시간 이상 신청한 대기 중인 요청만 따로 모아 보여줌
  (해당 건수를 빨간 배지로 표시). 목록에서 바로 승인/거절 가능
- 컨트롤러에 durationHours/longPendingRequests/approveAllPending 추가.
  일괄 승인은 서버에 batch API가 없어서 대기 요청마다 순서대로
  승인 요청을 보내고 마지막에 한 번만 새로고침

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-08 19:58:34 +09:00
sihooandClaude Sonnet 5 c40cbed0bb 메인 대시보드 타일 크기 50px 축소 (276 -> 226)
직전 커밋에서 타일을 너무 키웠다는 피드백을 반영.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-08 17:50:18 +09:00
sihooandClaude Sonnet 5 5d37d3e3b1 제목 알약 폰트 통일 + 위치 조정, 좁은 폼 너비, 메인 타일 확대
- TitlePill을 String 기반으로 바꿔서 모든 화면(설정/교사 회원가입/관리자
  시스템/NFC 태그 쓰기·체크인/학생 관리/스마트기기 반출 신청·대장/실시간
  출석 현황)이 완전히 같은 폰트(굵게, 15px, 흰색)를 쓰게 통일
- 알약이 화면 맨 위에 딱 붙어 보이지 않도록 위쪽에 8px 여백 추가
- "스마트기기 반출 신청" 폼과 "관리자 시스템"의 "모든 출석 데이터 초기화"
  버튼이 넓은 화면에서 양옆으로 과하게 늘어지던 문제 수정 - 최대 폭
  420px로 제한하고 가운데 정렬 (기존 대비 약 1/3 크기)
- 메인 대시보드 타일 목표 크기를 184 → 276(50% 확대)로 키우고, 아이콘/
  패딩/폰트 기준값도 함께 올려서 제목 10→12pt, 부제 8→10pt로 확대

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-08 16:26:29 +09:00
sihooandClaude Sonnet 5 527661b6e5 나머지 기능 화면들도 검정 AppBar를 둥근 제목 알약으로 통일
실시간 출석 현황과 같은 톤으로, 설정/교사 회원가입/관리자 시스템/
NFC 태그 쓰기·체크인/학생 통합 관리 센터/스마트기기 반출 신청·대장
화면의 검정 배경 AppBar를 투명 배경 + 가운데 둥근 제목 알약으로 교체.

출석 현황 화면과 달리 폰트 크기는 줄이지 않고 각 화면이 원래 쓰던
스타일(굵기 등)을 그대로 유지 - 공용 TitlePill 위젯이 스타일링된
Text를 그대로 감싸주기만 함.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-08 15:17:05 +09:00
sihooandClaude Sonnet 5 d9ca4913d4 실시간 출석 현황 모바일 화면: 검정 요약바 제거 + 중복 필터 정리
작은 화면(폰) 레이아웃만 데스크탑과 톤을 맞춤 - 큰 화면(사이드바/좌석
그리드)은 그대로 둠.

- 검정 배경 요약바(_buildSummaryCards)를 없애고, 데스크탑 사이드바와
  같은 흰색 캡슐(_sidebarStatPill)을 가로로 3개 배치. 탭하면 바로
  전체/출석/미출석 필터가 적용됨
- 전체 학생 수 캡슐 바로 아래 있던 필터 칩 줄(전체/출석자/미출석자 +
  학년 칩)은 위 캡슐과 기능이 겹쳐서 제거하고, 데스크탑과 동일한
  "학생 나눠보기"(런치패드 학년 필터 메뉴) 버튼으로 대체
- 더 이상 안 쓰는 _buildSummaryCards/_summaryCard/_buildFilterChips 삭제

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-08 14:23:36 +09:00
sihooandClaude Sonnet 5 3946e2ef04 앱 전체 알림을 알약형(AppNotice)으로 통일
나머지 화면들(교사 회원가입, 학생 계정 관리, 관리자 대시보드, 스마트기기
반출 신청/대장, NFC 태그 쓰기/체크인, 비밀번호 변경)에 남아있던 예전
ScaffoldMessenger.showSnackBar를 전부 AppNotice로 교체.

- AppNotice.show에 선택적 color 파라미터 추가 - NFC 태그 쓰기/체크인
  화면처럼 성공(초록)/실패(빨강) 등 색으로 구분하던 알림은 그 색을
  그대로 유지하면서 모양/위치만 통일된 알약 스타일로 바뀜
- 알림 직후 화면을 전환(로그인 성공 후 대시보드 이동, 회원가입 성공 후
  로그인 화면 복귀 등)하던 곳들도, AppNotice가 화면(Scaffold)이 아니라
  전역 Overlay를 쓰기 때문에 전환 중에 알림이 잘리지 않고 새 화면 위에
  계속 보임 (기존 스낵바 방식보다 개선됨)

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-08 13:11:55 +09:00
sihooandClaude Sonnet 5 f80f1f7837 실시간 출석 현황: 하교 처리 등 결과 알림을 알약형(AppNotice)으로 통일
_runAction이 아직 예전 ScaffoldMessenger.showSnackBar(하단 스낵바)를
쓰고 있어서, 하교 처리/반출 허용/출석시간 설정/테스트 초기화 결과가
다른 화면과 다르게 아래에서 떴던 문제 수정. AppNotice.show로 교체해서
웹은 왼쪽 위, 앱은 하단(기존 위치)에 나머지 화면들과 같은 스타일로 뜨게 함.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-08 12:55:35 +09:00
sihooandClaude Sonnet 5 32203baffc 실시간 출석 현황: 제목 알약을 앱바에서 사이드바 상단으로 이동
앱바 가운데 제목 대신, "전체 학생 수" 버튼 바로 위(사이드바 최상단)에
제목 알약을 두도록 변경. 모바일도 요약 카드 위로 동일하게 이동.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-08 09:38:56 +09:00
sihooandClaude Sonnet 5 20f751b65e 실시간 출석 현황: 검정 배너 제거 + 기능들을 런치패드 메뉴로 통합
- 상단 검정 AppBar 대신 투명 배경 + 가운데 둥근 알약 제목으로 변경
- 새로고침/자습실 출석시간 설정/반출 허용 시간 설정/하교 처리/테스트용
  초기화를 "자습실 시간 설정 메뉴" 하나로 모아서, 메인 대시보드의
  로그아웃/설정 메뉴와 같은 런치패드 스타일(배경 블러) 오버레이로 표시
- 데스크탑은 사이드바에 전용 버튼을 추가하고, 폰에서는 앱바의 "..."
  아이콘으로 같은 메뉴에 접근 (모바일 기능 접근성 유지)

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-08 09:31:17 +09:00
sihooandClaude Sonnet 5 2d0768da73 실시간 출석 현황 데스크탑 화면을 좌석표 스타일로 재구성
80명 이상인 자습실 인원을 스크롤 없이 최대한 한눈에 보기 위해,
데스크탑(교실 컴퓨터) 레이아웃을 왼쪽 요약/필터 사이드바 + 오른쪽
촘촘한 좌석 그리드 구조로 바꿈. 학생 한 명당 칸을 92x62 크기로 작게
줄여 한 화면에 훨씬 많은 인원이 들어가게 했고, 사이드바의 인원 수
캡슐(전체/출석/미출석)을 눌러 바로 필터링할 수 있게 함. 학년 필터는
런치패드 스타일 오버레이 메뉴로 이동. 모바일 카드 리스트 레이아웃은
그대로 유지.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-08 09:01:51 +09:00
sihooandClaude Sonnet 5 75b906c648 웹에서 타일이 너무 작아 보이는 문제 수정 - 1x1 크기를 프로필 카드에 맞춤
임의로 20% 축소하던 방식 대신, 1x1 타일 목표 크기(184px, 계정 프로필
카드와 비슷한 크기)를 기준으로 그리드 폭을 계산하도록 변경. 화면이
목표 크기보다 넓으면 가운데로 모아 여백을 주고, 좁으면(폰) 화면 폭에
그대로 맞춘다.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-08 00:08:20 +09:00
sihooandClaude Sonnet 5 73542fa11c 대시보드 타일 그리드 여백 확보 - 4열 고정 + 크기 20% 축소
- 화면이 넓어져도 열 개수를 6개까지 늘리지 않고 4열에서 고정
- 그리드 캔버스 자체 너비를 700px로 제한하고 20% 더 줄여서, 타일이
  화면을 꽉 채우는 느낌 대신 가운데에 여백을 두고 정갈하게 보이게 함

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-07 23:59:59 +09:00
sihooandClaude Sonnet 5 79938898a0 대시보드 레이아웃을 목업처럼 재구성 (작은 프로필 카드 + 매이슨리 타일 그리드)
- 화면 전체를 차지하던 색상 배너를 작은 둥근 프로필 카드로 교체하고 가운데에 배치
- 앱바는 ">" 메뉴 버튼만 올라가는 투명한 얇은 바로 변경
- 균일한 그리드 대신 flutter_staggered_grid_view로 타일마다 크기가 다른
  매이슨리 레이아웃 적용 (NFC 태그는 세로로 길게, 실시간 출석/서버 DB 제어는
  가로로 넓게) - 화면 폭에 따라 열 개수가 자동으로 바뀌어 폰에서도 안 깨짐
- 가로로 넓지만 낮은 타일에서 내용이 넘치지 않도록 카드 배율 계산을
  가로/세로 중 작은 쪽 기준으로 변경

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-07 23:45:38 +09:00
sihooandClaude Sonnet 5 f885719674 런치패드 스타일 화면 전환 + 설정/로그아웃 메뉴 오버레이 + 알약형 알림 추가
- 좌우 슬라이드 대신 맥북 런치패드처럼 확대+페이드로 나타나고 전환 중 뒤 화면이
  블러 처리되는 LaunchpadPageRoute 추가, 대시보드의 모든 기능 타일 이동에 적용
- 오른쪽 위 설정 아이콘 + 로그아웃 아이콘 2개를 ">" 버튼 1개로 통합하고,
  누르면 로그아웃/설정 메뉴가 런치패드 스타일 오버레이(배경 블러 유지)로 뜨게 변경
- 기능 타일을 누를 때 뜨는 안내 메시지를 스낵바 대신 알약(pill) 모양 알림으로 교체
  (AppNotice) - 웹에서는 왼쪽 위, 앱에서는 기존처럼 아래쪽에 표시. 푸시 알림과는 무관.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-07 23:25:23 +09:00
sihooandClaude Sonnet 5 c94f51a033 타일 UI 편집 기능 임시 보류 + 로그인 유지 체크박스 추가
- 폰처럼 작은 화면에서 6칸 고정 격자 때문에 레이아웃이 깨지는 문제로,
  타일 드래그 이동/크기조절 기능을 kTileEditingEnabled 플래그로 임시 비활성화
  (관련 코드는 그대로 유지 - 작은 화면 대응 방안 마련 후 플래그만 켜면 재사용 가능)
- 비활성화 상태에서는 화면 폭에 따라 열이 자동으로 줄어드는 기본 그리드 사용
- 설정 화면의 "UI 편집" 항목은 비활성화 표시로 안내
- 로그인 화면에 "로그인 상태 유지" 체크박스 추가 (기본 체크됨, 해제 시 세션 저장 안 함)

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-07 22:47:07 +09:00
sihooandClaude Sonnet 5 7495ece0c8 대시보드 배너/타이틀 중앙정렬 + 타일 UI 편집(드래그 이동/크기조절) + 로그인 유지 기능 추가
- 이름/부제, "스마트 관리 시스템 메뉴" 제목을 중앙 정렬
- 타일을 1x1~4x4 크기로 자유 배치할 수 있는 편집 모드 추가 (6x4 캔버스, 삼성 One UI 위젯 편집 방식)
- 타일 배치는 계정별로 서버에 저장/복원 (dashboard_layout_controller.dart)
- 설정 화면(톱니바퀴 아이콘) > "UI 편집" 진입점 추가
- shared_preferences로 로그인 유지 기능 추가 (비밀번호는 저장하지 않음)

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-07 22:18:16 +09:00
sihooandClaude Sonnet 5 83c148186d 전역 테마를 팔레트로 교체 + 빠졌던 팝업 화면들 마무리
앱 전체 MaterialApp의 ThemeData가 여전히 primarySwatch: Colors.indigo
였던 게 진짜 원인이었음 — 개별 화면 색은 고쳤지만, 기본 위젯 스타일
(포커스 안 된 텍스트필드 밑줄, FilterChip 선택 색 등)은 전부 이
전역 테마를 그대로 따라가고 있어서 여전히 예전 색으로 보였음.
ColorScheme을 AppPalette 기준으로 재구성해 해결.

추가로 팔레트 작업에서 빠졌던 화면들도 마무리:
- teacher_register_screen.dart (교사 회원가입)
- nfc_tag_writer_screen.dart (NFC 태그 쓰기)
- change_password_screen.dart (미사용이지만 일관성을 위해 정리)
- teacher_attendance_page.dart의 주머니 번호 칩 색상

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-07 13:35:46 +09:00
sihooandClaude Sonnet 5 9089b9032e UI 문구 이모티콘 제거 + 계정 강제 삭제 아이콘 검정으로 통일
화면 타이틀, 스낵바/다이얼로그 메시지, 백그라운드 알림 문구 등
사용자에게 노출되는 텍스트에서 이모티콘을 전부 제거 (코드 주석은
대상 아님). 아이콘 위젯은 그대로 유지.

main_dashboard.dart의 "계정 강제 삭제" 타일 아이콘 색상도 빨간색
대신 다른 타일과 동일한 검정(AppPalette.ink)으로 통일.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-04 22:31:03 +09:00
sihooandClaude Sonnet 5 dce5f1ad1b 앱 전체 배경/카드 색상을 coolors 팔레트로 통일
coolors.co 무채색 팔레트(1c1c1c-daddd8-ecebe4-eef0f2-fafaff)를
lib/theme/app_palette.dart에 정의하고, 로그인/대시보드/출석 확인/
학생 계정 관리/스마트기기 반출(신청·대장)/관리자 화면 전반의
배너·배경·카드·기본 버튼 색을 이 팔레트로 교체.

기능적으로 의미 있는 색(위반/미출석/삭제/거절 등 경고성 빨간색,
승인 대기 등 상태 표시)은 그대로 유지 — 구조적/장식적 색상만
무채색으로 통일해 위험한 동작이 시각적으로 더 도드라지게 함.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-04 14:36:30 +09:00
sihooandClaude Sonnet 5 b1c8447eaf 학생/교사/관리자 대시보드를 하나의 공통 화면으로 통합
StudentDashboard, TeacherDashboard, AdminDashboard(진입 라우팅)를
MainDashboard 하나로 합치고, 역할(role)에 따라 배너 색상/문구와
보이는 타일만 달라지게 함. 그리드 레이아웃/카드 디자인은 이제
한 곳에서만 관리되어, 앞으로 UI를 고치면 모든 역할에 자동 적용됨.

- 2061(개발자) 계정에 기존에 빠져있던 "스마트기기 반출 대장" 타일 추가
- role=='admin' 실 계정도 이제 학생 계정 관리/출석 확인 등 교사 기능에
  접근 가능 (관리자는 교사 권한을 포함하는 것으로 정리)
- 작은 DB 초기화 전용 화면(admin_dashboard.dart)은 "서버 DB 제어"
  타일의 목적지로만 유지, 로그인 직후 랜딩 화면 역할은 제거

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-03 21:54:33 +09:00
sihooandClaude Sonnet 5 2b3227f268 스마트기기 반출: "기기 반납 확인" 버튼 추가
자동 감지 하드웨어가 아직 없어서, 승인된(APPROVED) 요청에 선생님이
기기를 실제로 돌려받았을 때 누르는 "기기 반납 확인" 버튼을 추가.
누르면 상태가 반납완료로 바뀌어 10분 후 미반납 알림이 더 이상
가지 않는다 (백엔드는 별도 저장소에서 이미 배포 완료).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-01 14:05:19 +09:00
sihooandClaude Sonnet 5 383de8b3a1 스마트기기 반출: 저울 하드웨어 제거, 승인 선생님 지정 알림으로 변경
계획 변경에 따라 저울/아두이노 기반 픽업·반납·무단반출 감지를 없애고
순수 시간 기반 알림만 남김 (백엔드는 별도 저장소에서 이미 배포 완료).

- 승인 시 현재 로그인한 선생님의 teacherId/teacherName을 서버에 함께
  전송하여 저장하고, 대장에 "OOO 선생님이 허용했습니다" 표시
- 반납 시간 초과 알림은 승인한 선생님에게만 전송 (서버가 해당 선생님의
  등록된 기기를 못 찾으면 전체 선생님에게 대체 발송)
- 대장 카드의 상태 표시에서 IN_USE/RETURNED(픽업 대기) 문구 제거

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-01 13:20:28 +09:00
sihooandClaude Sonnet 5 83cb4a5300 학생 계정 개별 추가: 기본 비밀번호 1234로 고정
엑셀 일괄 등록과 동일하게 초기 비밀번호를 항상 1234로 고정하고
입력칸을 없앰. 대신 폼에 "초기 비밀번호: 1234 (고정)" 안내 표시.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-01 08:43:20 +09:00
sihooandClaude Sonnet 5 f1b9f14eb0 계정 추가 폼이 작은 박스 안에서도 버튼까지 다 보이도록 조정
박스 크기를 살짝 키우고(25% 크기 기준 +45%) 입력 필드를 촘촘하게
(isDense, 작은 폰트/패딩) 만들어 스크롤 없이 등록 버튼까지 모두
보이도록 함.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-01 08:38:24 +09:00
sihooandClaude Sonnet 5 f49d6d8722 계정 추가/엑셀 등록 칸 크기를 25%로 재축소
정사각형 기본 크기(절반 폭)로 되돌렸더니 다시 너무 커졌다는
피드백에 따라 25% 크기로 재조정.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-01 08:29:50 +09:00
sihooandClaude Sonnet 5 75f12b8c46 계정 추가/엑셀 등록 칸만 원래의 정사각형(절반 폭) 크기로 복원
NFC 출석 확인 타일 규격에 맞췄던 계정 추가/엑셀 등록 칸 크기를
되돌리고, 학생 목록 타일 크기/폰트는 그대로 유지.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-01 08:24:19 +09:00
sihooandClaude Sonnet 5 d9ab6adb51 학생 계정 관리 타일 크기/폰트를 실시간 출석 확인 목록과 통일
계정 추가/엑셀 등록 칸과 학생 목록 타일 모두 "실시간 출석 확인"
목록의 타일 규격(220x148, 이름15/상태11.5/칩11 폰트)에 맞춰
동일한 비율로 재조정.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-01 08:20:47 +09:00
sihooandClaude Sonnet 5 eba23ecf9b 학생 목록 타일 글자 확대 + 계정 추가/엑셀 칸을 학생 타일 크기로 통일
학생 타일의 이름/상태/학년칩 폰트와 아이콘 크기를 키워 가독성을
높이고, 계정 추가/엑셀 등록 정사각형 칸의 크기를 학생 목록 타일과
동일한 크기(tileSize)로 통일했다.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-01 00:48:43 +09:00
sihooandClaude Sonnet 5 e9d31ce41e 학생 계정 관리 화면 박스 크기 재조정
계정 추가/엑셀 등록 정사각형 칸은 기존 크기의 25%로 축소하고,
학생 목록 타일은 기존보다 50% 더 큰 정사각형으로 확대. 목록 폭은
더 이상 위 두 칸 폭에 종속되지 않고 전체 폭을 사용하도록 변경.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-01 00:42:05 +09:00
sihooandClaude Sonnet 5 517aa791b5 학생 목록 타일 크기 약 1/4로 축소
타일이 너무 크다는 피드백에 따라 crossAxisCount를 늘리고(8/4)
아바타, 폰트, 버튼 크기를 전반적으로 줄여 훨씬 컴팩트한 타일로 변경.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-01 00:34:06 +09:00
sihooandClaude Sonnet 5 5b3eb2fcf8 학생 계정 관리 화면 레이아웃 재구성 (정사각형 2칸 + 타일형 학생 목록)
웹 넓은 화면에서 계정 추가/엑셀 일괄 등록을 정사각형 2칸으로
나란히 배치(왼쪽 계정 추가, 오른쪽 엑셀 등록)하고, 그 아래 학생
목록을 두 칸 합친 폭에 맞춘 타일 그리드로 변경. 각 타일은 아이콘/
이름/상태/액션 버튼을 모두 중앙 정렬. 폰 화면은 기존처럼 세로 스택
유지.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-01 00:28:51 +09:00
sihooandClaude Sonnet 5 debf733afd 학생 계정 관리 - 신규 계정 추가 폼 폭 축소
웹 넓은 화면에서 계정 추가 폼이 페이지 전체 폭으로 늘어나
지나치게 길어 보이던 문제 수정. 현재 폭의 2/3로 제한.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-31 19:52:49 +09:00
sihooandClaude Sonnet 5 eccd55c201 선생님 대시보드 웹 타일 그리드 반응형으로 수정
웹(넓은 화면)에서 항상 2개씩 줄바꿈되던 버그 수정. 학생 대시보드와
동일하게 LayoutBuilder로 폭이 800 이상이면 한 줄에 5개, 좁으면
기존처럼 2개씩 보이도록 함.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-31 19:46:19 +09:00
sihooandClaude Sonnet 5 fd0bc4f814 스마트기기(패드) 반출 신청/승인 시스템 추가
패드는 NFC를 못 쓰므로 학생이 사용 시간/목적을 신청하면 선생님이
대시보드의 반출 대장에서 승인/거절하는 흐름을 추가. 저울-아두이노
연동(무게 기반 픽업/반납 감지)은 백엔드에 구현되어 있으나 실기기
연동은 추후 진행.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-31 01:49:17 +09:00