Commit Graph

18 Commits

Author SHA1 Message Date
Hyungi Ahn
58156da987 🐛 Fix: Project.name → project_name 속성명 수정 및 보고서 시스템 안정화
- backend/routers/reports.py: project.name을 project.project_name으로 수정 (3곳)
- 일일보고서 엑셀 내보내기 오류 해결
- 배포 가이드 업데이트 (DEPLOYMENT_GUIDE_20251028.md)
- 프로젝트 속성명 불일치로 인한 500 에러 해결

Fixes: 'Project' object has no attribute 'name' 오류
2025-10-28 16:36:56 +09:00
hyungi
c16fc53f3b feat: 프로젝트 관리 및 비밀번호 변경 기능 개선
주요 변경사항:
- 비활성화된 프로젝트 관리 기능 추가
  * 프로젝트 관리 페이지에 접을 수 있는 비활성 프로젝트 섹션 추가
  * 비활성화된 프로젝트 복구 기능 제공
  * 업로드 시에는 활성 프로젝트만 표시되도록 API 호출 분리

- 헤더 비밀번호 변경 기능 완전 구현
  * CommonHeader.js에 완전한 비밀번호 변경 모달 구현
  * ESC 키 지원, 실시간 유효성 검사, 토스트 메시지 추가
  * 중복 코드 제거 및 통일된 함수 호출 구조

- 수신함 수정 내용 표시 문제 해결
  * description 우선 표시로 최신 수정 내용 반영
  * 관리함에서 final_description/final_category 업데이트 로직 추가

- 현황판 날짜 그룹화 개선
  * 업로드일 기준에서 관리함 진입일(reviewed_at) 기준으로 변경
  * Invalid Date 오류 해결

- 프로젝트 관리 페이지 JavaScript 오류 수정
  * 중복 변수 선언 및 함수 참조 오류 해결
  * 페이지 초기화 로직 개선

기술적 개선:
- API 호출 최적화 (active_only 매개변수 명시적 전달)
- 프론트엔드 표시 우선순위 통일 (description || final_description)
- 백엔드 final_* 필드 업데이트 로직 추가
2025-10-26 15:28:23 +09:00
Hyungi Ahn
6654cf62bd feat: 부적합명과 상세 내용 분리 시스템 구현
🎯 부적합 정보 구조화 개선:

📝 수신함 검토 모달 개선:
- '설명' → '부적합명' + '상세 내용'으로 분리
- 부적합명: 간단한 제목 (필수 입력)
- 상세 내용: 자세한 설명 (선택 입력)
- 저장 시 첫 번째 줄에 제목, 나머지는 상세 내용으로 결합

🏢 관리함 진행중 페이지 개선:
- No. 옆에 프로젝트명 표시 (작은 글씨)
- 부적합명을 카드 헤더에 큰 제목으로 표시
- '부적합 내용' → '상세 내용'으로 변경
- getIssueTitle(), getIssueDetail() 헬퍼 함수 추가

📊 현황판 페이지 개선:
- No. 옆에 프로젝트명과 카테고리 태그 표시
- 부적합명을 카드 헤더에 제목으로 표시
- '부적합 내용' → '상세 내용'으로 변경
- 동일한 헬퍼 함수로 일관성 유지

💡 핵심 개선사항:
- 정보 계층 구조 명확화 (제목 vs 상세)
- 시각적 가독성 향상 (헤더에 중요 정보 집중)
- 일관된 표시 방식 (수신함 → 관리함 → 현황판)
- 기존 데이터 호환성 유지

🔧 기술적 구현:
- 첫 번째 줄을 제목으로 추출
- 두 번째 줄부터를 상세 내용으로 분리
- 기존 description 필드 활용 (DB 변경 없음)
- 폴백 처리로 안정성 확보

Expected Result:
 부적합 정보의 체계적 관리
 한눈에 파악 가능한 제목 표시
 상세 내용과 요약 정보 분리
 전체 워크플로우 일관성 향상
2025-10-26 11:48:47 +09:00
Hyungi Ahn
f7bdbf522f refactor: 수신함 상태 결정 모달에서 불필요한 처리 메모 필드 제거
🗑️ Remove Unnecessary Field:
- 처리 메모 (statusNotes) 필드 제거
- 완료됨 선택 시 해결방안 필드가 있어 중복 불필요
- 진행 중 선택 시 별도 메모 불필요

