- TitlePill을 String 기반으로 바꿔서 모든 화면(설정/교사 회원가입/관리자
시스템/NFC 태그 쓰기·체크인/학생 관리/스마트기기 반출 신청·대장/실시간
출석 현황)이 완전히 같은 폰트(굵게, 15px, 흰색)를 쓰게 통일
- 알약이 화면 맨 위에 딱 붙어 보이지 않도록 위쪽에 8px 여백 추가
- "스마트기기 반출 신청" 폼과 "관리자 시스템"의 "모든 출석 데이터 초기화"
버튼이 넓은 화면에서 양옆으로 과하게 늘어지던 문제 수정 - 최대 폭
420px로 제한하고 가운데 정렬 (기존 대비 약 1/3 크기)
- 메인 대시보드 타일 목표 크기를 184 → 276(50% 확대)로 키우고, 아이콘/
패딩/폰트 기준값도 함께 올려서 제목 10→12pt, 부제 8→10pt로 확대
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
실시간 출석 현황과 같은 톤으로, 설정/교사 회원가입/관리자 시스템/
NFC 태그 쓰기·체크인/학생 통합 관리 센터/스마트기기 반출 신청·대장
화면의 검정 배경 AppBar를 투명 배경 + 가운데 둥근 제목 알약으로 교체.
출석 현황 화면과 달리 폰트 크기는 줄이지 않고 각 화면이 원래 쓰던
스타일(굵기 등)을 그대로 유지 - 공용 TitlePill 위젯이 스타일링된
Text를 그대로 감싸주기만 함.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
나머지 화면들(교사 회원가입, 학생 계정 관리, 관리자 대시보드, 스마트기기
반출 신청/대장, NFC 태그 쓰기/체크인, 비밀번호 변경)에 남아있던 예전
ScaffoldMessenger.showSnackBar를 전부 AppNotice로 교체.
- AppNotice.show에 선택적 color 파라미터 추가 - NFC 태그 쓰기/체크인
화면처럼 성공(초록)/실패(빨강) 등 색으로 구분하던 알림은 그 색을
그대로 유지하면서 모양/위치만 통일된 알약 스타일로 바뀜
- 알림 직후 화면을 전환(로그인 성공 후 대시보드 이동, 회원가입 성공 후
로그인 화면 복귀 등)하던 곳들도, AppNotice가 화면(Scaffold)이 아니라
전역 Overlay를 쓰기 때문에 전환 중에 알림이 잘리지 않고 새 화면 위에
계속 보임 (기존 스낵바 방식보다 개선됨)
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
화면 타이틀, 스낵바/다이얼로그 메시지, 백그라운드 알림 문구 등
사용자에게 노출되는 텍스트에서 이모티콘을 전부 제거 (코드 주석은
대상 아님). 아이콘 위젯은 그대로 유지.
main_dashboard.dart의 "계정 강제 삭제" 타일 아이콘 색상도 빨간색
대신 다른 타일과 동일한 검정(AppPalette.ink)으로 통일.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
coolors.co 무채색 팔레트(1c1c1c-daddd8-ecebe4-eef0f2-fafaff)를
lib/theme/app_palette.dart에 정의하고, 로그인/대시보드/출석 확인/
학생 계정 관리/스마트기기 반출(신청·대장)/관리자 화면 전반의
배너·배경·카드·기본 버튼 색을 이 팔레트로 교체.
기능적으로 의미 있는 색(위반/미출석/삭제/거절 등 경고성 빨간색,
승인 대기 등 상태 표시)은 그대로 유지 — 구조적/장식적 색상만
무채색으로 통일해 위험한 동작이 시각적으로 더 도드라지게 함.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
학생 타일의 이름/상태/학년칩 폰트와 아이콘 크기를 키워 가독성을
높이고, 계정 추가/엑셀 등록 정사각형 칸의 크기를 학생 목록 타일과
동일한 크기(tileSize)로 통일했다.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
계정 추가/엑셀 등록 정사각형 칸은 기존 크기의 25%로 축소하고,
학생 목록 타일은 기존보다 50% 더 큰 정사각형으로 확대. 목록 폭은
더 이상 위 두 칸 폭에 종속되지 않고 전체 폭을 사용하도록 변경.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
웹 넓은 화면에서 계정 추가/엑셀 일괄 등록을 정사각형 2칸으로
나란히 배치(왼쪽 계정 추가, 오른쪽 엑셀 등록)하고, 그 아래 학생
목록을 두 칸 합친 폭에 맞춘 타일 그리드로 변경. 각 타일은 아이콘/
이름/상태/액션 버튼을 모두 중앙 정렬. 폰 화면은 기존처럼 세로 스택
유지.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
- 두 화면이 서로 다른 기능만 갖고 있던 문제 해결: 선생님 화면(엑셀 일괄등록,
학년 지정, 커스텀 초기비번)에 마스터 화면에만 있던 실시간 학생 목록 조회 +
기기 리셋(학생이 폰 바꿨을 때 재등록용) 기능을 합침
- 학번을 직접 타이핑하던 블라인드 학년변경/삭제 다이얼로그를 목록의
행별 액션(학년 칩, 기기 리셋 버튼, 삭제 버튼)으로 교체
- 계정 생성/삭제/학년변경 성공 시 목록 자동 새로고침
- 마스터(2061) 계정의 "학생 계정 관리" 카드도 이 통합 화면으로 연결하고,
중복되던 student_management_screen.dart / student_management_controller.dart 삭제
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
- 학생 계정 관리 화면에 드래그앤드롭/클릭 업로드 영역 추가
(excel, desktop_drop, file_picker 패키지 도입)
- .xlsx 파싱 → 미리보기 팝업 → 확인 후 한 명씩 순서대로 계정 생성,
결과(성공/실패)를 요약해서 보여줌. 초기 비밀번호는 1234 고정
- file_picker의 웹 구현체가 pickFile(s)를 아직 구현하지 않아서
(UnimplementedError) 웹에서는 package:web으로 직접 <input type=file>을
다뤄서 우회 (lib/function/excel_file_picker_web.dart), 다른 플랫폼은
기존 file_picker 사용 (excel_file_picker_io.dart)
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
- 학생 계정 관리 화면에 학번으로 학년을 지정/변경하는 카드+다이얼로그 추가
- 계정 생성 성공 판정을 HTTP 상태코드가 아닌 응답 status 필드로 정확히 확인하도록 수정
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
- 실시간 출석 현황을 학년별 섹션으로 묶어서 표시 (백엔드에 grade 필드 추가)
- 학생 계정 추가 폼에 학년 선택 드롭다운 추가
- 학생 계정 생성/삭제가 실제로는 존재하지 않는 엔드포인트를 호출하던
버그 수정 (/api/users/register-student, /api/users/delete/{id} →
/api/users/create, /api/users/delete)
- 학생 대시보드(개발자 모드) 카드 그리드가 넓은 화면에서 과도하게
커지던 레이아웃 버그 수정, 웹은 5열/폰은 2열로 반응형 처리
- 버전 1.2.0+6
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>