- 신고 및 완료 사진 5장 지원 (photo_path3, photo_path4, photo_path5 추가)
- 엑셀 일일 리포트 개선:
- 사진 5장 모두 한 행에 일렬 배치 (A, C, E, G, I 열)
- 상태별 색상 구분 (지연중: 빨강, 진행중: 노랑, 완료: 진한 초록)
- 우선순위 기반 정렬 (지연중 → 진행중 → 완료됨)
- 프로젝트 현황 통계 박스 UI 개선 (색상 구분)
- 프론트엔드 모든 페이지 5장 사진 표시 (flex-wrap 레이아웃)
- 관리함, 수신함, 현황판, 신고내용 확인 페이지
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
🔄 Major Changes:
- ❌ 복잡한 모바일 캘린더 → ✅ 간단한 시작/끝 날짜 입력
- ❌ 전체 부적합 조회 → ✅ 자신이 올린 내용만 조회
📅 Date Filter Improvements:
- 시작날짜/끝날짜 직접 입력 방식
- 빠른 선택 버튼: 오늘, 이번 주, 이번 달, 전체
- 날짜 기준: report_date (등록일) 기준으로 필터링
- 기본값: 이번 주 (일요일~오늘)
🔒 Privacy Enhancement:
- 자신이 올린 부적합 사항만 표시 (reporter_id 기준)
- 전체 항목은 현황판에서 확인 가능
- 개인 데이터 보호 강화
🎯 UX Improvements:
- 모바일 캘린더 CSS/JS 제거로 페이지 로딩 속도 향상
- 직관적인 날짜 입력 인터페이스
- 날짜 유효성 검증 (시작날짜 ≤ 끝날짜)
- 명확한 에러 메시지
📱 Mobile Friendly:
- 네이티브 date picker 사용
- 터치 친화적 인터페이스
- 반응형 레이아웃 유지
🔧 Code Cleanup:
- 모바일 캘린더 관련 코드 완전 제거
- 불필요한 CSS/JS 의존성 제거
- 함수 간소화 및 최적화
Expected Result:
✅ 더 빠르고 직관적인 날짜 선택
✅ 개인 데이터 보호
✅ 모바일 최적화
✅ 코드 복잡성 감소
🔄 Workflow Status System Integration:
- 기존 '검토 상태' → '워크플로우 상태'로 변경
- 4단계 워크플로우 지원: 수신함, 관리함(진행중), 관리함(완료), 폐기함
- 기존 데이터와의 호환성 유지 (폴백 로직)
📋 Filter Updates:
- issue-view.html: 워크플로우 상태 필터 추가
- index.html: 목록 섹션 워크플로우 상태 필터 추가
- 4개 상태별 필터링: pending_review, in_progress, completed, disposed
🎨 Visual Enhancements:
- 워크플로우 상태별 배지 시스템 구현
- 아이콘 및 색상 코딩: 수신함(주황), 진행중(파랑), 완료(녹색), 폐기(회색)
- 상태별 그룹화 표시 개선
🔧 Technical Implementation:
- getWorkflowStatusBadge() 함수 추가
- review_status 필드 기반 필터링
- 기존 isReviewCompleted() 함수와 호환성 유지
- 상태별 분류 로직 개선
📊 Status Configuration:
- pending_review: 수신함 (검토 대기) - fas fa-inbox
- in_progress: 관리함 (진행 중) - fas fa-cog
- completed: 관리함 (완료됨) - fas fa-check-circle
- disposed: 폐기함 (폐기됨) - fas fa-trash
🔄 Backward Compatibility:
- 기존 데이터 자동 매핑
- 점진적 마이그레이션 지원
- 오류 없는 상태 전환
Expected Result:
✅ 부적합 조회에서 4단계 워크플로우 상태 확인 가능
✅ 수신함/관리함/폐기함별 필터링 지원
✅ 시각적으로 구분되는 상태 배지 표시
✅ 기존 데이터와 새 시스템 모두 호환
🎨 Universal Smooth Animation System:
- 6개 모든 페이지에 통일된 애니메이션 적용
- 헤더 우선 표시 → 본문 부드러운 페이드인
- 일관성 있는 사용자 경험 제공
📱 Applied Pages:
✅ index.html (메인 페이지)
✅ issues-inbox.html (수신함)
✅ issue-view.html (부적합 조회)
✅ daily-work.html (일일공수)
✅ project-management.html (프로젝트 관리)
✅ admin.html (관리자)
🎯 Animation Flow (모든 페이지 동일):
Step 1: 헤더 빠른 페이드인 (0.4s, -10px → 0)
Step 2: 본문 지연 페이드인 (0.8s, +30px → 0, 0.2s delay)
Step 3: 컨텐츠 순차 표시 (100ms 간격)
🔧 Unified Implementation:
- 동일한 CSS 애니메이션 클래스 (.header-fade-in, .content-fade-in)
- 통일된 JavaScript 함수 (animateHeaderAppearance, animateContentAppearance)
- 헤더 초기화 후 자동 애니메이션 시작
- 에러 상황에서도 애니메이션 적용
🎨 Enhanced UX Features:
- 헤더 우선 표시로 즉시 네비게이션 가능
- 부드러운 전환으로 시각적 만족감 증대
- 브랜드 일관성을 위한 통일된 애니메이션
- 성능 최적화된 애니메이션 시스템
🎯 Visual Improvements:
- 헤더: 위에서 부드럽게 등장 (빠름)
- 본문: 아래에서 부드럽게 등장 (느림)
- 컨텐츠: 순차적 페이드인 (리듬감)
- 매끄러운 페이지 전환
Expected Result:
✨ 모든 페이지에서 동일한 부드러운 로딩 경험
✨ 헤더 우선 표시로 즉시 네비게이션 가능
✨ 통일된 브랜드 경험 및 사용자 만족도 증대
✨ 성능 최적화와 시각적 완성도 양립
- 모든 HTML 페이지에 권한 기반 공통 헤더 적용
- 부적합 등록 페이지 모바일 최적화 (사진 업로드 UI 개선)
- 부적합 조회 페이지에 모바일 캘린더 날짜 필터 적용
- 사용자별 권한에 따른 동적 페이지 제목 및 메시지 표시
Page Updates:
- index.html: 모바일 친화적 사진 업로드 UI, 공통 헤더 적용
- issue-view.html: 터치/스와이프 캘린더 필터, 권한별 조회 제한
- daily-work.html: 공통 헤더 적용, 프로젝트 로딩 로직 개선
- project-management.html: 공통 헤더 적용, 권한 체크 강화
- admin.html: 페이지 권한 관리 UI 추가, 공통 헤더 적용
Mobile Optimizations:
- 터치 타겟 최소 44px 보장
- 스와이프 제스처 지원
- 반응형 레이아웃
- 모바일 전용 UI 컴포넌트
- 토큰 저장 키 통일 (access_token으로 일관성 확보)
- 일일공수 페이지 API 스크립트 로딩 순서 수정
- 프로젝트 관리 페이지 비활성 프로젝트 표시 문제 해결
- 업로드 카테고리에 '기타' 항목 추가 (백엔드 schemas.py 포함)
- 비밀번호 변경 기능 API 연동으로 수정
- 프로젝트 드롭다운 z-index 문제 해결
- CORS 설정 및 Nginx 구성 개선
- 비밀번호 해싱 방식 pbkdf2_sha256으로 변경 (bcrypt 72바이트 제한 해결)
- localStorage와 DB ID 불일치 문제 해결
- 프로젝트별 보고서 시간 필터링 수정
- 일반 사용자에게 일일공수 메뉴 숨김
- 공통 헤더 및 인증 시스템 구현
- 프로젝트별 일일공수 분리 기능 추가 (ProjectDailyWork 모델)
- IssuesAPI에서 project_id 누락 문제 수정
- 사용자 인증 통합 (TokenManager 기반)
제거된 파일들:
- migrate-data.html - 데이터 마이그레이션 도구 (완료됨)
- debug-data.html - 디버깅 도구 (완료됨)
- fix-api-data.html - API 데이터 수정 도구 (완료됨)
- fix-project-id.html - 프로젝트 ID 수정 도구 (완료됨)
- create-project-api.html - 프로젝트 API 생성 도구 (완료됨)
- chart.html - 구 버전 차트 페이지 (사용 안함)
- 루트 디렉토리 중복 파일들 (index.html, daily-work.html)
코드 정리:
- 디버깅용 console.log 제거
- 이미지 압축 로그 정리
- 필터링 디버깅 로그 정리
서비스 배포 준비를 위한 클린업 작업
- 사용자 목록 로드를 localStorage에서 AuthAPI.getUsers()로 변경
- 비밀번호 초기화를 localStorage 조작에서 AuthAPI.resetPassword()로 변경
- 사용자 삭제 기능 백엔드 API 연동 확인
- 사용자 추가/목록/삭제 모든 기능이 백엔드 DB와 동기화됨
- localStorage 하드코딩 문제 해결로 일관된 데이터 관리 구현
Fixes:
- 사용자 추가 후 목록에 표시되지 않던 문제
- 비밀번호 초기화가 실제 DB에 반영되지 않던 문제
- 백엔드 API와 localStorage 간 데이터 불일치 문제
- 목록 관리 페이지에 고급 필터링 시스템 추가
- 프로젝트별, 검토상태별, 날짜별 필터링
- 검토 완료/필요 항목 시각적 구분 및 정렬
- 해결 시간 입력 + 확인 버튼으로 검토 완료 처리
- 부적합 조회 페이지에 동일한 필터링 기능 적용
- 검토 상태에 따른 카드 스타일링 (음영 처리)
- JavaScript 템플릿 리터럴 오류 수정
- 보고서 페이지 프로젝트별 분석 기능 추가
- 프로젝트 선택 드롭다운 추가
- 총 작업 공수를 프로젝트별 일일공수 데이터로 계산
- 부적합 처리 시간, 카테고리 분석, 상세 목록 모두 프로젝트별 필터링
- localStorage 키 이름 통일 (daily-work-data)
- 사진 2장까지 업로드 지원
- 카메라 촬영 + 갤러리 선택 분리
- 이미지 압축 및 최적화 (ImageUtils)
- iPhone .mpo 파일 JPEG 변환 지원
- 카테고리 변경: 치수불량 → 설계미스, 검사미스 추가
- KST 시간대 설정
- URL 해시 처리로 목록관리 페이지 이동 개선
- 로그인 OAuth2 form-data 형식 수정
- 업로드 속도 개선 및 프로그레스바 추가
- 관리자 전용 사용자 관리 페이지 추가
- 사용자 추가/삭제 기능 (한글 ID 지원)
- 비밀번호 변경 기능
- 권한별 메뉴 접근 제한
- 관리자: 모든 메뉴 접근 가능
- 일반 사용자: 일일공수, 부적합등록/조회만 가능
- 이미지 없이 부적합 등록 가능
- 목록 관리에서 이미지 수정 기능
- 작업 시간 확인 버튼 개선
- 부적합 조회 페이지 간소화 (시간순 나열)
- 일일 공수 입력 기능
- 부적합 사항 등록 (이미지 선택사항)
- 날짜별 부적합 조회 (시간순 나열)
- 목록 관리 (인라인 편집, 작업시간 확인 버튼)
- 보고서 생성 (총 공수/부적합 시간 분리)
- JWT 인증 및 권한 관리
- Docker 기반 배포 환경 구성