🎨 UI Simplification:
- 모달 UI에서 처리 메모 텍스트 영역 제거
- 더 깔끔하고 집중된 사용자 인터페이스
- 필수 정보에만 집중할 수 있도록 개선

🔧 Backend Cleanup:
- IssueStatusUpdateRequest에서 notes 필드 제거
- API 엔드포인트에서 notes 처리 로직 제거
- 불필요한 detail_notes 업데이트 로직 제거

💡 User Experience:
- 더 간단하고 직관적인 상태 변경 프로세스
- 완료 시에는 해결방안으로 충분한 정보 제공
- 진행 중 시에는 바로 처리 가능

Expected Result:
 처리 메모 필드 완전 제거
 더 간결한 상태 결정 모달
 중복 기능 제거로 사용자 혼란 방지
 핵심 기능에 집중된 워크플로우
2025-10-25 14:29:17 +09:00
Hyungi Ahn
b4a0bc19d3 feat: 수신함 상태 결정 모달 개선 - 완료 시 추가 정보 입력 기능
🔄 Status Modal Improvements:
- 진행 중 / 완료됨 2개 옵션으로 단순화
- 진행 중 선택 시 바로 관리함으로 이동
- 완료됨 선택 시 추가 정보 입력 섹션 표시

📝 Completion Information Fields:
- 완료 사진 업로드 (1장, 선택사항)
- 해결방안 입력 (어떻게 해결했는지)
- 해결한 부서 선택 (담당부서)
- 해결한 사람 입력 (담당자)
- 모든 필드는 선택사항으로 관리함에서 나중에 입력 가능

🎨 Frontend Implementation:
- completionSection으로 통합된 완료 관련 UI
- 상태 선택에 따른 동적 섹션 표시/숨김
- 부서 선택 드롭다운 (생산, 품질, 구매, 설계, 영업)
- 직관적인 아이콘과 색상으로 필드 구분
- 사용자 안내 메시지로 UX 개선

🔧 Backend API Updates:
- IssueStatusUpdateRequest에 solution, responsible_department, responsible_person 필드 추가
- update_issue_status API에서 완료 상태 시 추가 필드 처리
- 해결방안, 담당부서, 담당자 정보 자동 저장

🚀 User Experience:
- 진행 중: 클릭 한 번으로 바로 관리함 이동
- 완료됨: 필요한 정보를 한 번에 입력하고 완료 처리
- 선택사항 필드로 유연한 워크플로우 지원
- 관리함에서 나중에 추가/수정 가능한 구조

💡 Workflow Optimization:
- 수신함에서 완료 처리 시 필요한 정보를 미리 입력
- 관리함 작업량 감소 및 효율성 향상
- 완료 확인일 자동 기록으로 추적 개선

Expected Result:
 진행 중 선택 시 바로 관리함 이동
 완료됨 선택 시 해결방안, 담당부서, 담당자 입력 가능
 완료 사진과 함께 종합적인 완료 정보 수집
 선택사항 필드로 유연한 사용 가능
 관리함에서 추가 편집 가능한 구조
2025-10-25 14:27:36 +09:00
Hyungi Ahn
d77a71493a feat: 수신함 완료 사진 업로드 및 최종 부적합 사항 DB 구조 구현
📸 Completion Photo Upload:
- 수신함에서 '완료됨' 상태 선택 시 완료 사진 업로드 기능 추가 (1장 제한)
- Base64 인코딩으로 사진 업로드 및 미리보기 기능
- 완료 상태 변경 시 actual_completion_date 자동 설정

🗄️ Final Issue DB Structure:
- 최종 부적합 사항을 위한 포괄적인 DB 스키마 설계 및 구현
- 프로젝트별 순번 (project_sequence_no) 자동 생성 시스템

📋 New Database Fields:
- completion_photo_path: 완료 사진 경로
- solution: 해결방안 (관리함에서 입력)
- responsible_department: 담당부서 (department_type ENUM)
- responsible_person: 담당자 (VARCHAR 100)
- expected_completion_date: 조치 예상일 (DATE)
- actual_completion_date: 완료 확인일 (DATE, 자동 설정)
- cause_department: 원인부서 (department_type ENUM)
- management_comment: ISSUE에 대한 의견 (TEXT)
- final_description: 최종 내용 (수정본 또는 원본)
- final_category: 최종 카테고리 (수정본 또는 원본)

