Commit Graph

8 Commits

Author SHA1 Message Date
Hyungi Ahn
5c8f553f87 fix: 작업자 비활성화 기능 완전 수정
작업자 퇴사 시 비활성화 기능이 제대로 작동하지 않던 문제 해결

백엔드 수정:
- is_active 가상 필드 추가 (status 기반 자동 생성)
- ISO 8601 날짜 형식을 MySQL DATE 형식으로 변환
- 작업자 업데이트 필드 오류 수정 (salary, annual_leave 제거)

프론트엔드 수정 (11개 파일):
- 모든 페이지에서 비활성 작업자 필터링 로직 추가
- 대시보드, 작업보고서, 근태관리, 사용자관리 등 전체 페이지 적용

영향받는 기능:
- 작업자 관리: 비활성화 상태가 DB에 저장되고 새로고침 후에도 유지
- 모든 페이지: 비활성화된 작업자가 선택 목록에서 제외됨

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-09 17:45:57 +09:00
Hyungi Ahn
a2669e08c4 feat: v2.2.0 - 중복 카드 문제 해결 및 삭제 기능 개선
### 주요 변경사항

1. 작업 현황 모달 중복 카드 문제 근본 해결
   - monthlyStatusModel.getDailyWorkerStatus() 리팩토링
   - 집계 테이블 대신 daily_work_reports에서 직접 조회
   - GROUP BY로 작업자별 1개 카드 보장

2. 삭제 권한 강화
   - 작업보고서 삭제는 그룹장/시스템/관리자만 가능
   - 권한 없는 사용자는 403 에러 반환

3. 작업 입력 UI 개선
   - 작업 항목 삭제 버튼 스타일 개선 (이모지 + 빨간색)
   - 삭제 버튼 호버 효과 추가

4. 작업 현황 모달에 삭제 기능 추가
   - 관리자/그룹장만 삭제 버튼 표시
   - 작업자의 해당 날짜 전체 작업 삭제 가능

5. 시놀로지 배포 스크립트 추가
   - update.sh: DB 보존하면서 코드만 업데이트
   - 안전한 배포 절차 자동화
2025-12-02 13:33:24 +09:00
Hyungi Ahn
de427c457b feat: 작업 분석 시스템 및 관리 기능 대폭 개선
 새로운 기능:
- 작업 분석 페이지 구현 (기간별, 프로젝트별, 작업자별, 오류별)
- 개별 분석 실행 버튼으로 API 부하 최적화
- 연차/휴무 집계 방식 개선 (주말 제외, 작업내용 통합)
- 프로젝트 관리 시스템 (활성화/비활성화)
- 작업자 관리 시스템 (CRUD 기능)
- 코드 관리 시스템 (작업유형, 작업상태, 오류유형)

🎨 UI/UX 개선:
- 기간별 작업 현황을 테이블 형태로 변경
- 작업자별 rowspan 그룹화로 가독성 향상
- 연차/휴무 프로젝트 하단 배치 및 시각적 구분
- 기간 확정 시스템으로 사용자 경험 개선
- 반응형 디자인 적용

🔧 기술적 개선:
- Rate Limiting 제거 (내부 시스템 최적화)
- 주말 연차/휴무 자동 제외 로직
- 작업공수 계산 정확도 향상
- 데이터베이스 마이그레이션 추가
- API 엔드포인트 확장 및 최적화

🐛 버그 수정:
- projectSelect 요소 참조 오류 해결
- 차트 높이 무한 증가 문제 해결
- 날짜 표시 형식 단순화
- 작업보고서 저장 validation 오류 수정
2025-11-04 16:56:47 +09:00
Hyungi Ahn
33307bb243 enhance: 작업 입력 UI 대폭 개선 - 모던하고 직관적인 인터페이스 구현
🎨 모던한 카드형 레이아웃:
1. 작업 항목 디자인 완전 개편:
   - 그라데이션 배경 (primary → tertiary)
   - 상단 컬러 바 호버 효과
   - 향상된 그림자 및 호버 애니메이션
   - 2xl 테두리 반경으로 부드러운 외관

2. 폼 필드 그룹화:
   - form-field-group 컨테이너 도입
   - 아이콘과 라벨 조합으로 직관성 향상
   - 포커스 상태 시각적 피드백
   - 호버 효과로 상호작용성 증대

 에러 유형 조건부 표시 개선:
1. 스마트한 UI 로직:
   - 업무 상태가 '에러'일 때만 에러 유형 섹션 표시
   - 부드러운 슬라이드 다운 애니메이션 (0.4s cubic-bezier)
   - opacity, max-height, transform 조합 애니메이션

2. 시각적 구분:
   - 에러 섹션: error-50 → warning-50 그라데이션
   - 에러 테두리: error-200 컬러
   - 에러 아이콘 및 라벨: error-500/700 컬러

🚀 빠른 시간 버튼 고도화:
1. 프리미엄 디자인:
   - 그라데이션 배경 (primary-100 → primary-200)
   - 호버 시: primary-500 → primary-600 그라데이션
   - 반짝이는 효과 (::before 슬라이드 애니메이션)
   - 3D 변형 효과 (scale, translateY)

2. 향상된 상호작용:
   - 30분 옵션 추가 (0.5시간)
   - 클릭 시 스케일 애니메이션
   - 중앙 정렬 및 최소 너비 설정
   - cubic-bezier 전환 효과

🎯 사용자 경험 개선:
1. 직관적인 인터페이스:
   - 아이콘으로 필드 구분 (🏗️ 프로젝트, ⚙️ 작업유형, 📊 업무상태, ⚠️ 에러유형,  시간)
   - 명확한 플레이스홀더 텍스트
   - 논리적인 필드 배치 (2열 그리드)

2. 반응형 최적화:
   - 모바일에서 적절한 패딩 및 폰트 크기
   - 터치 친화적 버튼 크기
   - 유연한 그리드 레이아웃

🔧 기술적 개선:
1. JavaScript 로직 강화:
   - setupWorkEntryEvents 함수 완전 재작성
   - 폼 필드 포커스 효과 추가
   - 에러 타입 조건부 표시 로직 개선
   - 버튼 클릭 피드백 애니메이션

2. CSS 아키텍처:
   - 컴포넌트 기반 스타일링
   - CSS 변수 활용한 일관된 디자인
   - 애니메이션 키프레임 정의
   - 계층적 스타일 구조

🎯 결과:
- 허접했던 UI → 프로페셔널한 모던 인터페이스
- 에러 유형 조건부 표시로 사용성 대폭 향상
- 직관적이고 아름다운 작업 입력 경험
- 대시보드와 완벽한 디자인 일관성

테스트: http://localhost:20000/pages/common/daily-work-report.html
2025-11-03 13:02:30 +09:00
Hyungi Ahn
bad5584988 enhance: daily-work-report.html 모던 UI 대폭 개선 - 대시보드 일관성 및 사용성 향상
🎨 모던 디자인 시스템 적용:
1. 대시보드와 일관된 디자인 언어:
   - design-system.css 활용한 통일된 색상, 타이포그래피
   - 동일한 카드, 버튼, 애니메이션 스타일
   - 일관된 간격, 그림자, 테두리 반경

2. 새로운 CSS 파일 분리:
   - daily-work-report.css 생성 (673줄)
   - 인라인 스타일 완전 제거 (926줄 → 0줄)
   - 모듈화된 스타일 관리

🚀 사용자 경험 대폭 개선:
1. 모던한 진행 단계 표시:
   - 상단 3단계 진행 바 추가
   - 실시간 단계 상태 표시 (활성/완료)
   - 시각적 진행도 피드백

2. 개선된 레이아웃 구조:
   - 헤더: 그라데이션 배경, 중앙 정렬
   - 메인: 최대 너비 1200px, 중앙 배치
   - 카드: 일관된 패딩, 그림자, 테두리

3. 향상된 작업자 선택 UI:
   - worker-btn → worker-card 클래스 변경
   - 카드형 디자인으로 시각적 개선
   - 호버 효과: 상단 컬러 바, 배경 변화
   - 선택 상태: 그라데이션 배경, 흰색 텍스트

 인터랙션 개선:
1. 버튼 디자인 통일:
   - 일관된 패딩, 높이 (48px)
   - 호버 효과: translateY(-2px), 그림자 확대
   - 색상: primary, success, secondary 통일

2. 폼 요소 개선:
   - form-input 클래스로 통일된 스타일
   - 포커스 상태: 테두리 색상, 그림자 효과
   - 라벨: 명확한 계층 구조

