Hyungi Ahn b836b010b9 feat: 현황판 진행 상태 세분화 및 완료 신청 기능 구현
🎯 진행 상태 4단계 세분화:
- 진행 중 (파란색): 일반적인 진행 상태
- 긴급 (주황색): 마감 3일 이내
- 지연됨 (빨간색): 마감시간 초과
- 완료 대기 (보라색): 완료 신청 후 승인 대기

🔧 상태 판별 로직:
- 마감시간 기준 자동 상태 변경
- completion_requested_at 필드로 완료 대기 상태 판별
- 각 상태별 고유 색상, 아이콘, 텍스트

📱 완료 신청 기능:
- 마감시간 카드 우하단에 '완료신청' 버튼
- 완료 사진 업로드 (필수, 5MB 제한)
- 완료 코멘트 입력 (선택사항)
- 실시간 이미지 미리보기

🗄️ DB 구조 확장:
- completion_requested_at: 완료 신청 시간
- completion_requested_by_id: 신청자 ID
- completion_photo_path: 완료 사진 경로
- completion_comment: 완료 코멘트

🎨 UI/UX 개선:
- 상태별 그라데이션 배경색
- 애니메이션 아이콘 (톱니바퀴, 경고, 시계 등)
- 드래그 앤 드롭 사진 업로드
- 모달 기반 완료 신청 폼

💡 워크플로우:
1. 담당자가 작업 완료 후 '완료신청' 클릭
2. 완료 사진과 코멘트 업로드
3. 상태가 '완료 대기'로 변경
4. 관리자 승인 후 '완료됨'으로 최종 처리

🔐 보안 및 검증:
- 이미지 파일 타입 검증
- 파일 크기 제한 (5MB)
- Base64 인코딩으로 안전한 전송
- 사용자 인증 및 권한 확인

Expected Result:
 진행 상황을 한눈에 파악 가능한 색상 코딩
 마감 관리 자동화 (긴급/지연 상태)
 완료 신청 프로세스로 품질 관리 강화
 직관적인 UI로 사용자 경험 향상
2025-10-26 12:50:33 +09:00

M-Project - 작업보고서 시스템

간단하고 효율적인 부적합 사항 관리 및 공수 계산 시스템

🚀 빠른 시작

Docker를 사용한 실행 (권장)

  1. Docker 컨테이너 실행:
cd M-Project
docker-compose up -d
  1. 브라우저에서 접속:
http://localhost:16080
  1. 로그인:
  • 관리자: hyungi / djg3-jj34-X3Q3
  • 검사자1: inspector1 / pass123
  • 검사자2: inspector2 / pass456

간단한 웹 서버 실행 (개발용)

cd M-Project
python3 -m http.server 16080

📱 주요 기능

1. 프로젝트 관리 (신규 추가 )

  • Job No. 기반 프로젝트 생성
  • 관리자 전용 프로젝트 생성 배너
  • 프로젝트 목록 조회 및 관리

2. 부적합 등록 (모바일 최적화)

  • 사진 촬영 또는 업로드 (최대 2장)
  • 카테고리별 분류 (자재누락, 설계미스, 입고자재 불량, 검사미스)
  • 상세 설명 입력

3. 목록 관리

  • 등록된 부적합 사항 조회
  • 작업 시간 입력
  • 상태 변경 (신규→진행중→완료)
  • 추가 메모 작성

4. 일일 공수 관리

  • 작업자 수 및 정규/야근 시간 입력
  • 날짜별 공수 추적
  • 자동 계산 기능

5. 보고서

  • 작업 기간 및 총 공수 자동 계산
  • 카테고리별 통계
  • 부적합 사항 상세 내역
  • 인쇄 가능한 형식

📁 파일 구조

M-Project/
├── index.html      # 메인 애플리케이션
├── Rules.md        # 시스템 규칙 및 요구사항
└── README.md       # 이 파일

🛠️ 기술 스택

  • Backend: FastAPI (Python), SQLAlchemy, PostgreSQL
  • Frontend: HTML5, Tailwind CSS, JavaScript (Vanilla)
  • Database: PostgreSQL 15
  • Container: Docker & Docker Compose
  • Web Server: Nginx
  • Authentication: JWT (JSON Web Token)
  • Icons: Font Awesome

📋 데이터 구조

부적합 사항은 다음과 같은 형식으로 저장됩니다:

{
  id: 1234567890,                    // 타임스탬프
  photo: "data:image/jpeg;base64...", // Base64 이미지
  location: "2층 회의실",              // 위치
  category: "safety",                 // 카테고리
  description: "안전 장비 미착용",      // 설명
  urgency: "high",                    // 긴급도
  status: "new",                      // 상태
  reporter: "inspector1",             // 보고자 ID
  reporterName: "검사자1",            // 보고자 이름
  reportDate: "2025-09-17T10:30:00", // 보고 일시
  workHours: 2.5,                    // 작업 시간
  detailNotes: "추가 메모..."         // 상세 메모
}

특징

  • 모바일 우선: 현장에서 스마트폰으로 쉽게 입력
  • 실시간 데이터: PostgreSQL 데이터베이스로 실시간 동기화
  • 권한 관리: 관리자/일반 사용자 역할 기반 접근 제어
  • Docker 기반: 간편한 배포 및 확장성
  • RESTful API: 표준 API 설계로 확장 가능

🔒 보안 기능

  • JWT 인증: 토큰 기반 보안 인증 시스템
  • 비밀번호 암호화: bcrypt 해시를 사용한 안전한 비밀번호 저장
  • 권한 기반 접근: 역할별 API 접근 제어
  • SQL 인젝션 방지: SQLAlchemy ORM 사용

📚 문서

📝 라이선스

내부 사용 목적으로 제작됨


최종 업데이트: 2024-10-24
버전: 1.0.0 (프로젝트 관리 기능 추가)

Description
No description provided
Readme 1.9 MiB
Languages
HTML 66.2%
Python 13.6%
JavaScript 13.4%
PLpgSQL 5%
Shell 1.3%
Other 0.5%