🔧 Backend Implementation:
- Issue 모델에 11개 새 필드 추가
- IssueStatusUpdateRequest에 completion_photo 필드 추가
- ManagementUpdateRequest 스키마 신규 생성
- update_issue_status API에 완료 사진 처리 로직 추가
- generate_project_sequence_no() 함수로 프로젝트별 순번 자동 생성

🎨 Frontend Implementation:
- 상태 결정 모달에 완료 사진 업로드 섹션 추가
- 완료 상태 선택 시에만 사진 업로드 UI 표시
- 파일 크기 제한 (5MB), 이미지 파일 검증
- 사진 미리보기 및 Base64 변환 처리
- 완료 사진 없이 완료 처리 시 확인 다이얼로그

🚀 User Experience:
- 직관적인 완료 사진 업로드 워크플로우
- 실시간 사진 미리보기로 업로드 확인 가능
- 완료 처리 시 자동으로 완료 확인일 기록
- 프로젝트별 순번으로 체계적인 이슈 관리

🔍 Database Migration:
- 016_add_management_fields.sql 마이그레이션 성공적으로 실행
- 멱등성 보장 및 기존 데이터 보존
- 인덱스 최적화 (project_sequence, responsible_department, expected_completion)
- 기존 이슈들의 final_description/final_category 자동 초기화

Expected Result:
 수신함에서 완료 상태 선택 시 완료 사진 업로드 가능
 완료 처리 시 완료 확인일 자동 기록
 프로젝트별 순번으로 체계적인 이슈 번호 관리
 관리함에서 사용할 모든 필드 준비 완료
 최종 부적합 사항 리포트 생성을 위한 DB 구조 완성
2025-10-25 14:18:24 +09:00
Hyungi Ahn
8996f5b432 feat: 모든 페이지에서 최신순 정렬 적용
📅 Sorting Order Improvements:
- 모든 이슈 목록에서 최신 항목이 위로 오도록 정렬 순서 통일
- report_date 기준 내림차순(DESC) 정렬로 일관성 확보

🔧 Backend API Updates:
- GET /api/issues/: order_by(Issue.report_date.desc()) 추가
- GET /api/issues/admin/all: order_by(Issue.report_date.desc()) 추가
- GET /api/reports/issues: order_by(Issue.report_date.desc()) 변경

🎨 Frontend Sorting Updates:
- issues-inbox.html: created_at → report_date 기준 정렬
- issues-management.html: created_at → report_date 기준 정렬
- issues-archive.html: updated_at/created_at → report_date 기준 정렬
- 폐기함 'completed' 정렬: disposed_at 우선, 없으면 report_date 사용

📋 Consistency Improvements:
- 수신함, 관리함, 폐기함 모든 페이지에서 동일한 정렬 기준 적용
- 백엔드 API와 프론트엔드 정렬 로직 일치
- 사용자 경험 향상: 최신 이슈를 먼저 확인 가능

🚀 User Experience:
- 최신 부적합 사항을 즉시 확인 가능
- 시간순 정렬로 업무 우선순위 파악 용이
- 일관된 정렬 순서로 사용자 혼란 방지

Expected Result:
 모든 이슈 목록에서 최신 항목이 맨 위에 표시
 백엔드 API와 프론트엔드 정렬 로직 일치
 수신함/관리함/폐기함 정렬 순서 통일
 사용자가 최신 이슈를 우선적으로 확인 가능
2025-10-25 14:01:44 +09:00
Hyungi Ahn
f6ed6bd574 feat: 중복 신고 추적 시스템 구현 - 신고자 인지도 및 대응 속도 분석
🔄 Duplicate Tracking System:
- 중복 신고 시 원본 이슈에 신고자 정보 자동 추가
- 신고 인지도 및 대응 속도 분석을 위한 데이터 수집
- 뒷북치는 신고자 파악 및 집계 기능

📊 Database Schema Updates:
- duplicate_of_issue_id: 중복 대상 이슈 ID (FK)
- duplicate_reporters: 중복 신고자 목록 (JSONB 배열)
- 015_add_duplicate_tracking.sql 마이그레이션 실행
- GIN 인덱스로 JSONB 검색 성능 최적화

🔧 Backend Enhancements:
- 중복 폐기 시 대상 이슈에 신고자 정보 자동 추가
- 신고자 중복 체크 로직 (동일 사용자 재추가 방지)
- /api/inbox/management-issues API 추가 (중복 선택용)
- 프로젝트별 관리함 이슈 목록 조회 지원

