Spaces:
Runtime error
Runtime error
Commit History
-
fix: HCI 개선 1~4 — 에러코드 노출, 방 자동선택, 빈방 fallback, 토론상태 표시
ClaudeUnverified signature1. 에러 코드 노출 제거: 사이드바 방 개설 에러에서 내부 코드(VALIDATION_*) 숨김 2. 방 생성 후 자동 선택: 개설 즉시 캐시 초기화 후 새 방으로 자동 이동 3. 교사 방 없을 때 fallback: '기존 방 선택' 시 방이 없으면 안내 메시지 표시 4. 학생 토론 상태 배너: 진행 중/종료 여부를 항상 배너로 명시 https://claude.ai/code/session_016DE3uHLsVmA5Uv7gZGGaKT9dcf3c3
-
fix: admin 로그인 첫 화면 분기 수정 — pending 없으면 대기실로 올바르게 이동
ClaudeUnverified signaturejoined=True 상태에서는 로비가 안 열리므로 pending 없을 때 joined=False 유지, _admin_redirected 플래그로 AUTO_JOIN_ON_REFRESH 무한루프 방지, 방 나가기/방 전환/모드 전환 시 플래그 초기화 https://claude.ai/code/session_016DE3uHLsVmA5Uv7gZGGaKT2eb4389
-
feat: 방 입장 후 학번 입력창 수정 불가 처리
ClaudeUnverified signaturejoined 상태에서 학번 text_input을 disabled로 잠가 접속 후 학번 변경을 방지. 호버 시 안내 문구 표시. https://claude.ai/code/session_016DE3uHLsVmA5Uv7gZGGaKT8848482
-
feat: 교사 세특 작성 영역 전체 제거
ClaudeUnverified signature연구대회 학생 배움 중심 스프린트 방향에 따라 세특 기능 제외. AI 세특 초안 생성 UI, 세특 보관함, 관련 DB 쿼리, 프롬프트 빌더, session_state, CSS를 모두 삭제. https://claude.ai/code/session_016DE3uHLsVmA5Uv7gZGGaKT10d9001
-
refactor: 불필요한 파일 통폐합 및 관심사 분리
ClaudeUnverified signature- components/__init__.py, views/__init__.py (빈 파일) 삭제 - services/prompts.py → services/ai.py 병합 (항상 함께 사용되는 프롬프트 빌더) - auth.py 신설: 비밀번호 해시/검증 함수를 db.py에서 분리 - components/teacher_auth.py 신설: 교사 로그인·회원가입·로그아웃 UI를 sidebar.py에서 추출 (242줄 → 110줄) - views/admin.py → components/admin_panel.py 이동 (컴포넌트 성격에 맞게 재배치) - 관련 임포트 경로 일괄 업데이트 https://claude.ai/code/session_01BRbPoMBBfvgN58bGkNhmv78673167
-
Fix: 캐시 중첩 호출로 인한 10초 지연 제거, Running 표시 숨김
ClaudeUnverified signaturefetch_room_names/fetch_room_names_by_owner/fetch_topic_data의 @st.cache_data 추가가 check_schema_columns(@st.cache_data) 중첩 호출 시 Streamlit 캐시 미스를 유발해 매 새로고침마다 10초 지연 발생. 세 함수의 데코레이터와 _ 파라미터 접두사 제거로 원복. stStatusWidget CSS 숨김으로 Running 표시 제거. https://claude.ai/code/session_01Q3iYL9HzBCznNPUTHLZLnq180a1f1 -
Fix: 일반 교사 로그인 성공 후 st.rerun() 추가로 로그인 폼 즉시 숨김
ClaudeUnverified signaturehttps://claude.ai/code/session_01VubVHht1kvabfdfFR1weKsdb04517 -
Fix: 관리자 바로가기를 사이드바에서 제거, 홈 화면 제목 오른쪽에 버튼으로 배치
ClaudeUnverified signaturehttps://claude.ai/code/session_01VubVHht1kvabfdfFR1weKs57726fc -
Feat: 교사 로그인 시 로그인 폼 숨김, 로그아웃 시 다시 표시
ClaudeUnverified signaturehttps://claude.ai/code/session_01VubVHht1kvabfdfFR1weKs3a227de -
Fix: 로그아웃 시 교사 ID/PW 입력 필드 초기화
ClaudeUnverified signaturehttps://claude.ai/code/session_01VubVHht1kvabfdfFR1weKs10ec81e -
Feat: 교사 로그인 상태일 때 ID/PW 신청 탭 숨김
ClaudeUnverified signaturehttps://claude.ai/code/session_01VubVHht1kvabfdfFR1weKsc5a8353 -
Perf: 초기 로딩 속도 개선 (sleep 제거, 캐시 추가, 병렬 쿼리)
ClaudeUnverified signature- ensure_db_login: time.sleep(0.5) 제거로 매 세션 0.5s 단축 - check_schema_columns: 5개 DB 쿼리를 ThreadPoolExecutor로 병렬 실행 - fetch_room_names / fetch_room_names_by_owner: @st.cache_data(ttl=30) 추가 - fetch_topic_data: @st.cache_data(ttl=10) 추가로 매 렌더링 DB 쿼리 제거 - chat_board: 실시간 보드 fetch를 2000 → 300건으로 축소 (6.7x 네트워크 절감) - sidebar: 방 개설 시 관련 캐시 명시적 무효화 https://claude.ai/code/session_01VubVHht1kvabfdfFR1weKsbd2e763
-
Security: 로그인 시 평문 비밀번호 자동 bcrypt 업그레이드
ClaudeUnverified signature- _is_hashed(): bcrypt 해시 여부 감지 - upgrade_teacher_password(): 해시로 DB 업데이트 - sidebar: 로그인 성공 시 평문이면 즉시 자동 해시 업그레이드 https://claude.ai/code/session_018WXW8M8SMsWcHtj1RynUi46b47768 -
Security: 교사 비밀번호 bcrypt 해시 저장 및 의존성 버전 핀
ClaudeUnverified signature- db.py: _hash_password(), _verify_password() 추가 - 신규 계정 신청 시 bcrypt 해시로 저장 - 로그인 시 bcrypt 검증, 기존 평문 계정도 호환 - components/sidebar.py: 직접 문자열 비교 → _verify_password() 사용 - requirements.txt: 버전 범위 핀 추가, bcrypt>=4.0.0 추가 https://claude.ai/code/session_018WXW8M8SMsWcHtj1RynUi420fc3c3 -
Refactor: split app.py into pages/ and components/ modules
ClaudeUnverified signature- config.py: all constants, feature flags, and CSS - pages/home.py, lobby.py, admin.py: full-page views - components/sidebar.py: teacher login/signup + student room selection - components/chat_board.py: live message board with auto-refresh fragment - components/teacher_dashboard.py: AI hints, summary reports, 세특 drafts - app.py rewritten as lean orchestrator (~160 lines) https://claude.ai/code/session_018WXW8M8SMsWcHtj1RynUi43bb2388