d77a71493a2df1a2b7dabd19680b3ba2cd26adff
📸 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 구조 완성
M-Project - 작업보고서 시스템
간단하고 효율적인 부적합 사항 관리 및 공수 계산 시스템
🚀 빠른 시작
Docker를 사용한 실행 (권장)
- Docker 컨테이너 실행:
cd M-Project
docker-compose up -d
- 브라우저에서 접속:
http://localhost:16080
- 로그인:
- 관리자:
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 사용
📚 문서
- DATABASE_SCHEMA.md: 데이터베이스 스키마 상세 문서
- API_DOCUMENTATION.md: API 엔드포인트 문서
- PROJECT_OVERVIEW.md: 프로젝트 전체 구조 및 가이드
📝 라이선스
내부 사용 목적으로 제작됨
최종 업데이트: 2024-10-24
버전: 1.0.0 (프로젝트 관리 기능 추가)
Description
Languages
HTML
66.2%
Python
13.6%
JavaScript
13.4%
PLpgSQL
5%
Shell
1.3%
Other
0.5%