🎨 Frontend UI Improvements:
- 중복 선택 시 관리함 이슈 목록 표시
- 프로젝트별 필터링된 이슈 목록 제공
- 간단한 이슈 정보 표시 (제목, 카테고리, 신고자, 중복 건수)
- 직관적인 선택 UI (클릭으로 선택, 시각적 피드백)

📋 Duplicate Selection Process:
1. 폐기 사유로 '중복' 선택
2. 동일 프로젝트의 관리함 이슈 목록 자동 로드
3. 중복 대상 이슈 선택 (필수)
4. 확인 시 신고자 정보가 원본 이슈에 추가

💾 Data Structure:
- duplicate_reporters: [
    {
      user_id: 123,
      username: 'reporter1',
      full_name: '신고자1',
      report_date: '2024-10-25T14:30:00',
      added_at: '2024-10-25T15:00:00'
    }
  ]

🔍 Analytics Features:
- 중복 신고 건수 표시
- 신고자별 신고 시점 추적
- 원본 이슈 대비 지연 신고 분석 가능
- 부서별/사용자별 인지도 분석 데이터 제공

🚀 User Experience:
- 중복 처리 시 명확한 안내 메시지
- 관리함 이슈 목록 실시간 로드
- 선택 필수 검증 (중복 대상 미선택 시 경고)
- 처리 완료 후 자동 목록 새로고침

Expected Result:
 중복 신고 시 신고자 정보 자동 추적
 신고 인지도 및 대응 속도 분석 데이터 수집
 직관적인 중복 대상 선택 UI
 부서별/개인별 신고 패턴 분석 기반 마련
2025-10-25 13:48:21 +09:00
Hyungi Ahn
7018d381b5 feat: 수신함에 사진 미리보기 및 확대 기능 추가 + 대시보드 3개 카드로 간소화
🖼️ Photo Preview & Modal Features:
- 수신함 카드에 사진 썸네일 표시 (150x100px)
- photo_path, photo_path2 모두 지원 (최대 2장)
- 클릭 시 전체화면 모달로 원본 사진 확대
- 호버 효과: 1.05배 확대 애니메이션

🔍 Enhanced Photo Viewing:
- 어두운 배경 (80% 투명도) 모달
- 원본 사진을 90% 크기로 표시
- ESC 키 또는 배경 클릭으로 모달 닫기
- 우상단 X 버튼으로 닫기

📊 Dashboard Simplification:
- 4개 카드 → 3개 카드로 간소화
- '전체' 카드 제거, 핵심 지표만 유지
- 금일 신규, 금일 처리, 미해결만 표시
- grid-cols-4 → grid-cols-3 레이아웃 변경

🎨 Visual Improvements:
- 사진 갤러리 레이아웃 (flex, gap: 8px)
- 반응형 사진 표시 (object-fit: cover)
- 부드러운 트랜지션 효과
- 모바일 친화적 사진 크기

🔧 Code Enhancements:
- openPhotoModal(), closePhotoModal() 함수
- handleEscKey() 키보드 이벤트 처리
- 사진 경로 검증 및 오류 처리
- 통계 함수에서 totalCount 관련 코드 정리

🚀 User Experience:
- 직관적인 사진 확인 방식
- 빠른 사진 미리보기
- 키보드 단축키 지원 (ESC)
- 터치 친화적 인터페이스

Expected Result:
 수신함에서 바로 사진 확인 가능
 클릭 한 번으로 사진 확대 보기
 간소화된 3개 핵심 통계 카드
 향상된 시각적 정보 제공
2025-10-25 13:21:59 +09:00
Hyungi Ahn
968afd95a6 fix: 모든 시간 처리를 한국 시간(KST) 기준으로 변경
🇰🇷 Korean Standard Time (KST) Implementation:
- UTC+9 시간대로 모든 시간 처리 통일
- 서버와 클라이언트 간 시간 기준 일치

🕐 KST Utility Functions:
- getKSTDate(): UTC → KST 변환 함수
- formatKSTDate(): KST 기준 날짜 포맷팅 (2024. 10. 25.)
- formatKSTTime(): KST 기준 시간 포맷팅 (14:30)
- getKSTToday(): KST 기준 오늘 날짜 반환

 Time Display Improvements:
- 업로드 시간: KST 기준 날짜 + 시간 표시
- 상대 시간: '2시간 전' 등도 KST 기준으로 계산
- getTimeAgo(): KST 기준 시간 차이 계산

📊 Statistics Calculation (KST-based):
- 금일 신규: KST 기준 오늘 00:00 이후 등록
- 미해결: KST 기준 오늘 이전 등록된 건
- 통계 로그에 KST 기준 날짜 정보 포함

🔧 Technical Implementation:
- timeZone: 'Asia/Seoul' 명시적 설정
- UTC + 9시간 오프셋 계산
- 모든 날짜 비교를 KST 기준으로 통일

🌏 Timezone Consistency:
- 서버 KST ↔ 클라이언트 KST 일치
- 사용자 위치와 관계없이 한국 시간 기준
- 통계 및 필터링 정확성 향상

Expected Result:
 모든 시간이 한국 시간(KST) 기준으로 표시
 오늘/어제 구분이 한국 시간 기준으로 정확히 작동
 서버와 클라이언트 시간 기준 일치
 사용자 위치와 무관한 일관된 시간 표시
2025-10-25 13:14:35 +09:00
Hyungi Ahn
73240d425a feat: 수신함 상세 정보 표시 개선 및 읽음 처리 기능 제거
📋 Enhanced Information Display:
- 업로드 시간 상세 표시 (날짜 + 시간)
- 사진 정보 개선 (사진 개수 표시: '사진 2장', '사진 없음')
- 신고 ID 표시로 식별성 향상
- 공수 정보 및 상세 메모 표시
- 4개 정보 그리드 레이아웃 (신고자, 카테고리, 사진, 시간)

🎨 Visual Improvements:
- 색상별 아이콘으로 정보 구분 (👤🏷️📷)
- 중요 정보 강조 표시 (굵은 글씨)
- 업로드 정보 배경 구분 (회색 배경)
- 좌측 파란색 테두리로 카드 구분
- 호버 효과 및 클릭 가능한 제목

🗑️ Removed Read Status Features:
- 읽음 상태 변수 및 Set 제거
- 읽음 처리 버튼 완전 제거
- 모두 읽음 처리 버튼 제거
- localStorage 읽음 상태 로직 제거
- 읽음/안읽음 구분 UI 제거

📊 New Dashboard Statistics:
- 전체: 수신함에 남아있는 목록 개수
- 금일 신규: 오늘 올라온 목록 숫자 (확인된 것 포함)
- 금일 처리: 오늘 처리된 건수
- 미해결: 오늘꺼 제외한 남아있는 것들

🔧 Code Improvements:
- 통계 계산 로직 개선 (클라이언트 기반)
- 날짜/시간 처리 개선
- 사진 개수 동적 계산
- 불필요한 읽음 상태 관련 코드 정리

Expected Result:
 더 상세하고 유용한 정보 표시
 깔끔하고 직관적인 카드 레이아웃
 불필요한 읽음 처리 기능 제거로 단순화
 새로운 기준의 의미있는 통계 제공
2025-10-25 13:11:29 +09:00
Hyungi Ahn
aacf05d05c feat: 수신함 UI 간소화 및 용어 개선 - 프로젝트 필터만 유지
🎯 UI Simplification:
- 필터링 간소화: 4개 필터 → 1개 (프로젝트만)
- 레이아웃 최적화: grid-cols-4 → max-w-md
- 불필요한 상태/읽음상태/검색 필터 제거

📝 Terminology Improvements:
- '부적합 목록' → '신고 목록'
- '새로 등록된 부적합 사항' → '새로 등록된 신고 사항'
- '새로운 부적합이 등록되면' → '새로운 신고가 등록되면'
- 함수 주석: '부적합 필터링/정렬' → '신고 필터링/정렬'

 Code Optimization:
- filterIssues() 함수 간소화
- 불필요한 DOM 요소 및 이벤트 핸들러 제거
- 프로젝트 필드명 수정: project.name → project.project_name

🎨 Enhanced UX:
- 깔끔하고 직관적인 필터 인터페이스
- 사용자 친화적인 용어 사용
- 집중도 높은 단순한 레이아웃

🔧 Fixed Issues:
- 프로젝트 정보 표시 오류 해결 (필드명 불일치)
- 관리함/폐기함 페이지도 동일 오류 수정
- 프로젝트 로딩 디버깅 로그 추가

