Commit Graph

9 Commits

Author SHA1 Message Date
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
236e1ca493 feat: 사용자 관리에 부서 정보 추가 및 편집 기능 구현
🏢 Department Management System:
- 5개 부서 지원: 생산, 품질, 구매, 설계, 영업
- 사용자 생성/수정 시 부서 선택 가능
- 부서별 사용자 분류 및 표시

📊 Database Schema Updates:
- department_type ENUM 추가 (production, quality, purchasing, design, sales)
- users 테이블에 department 컬럼 추가
- idx_users_department 인덱스 생성 (성능 최적화)
- 014_add_user_department.sql 마이그레이션 실행

🔧 Backend Enhancements:
- DepartmentType ENUM 클래스 추가 (models.py, schemas.py)
- User 모델에 department 필드 추가
- UserBase, UserUpdate 스키마에 department 필드 포함
- 기존 API 엔드포인트 자동 호환

🎨 Frontend UI Improvements:
- 사용자 추가 폼에 부서 선택 드롭다운 추가
- 사용자 목록에 부서 정보 배지 표시 (녹색 배경)
- 사용자 편집 모달 새로 구현
- 부서명 한글 변환 함수 (AuthAPI.getDepartmentLabel)

 User Management Features:
- 편집 버튼으로 사용자 정보 수정 가능
- 부서, 이름, 권한 실시간 변경
- 사용자 ID는 수정 불가 (읽기 전용)
- 모달 기반 직관적 UI

🔍 Visual Enhancements:
- 부서 정보 아이콘 (fas fa-building)
- 색상 코딩: 부서(녹색), 권한(빨강/파랑)
- 반응형 레이아웃 (flex-1, gap-3)
- 호버 효과 및 트랜지션

🚀 API Integration:
- AuthAPI.getDepartments() - 부서 목록 반환
- AuthAPI.getDepartmentLabel() - 부서명 변환
- AuthAPI.updateUser() - 부서 정보 포함 업데이트
- 기존 createUser API 확장 지원

Expected Result:
 사용자 생성 시 부서 선택 가능
 사용자 목록에 부서 정보 표시
 편집 버튼으로 부서 변경 가능
 5개 부서 분류 시스템 완성
 직관적인 사용자 관리 UI
2025-10-25 13:29:47 +09:00
Hyungi Ahn
3cf485f3f2 feat: 수신함 워크플로우 백엔드 완전 구현
🔧 Models & Schemas:
- 새로운 ENUM 클래스 추가:
  * ReviewStatus: pending_review, in_progress, completed, disposed
  * DisposalReasonType: duplicate, invalid_report, not_applicable, spam, custom

- Issue 모델 확장 (8개 새 필드):
  * review_status: 수신함 워크플로우 상태 (기본값: pending_review)
  * disposal_reason: 폐기 사유 ENUM
  * custom_disposal_reason: 사용자 정의 폐기 사유
  * disposed_at: 폐기 처리 시간
  * reviewed_by_id: 검토자 FK (users.id)
  * reviewed_at: 검토 완료 시간
  * original_data: 원본 데이터 보존 (JSONB)
  * modification_log: 수정 이력 추적 (JSONB)

- User 모델 관계 수정:
  * issues: 신고한 부적합 (foreign_keys 명시)
  * reviewed_issues: 검토한 부적합 (새로 추가)

🎯 Pydantic Schemas:
- 기존 Issue 스키마에 워크플로우 필드 추가
- 수신함 전용 스키마들:
  * IssueDisposalRequest: 폐기 요청
  * IssueReviewRequest: 검토/수정 요청
  * IssueStatusUpdateRequest: 상태 변경 요청
  * InboxIssue: 수신함용 간소화 모델
  * ModificationLogEntry: 수정 이력 항목

🚀 API Endpoints (/api/inbox):
- GET /: 수신함 부적합 목록 (프로젝트 필터링, 페이징)
- POST /{id}/dispose: 부적합 폐기 처리 (관리자 전용)
- POST /{id}/review: 부적합 검토/수정 (관리자 전용)
- POST /{id}/status: 최종 상태 결정 (관리자 전용)
- GET /{id}/history: 수정 이력 조회
- GET /statistics: 수신함 통계

🔒 Security & Validation:
- 관리자 전용 액션 (폐기, 검토, 상태변경)
- 사용자 정의 폐기 사유 검증
- 프로젝트 존재 여부 확인
- 상태 변경 로직 검증

📊 Data Preservation:
- 원본 데이터 자동 보존 (최초 1회)
- 모든 수정사항 이력 추적
- 검토자 및 시간 기록
- 폐기 사유 및 시간 기록

🎯 Workflow Logic:
업로드(pending_review) → 수신함 검토 → [폐기→폐기함] or [승인→관리함]
- 폐기: disposed 상태, 폐기함으로
- 승인: in_progress/completed 상태, 관리함으로
- 모든 변경사항 추적 및 보존