3. 애니메이션 효과:
   - 단계 전환: opacity, transform 애니메이션
   - 카드 호버: translateY, 그림자 변화
   - 부드러운 전환: var(--transition-normal)

📱 반응형 디자인 최적화:
1. 모바일 (768px 이하):
   - 진행 단계: 세로 배치
   - 작업자 그리드: 1열로 변경
   - 패딩, 폰트 크기 조정

2. 태블릿 (1024px 이하):
   - 적절한 그리드 컬럼 수 조정
   - 터치 친화적 버튼 크기

🔧 기술적 개선:
1. JavaScript 업데이트:
   - updateProgressSteps() 함수 추가
   - 진행 단계 실시간 업데이트
   - CSS 클래스명 변경 반영

2. HTML 구조 개선:
   - 시맨틱 태그 활용 (header, main)
   - 접근성 향상 (label, aria 속성)
   - 깔끔한 마크업 구조

🎯 결과:
- 대시보드와 완벽한 디자인 일관성
- 직관적이고 사용하기 쉬운 인터페이스
- 모든 디바이스에서 최적화된 경험
- 프로페셔널한 시각적 품질

테스트: http://localhost:20000/pages/common/daily-work-report.html
2025-11-03 12:56:45 +09:00
Hyungi Ahn
790d12fe13 feat: 토큰 만료 시 자동 로그아웃 기능 추가 및 테이블명 수정
🔐 토큰 만료 시 자동 로그아웃 기능:
1. JWT 토큰 만료 시간 대폭 연장:
   - 액세스 토큰: 24시간 → 7일
   - 리프레시 토큰: 7일 → 30일
   - 사용자 편의성 크게 향상

2. 토큰 만료 감지 및 처리:
   - isTokenExpired() 함수 추가
   - JWT 페이로드 파싱하여 exp 확인
   - 현재 시간과 비교하여 만료 여부 판단

3. 자동 로그아웃 처리:
   - API 호출 시 401 오류 감지
   - 주기적 토큰 만료 확인 (5분마다)
   - 만료 시 자동 인증 데이터 정리
   - 사용자 알림 후 로그인 페이지 리다이렉트

4. 개선된 인증 데이터 관리:
   - clearAuthData() 함수로 통합 관리
   - token, user, userInfo, currentUser 모두 정리
   - 메모리 누수 방지

🐛 데이터베이스 테이블명 수정:
1. projectModel.js:
   - Projects → projects (대문자 → 소문자)
   - 실제 DB 테이블명과 일치

2. taskModel.js:
   - Tasks → tasks (대문자 → 소문자)
   - 실제 DB 테이블명과 일치

3. API 오류 해결:
   - '테이블이 존재하지 않습니다' 오류 수정
   - projects, tasks API 정상 작동

 사용자 경험 개선:
- 토큰 만료로 인한 예상치 못한 오류 방지
- 명확한 만료 알림 메시지
- 자동 로그아웃으로 보안 강화
- 더 긴 세션 유지로 편의성 향상

🔧 기술적 개선:
- JWT 페이로드 안전한 파싱
- 에러 핸들링 강화
- 주기적 백그라운드 확인
- 전역 함수로 재사용성 향상

🎯 결과:
- 안정적인 인증 시스템
- 사용자 친화적인 세션 관리
- 보안성과 편의성의 균형
- API 호출 오류 해결

테스트:
- 토큰 만료 후 자동 로그아웃 확인
- projects, tasks API 정상 작동 확인
2025-11-03 12:49:25 +09:00
Hyungi Ahn
a3da93adc2 fix: 웹 UI JavaScript API 응답 구조 호환성 수정
- 성능 최적화로 변경된 API 응답 구조에 맞춰 JavaScript 수정
- management-dashboard.js: workers 데이터 접근 경로 수정 (data.data 지원)
- manage-worker.js: 작업자 목록 API 응답 구조 수정
- daily-work-report.js: workers, projects 데이터 접근 경로 수정
- login.js: 로그인 API 응답 구조 수정 (result.data.token 접근)

API 응답 구조: { success: true, data: [...], meta: {...} }
2025-11-03 11:17:49 +09:00
09a4d38512 feat: 초기 프로젝트 설정 및 룰.md 파일 추가 2025-07-28 09:53:31 +09:00