Expected Result:
 간결하고 사용하기 쉬운 수신함 인터페이스
 올바른 프로젝트 정보 표시
 일관성 있는 용어 사용으로 사용자 혼란 방지
2025-10-25 13:01:31 +09:00
Hyungi Ahn
7b9dfddec3 fix: 모든 페이지 상단 패딩 통일 및 최적화 - 헤더 간격 개선
🎯 Issue: 수신함 페이지 헤더 간격 과도하게 넓음 + 페이지별 불일치
- 수신함, 관리자: padding-top 120px (너무 넓음)
- 부적합 조회, 일일공수, 프로젝트 관리: 상단 패딩 없음 (헤더 겹침 위험)

🔧 Solution: 모든 페이지 padding-top 80px로 통일

📱 Updated Pages:
 issues-inbox.html: 120px → 80px
 issue-view.html: 없음 → 80px
 daily-work.html: 없음 → 80px
 project-management.html: 없음 → 80px
 admin.html: 120px → 80px
 index.html (목록관리): 120px → 80px
 index.html (보고서): 120px → 80px
 issues-archive.html: 120px → 80px
 issues-management.html: 120px → 80px

🎨 Layout Improvements:
- 헤더와 본문 사이 최적 간격 확보
- 모든 페이지 일관성 있는 레이아웃
- 공간 효율성 향상 (불필요한 여백 제거)
- 시각적 균형감 개선

🎯 UX Benefits:
- 통일된 페이지 간격으로 일관성 있는 경험
- 적절한 헤더 간격으로 가독성 향상
- 공간 활용도 증대로 콘텐츠 집중도 향상
- 모바일/데스크톱 모든 환경에서 최적화

Expected Result:
 모든 페이지에서 동일한 헤더 간격
 헤더와 본문 사이 최적 거리 확보
 일관성 있는 레이아웃 경험
 공간 효율성 및 가독성 향상
2025-10-25 12:55:32 +09:00
Hyungi Ahn
57b41a9e5e feat: 모든 페이지에 부드러운 단계적 로딩 애니메이션 적용 완료
🎨 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:
 모든 페이지에서 동일한 부드러운 로딩 경험
 헤더 우선 표시로 즉시 네비게이션 가능
 통일된 브랜드 경험 및 사용자 만족도 증대
 성능 최적화와 시각적 완성도 양립
2025-10-25 12:52:27 +09:00
Hyungi Ahn
d9cf2d54e3 fix: 수신함 '승인' 버튼을 '확인'으로 변경
🎨 UX Improvement:
- 워크플로우 버튼 텍스트 개선: '승인' → '확인'
- 더 친근하고 자연스러운 표현으로 변경
- 사용자 경험 개선

Before: [🗑️ 폐기] [📝 검토] [ 승인]
After:  [🗑️ 폐기] [📝 검토] [ 확인]

Result:
 더 자연스러운 워크플로우 버튼 텍스트
 사용자 친화적인 인터페이스
2025-10-25 12:22:29 +09:00
Hyungi Ahn
017bbb44f3 fix: 수신함 로그인 튕김 문제 해결 - 강화된 디버깅 및 에러 처리
🔧 Root Cause Analysis:
- 수신함 페이지에서 3가지 경우에 로그인 화면으로 리다이렉트:
  1. 토큰 없음 (정상)
  2. 페이지 접근 권한 없음 (과도한 체크)
  3. API 호출 실패 (과도한 에러 처리)

🎯 Key Fixes:
- updateStatistics() → loadStatistics() 함수명 불일치 해결
- 과도한 에러 처리 개선: 401 에러만 로그아웃, 나머지는 경고 후 계속
- 권한 체크 로직에 상세 디버깅 로그 추가
- 초기화 과정 전체에 단계별 로그 추가

🔍 Enhanced Debugging:
- 🚀 수신함 초기화 시작
- 📡 사용자 정보 API 호출 시작
- 🔐 수신함 페이지 접근 권한 체크 시작
- / 각 단계별 성공/실패 로그
- ⚠️ 비정상 상황 감지 및 대응

🛡️ Improved Error Handling:
- 401/Unauthorized 에러: 로그아웃 처리 (기존)
- 기타 에러: 사용자 알림 + 빈 상태로 계속 진행 (신규)
- 공통 헤더 fallback 초기화 (localStorage 기반)
- 권한 함수 미로드 시 스킵 처리