Result:
 수신함 워크플로우 백엔드 100% 완성
 DB 스키마와 완벽 동기화
 데이터 무결성 및 추적성 보장
 RESTful API 설계 준수
 관리자 권한 기반 보안 적용
2025-10-25 12:08:14 +09:00
Hyungi Ahn
b68bf78e40 feat: 사용자별 페이지 접근 권한 시스템 구현
- 기존 4단계 권한을 admin/user 2단계로 단순화
- 페이지별 세부 접근 권한 관리 시스템 추가
- 부적합 조회 시 일반 사용자는 본인 등록 건만 조회 가능하도록 제한
- 관리자 전용 전체 부적합 조회 API 추가 (/api/issues/admin/all)

Backend Changes:
- models.py: UserPagePermission 모델 추가, UserRole 단순화
- page_permissions.py: 페이지 권한 관리 API 라우터 추가
- auth.py: 사용자 목록 조회 및 비밀번호 초기화 API 추가
- issues.py: 권한별 부적합 조회 제한 로직 구현
- 마이그레이션: 010~012 권한 시스템 관련 DB 스키마 변경
2025-10-25 08:59:52 +09:00
hyungi
41b557a709 Fix: 페이지 간 이동 시 로그아웃 문제 해결 및 기능 개선
- 토큰 저장 키 통일 (access_token으로 일관성 확보)
- 일일공수 페이지 API 스크립트 로딩 순서 수정
- 프로젝트 관리 페이지 비활성 프로젝트 표시 문제 해결
- 업로드 카테고리에 '기타' 항목 추가 (백엔드 schemas.py 포함)
- 비밀번호 변경 기능 API 연동으로 수정
- 프로젝트 드롭다운 z-index 문제 해결
- CORS 설정 및 Nginx 구성 개선
- 비밀번호 해싱 방식 pbkdf2_sha256으로 변경 (bcrypt 72바이트 제한 해결)
2025-10-25 07:22:20 +09:00
hyungi
5fe51ab1d5 feat: localStorage 문제 해결 및 시스템 개선
- localStorage와 DB ID 불일치 문제 해결
- 프로젝트별 보고서 시간 필터링 수정
- 일반 사용자에게 일일공수 메뉴 숨김
- 공통 헤더 및 인증 시스템 구현
- 프로젝트별 일일공수 분리 기능 추가 (ProjectDailyWork 모델)
- IssuesAPI에서 project_id 누락 문제 수정
- 사용자 인증 통합 (TokenManager 기반)
2025-10-24 12:24:24 +09:00
hyungi
b024a178d0 feat: 목록 관리 및 보고서 페이지 개선
- 목록 관리 페이지에 고급 필터링 시스템 추가
  - 프로젝트별, 검토상태별, 날짜별 필터링
  - 검토 완료/필요 항목 시각적 구분 및 정렬
  - 해결 시간 입력 + 확인 버튼으로 검토 완료 처리

- 부적합 조회 페이지에 동일한 필터링 기능 적용
  - 검토 상태에 따른 카드 스타일링 (음영 처리)
  - JavaScript 템플릿 리터럴 오류 수정

- 보고서 페이지 프로젝트별 분석 기능 추가
  - 프로젝트 선택 드롭다운 추가
  - 총 작업 공수를 프로젝트별 일일공수 데이터로 계산
  - 부적합 처리 시간, 카테고리 분석, 상세 목록 모두 프로젝트별 필터링
  - localStorage 키 이름 통일 (daily-work-data)
2025-10-24 10:13:32 +09:00
hyungi
44e2fb2e44 feat: 사진 업로드 기능 개선 및 카테고리 업데이트
- 사진 2장까지 업로드 지원
- 카메라 촬영 + 갤러리 선택 분리
- 이미지 압축 및 최적화 (ImageUtils)
- iPhone .mpo 파일 JPEG 변환 지원
- 카테고리 변경: 치수불량 → 설계미스, 검사미스 추가
- KST 시간대 설정
- URL 해시 처리로 목록관리 페이지 이동 개선
- 로그인 OAuth2 form-data 형식 수정
- 업로드 속도 개선 및 프로그레스바 추가
2025-09-18 07:00:28 +09:00
hyungi
1339e5dded feat: 작업보고서 시스템 완성
- 일일 공수 입력 기능
- 부적합 사항 등록 (이미지 선택사항)
- 날짜별 부적합 조회 (시간순 나열)
- 목록 관리 (인라인 편집, 작업시간 확인 버튼)
- 보고서 생성 (총 공수/부적합 시간 분리)
- JWT 인증 및 권한 관리
- Docker 기반 배포 환경 구성
2025-09-17 10:41:25 +09:00