🎯 Expected Result:
- 실제 인증 문제만 로그인 화면으로 이동
- 네트워크/데이터 로드 실패는 경고 후 계속 사용 가능
- 상세한 로그로 정확한 원인 파악 가능
- 사용자 경험 대폭 개선
2025-10-25 12:19:14 +09:00
Hyungi Ahn
c3383a1154 feat: 수신함 프론트엔드 완전 구현 - 실제 API 연동
🎨 UI Components:
- 3개 워크플로우 모달 추가:
  * 폐기 모달: 사유 선택 (중복/무효신고/해당없음/스팸/직접입력)
  * 검토 모달: 프로젝트/카테고리/설명 수정 + 원본 정보 표시
  * 상태 모달: 진행중/완료 선택 + 처리 메모

- 부적합 카드 UI 개선:
  * 워크플로우 액션 버튼 (폐기/검토/승인)
  * 읽음/안읽음 상태 표시
  * 사진 첨부 여부 표시
  * 클릭 가능한 제목 (상세보기)

🔌 API Integration:
- 실제 백엔드 API 완전 연동:
  * GET /api/inbox/ - 수신함 목록 (프로젝트 필터링)
  * GET /api/inbox/statistics - 실시간 통계
  * POST /api/inbox/{id}/dispose - 폐기 처리
  * POST /api/inbox/{id}/review - 검토/수정
  * POST /api/inbox/{id}/status - 상태 변경

- 에러 처리 및 사용자 피드백:
  * API 오류 시 적절한 메시지 표시
  * 성공 시 결과 안내 및 목록 자동 새로고침
  * 입력 검증 (필수값, 사용자 정의 사유 등)

🎯 Workflow Logic:
- 폐기 처리:
  * 5가지 사유 선택 (기본값: 중복)
  * 사용자 정의 사유 입력 검증
  * 폐기 후 폐기함으로 이동

- 검토/수정:
  * 원본 정보 보존 및 표시
  * 프로젝트/카테고리/설명 수정 가능
  * 수정 이력 자동 추적

- 상태 결정:
  * 진행중/완료 선택
  * 처리 메모 추가 가능
  * 관리함으로 자동 이동

📊 Real-time Features:
- 실시간 통계 업데이트
- 읽음 상태 로컬 저장 (inbox_read_status)
- 프로젝트별 필터링
- 자동 목록 새로고침

🎨 UX Improvements:
- 모달 기반 워크플로우 (직관적)
- 원본 정보 표시 (수정 전후 비교)
- 적절한 로딩 상태 표시
- 사용자 친화적 에러 메시지
- 액션 버튼 색상 구분 (빨강/파랑/초록)

Result:
 수신함 워크플로우 프론트엔드 100% 완성
 백엔드 API와 완벽 연동
 실시간 데이터 동기화
 사용자 친화적 UI/UX
 모든 워크플로우 액션 구현
2025-10-25 12:11:26 +09:00
Hyungi Ahn
d456ad1e15 feat: 목록 관리 3개 하위 페이지 실제 파일 생성
수신함, 관리함, 폐기함 페이지를 실제로 구현하여 완전한 목록 관리 시스템 완성

Pages Created:
- issues-inbox.html: 수신함 페이지
  * 새로 등록된 부적합 확인
  * 읽음/안읽음 상태 관리
  * 실시간 통계 대시보드
  * 필터링 및 정렬 기능

- issues-management.html: 관리함 페이지
  * 부적합 상태 변경 및 처리
  * 일괄 처리 기능
  * 담당자 배정 (향후 구현)
  * 우선순위 관리

- issues-archive.html: 폐기함 페이지
  * 완료/폐기된 부적합 보관
  * 통계 차트 및 분석
  * 기간별 필터링
  * 데이터 내보내기 기능

Common Features:
- 공통 헤더 및 권한 시스템 통합
- 반응형 모바일 최적화 디자인
- 실시간 데이터 로딩 및 필터링
- 프로젝트별 분류 및 검색
- 사용자 친화적 UI/UX

Technical:
- 각 페이지별 고유한 기능과 UI
- 권한 기반 접근 제어
- API 연동 및 에러 처리
- 로컬 스토리지 활용 (읽음 상태 등)
- 성능 최적화된 렌더링
2025-10-25 09:47:44 +09:00