327 lines
12 KiB
Markdown
327 lines
12 KiB
Markdown
# supERPort ERP 개발일지
|
|
|
|
## 대화 1: 프로젝트 분석 및 계획
|
|
|
|
- **날짜**: 2025년 04월 16일
|
|
- **내용**:
|
|
- supERPort ERP 시스템의 요구사항 문서(PRD) 검토
|
|
- Flutter 기반 프론트엔드 구현 계획 수립
|
|
- 주요 기능 리뷰: 장비 입고/출고, 회사/사용자/라이센스 등록 관리
|
|
- Metronic Admin Template 스타일 가이드라인 확인
|
|
- 추천 디렉토리 구조 검토
|
|
|
|
## 대화 2: 프로젝트 디렉토리 구조 생성
|
|
|
|
- **날짜**: 2025년 04월 16일
|
|
- **내용**:
|
|
- PRD에 명시된 디렉토리 구조 구현
|
|
- 모델, 화면, 서비스, 유틸리티 디렉토리 생성
|
|
- 각 기능별 파일 구조 설계
|
|
|
|
## 대화 3: 모델 클래스 구현
|
|
|
|
- **날짜**: 2025년 04월 16일
|
|
- **내용**:
|
|
- 장비 관련 모델 구현:
|
|
- `EquipmentModel`: 공통 장비 정보
|
|
- `EquipmentInModel`: 장비 입고 정보
|
|
- `EquipmentOutModel`: 장비 출고 정보
|
|
- 회사 관련 모델 구현:
|
|
- `CompanyModel`: 회사 및 지점 정보
|
|
- 사용자 관련 모델 구현:
|
|
- `UserModel`: 사용자 정보 및 권한
|
|
- 라이센스 관련 모델 구현:
|
|
- `LicenseModel`: 유지보수 라이센스 정보
|
|
|
|
## 대화 4: 테마 및 공통 위젯 구현
|
|
|
|
- **날짜**: 2025년 04월 16일
|
|
- **내용**:
|
|
- 앱 테마 구현 (`AppTheme` 클래스)
|
|
- Metronic Admin 스타일 적용
|
|
- 색상 팔레트, 텍스트 스타일, 버튼 스타일 정의
|
|
- 공통 위젯 구현:
|
|
- `PageTitle`: 화면 상단 제목 및 추가 버튼
|
|
- `DataTableCard`: 데이터 테이블을 감싸는 카드 위젯
|
|
- `FormFieldWrapper`: 폼 필드 레이블 및 래퍼
|
|
- `DatePickerField`: 날짜 선택 필드
|
|
- `CategorySelectionField`: 대분류/중분류/소분류 선택 필드
|
|
|
|
## 대화 5: 모의 데이터 서비스 구현
|
|
|
|
- **날짜**: 2025년 04월 16일
|
|
- **내용**:
|
|
- `MockDataService` 클래스 구현
|
|
- 모의 데이터 생성 및 관리 기능:
|
|
- 장비 입고/출고 데이터 관리
|
|
- 회사 데이터 관리
|
|
- 사용자 데이터 관리
|
|
- 라이센스 데이터 관리
|
|
- CRUD 작업 지원 (생성, 조회, 업데이트, 삭제)
|
|
|
|
## 대화 6: 장비 입고 화면 구현
|
|
|
|
- **날짜**: 2025년 04월 16일
|
|
- **내용**:
|
|
- 장비 입고 목록 화면 구현:
|
|
- 데이터 테이블로 입고 장비 목록 표시
|
|
- 추가, 수정, 삭제 기능 구현
|
|
- 장비 입고 폼 화면 구현:
|
|
- 제조사명, 장비명, 분류 정보 입력
|
|
- 시리얼 넘버, 바코드, 물품 수량 입력
|
|
- 입고일 선택
|
|
- 폼 유효성 검사
|
|
|
|
## 대화 7: 장비 출고 화면 구현
|
|
|
|
- **날짜**: 2025년 04월 16일
|
|
- **내용**:
|
|
- 장비 출고 목록 화면 구현:
|
|
- 데이터 테이블로 출고 장비 목록 표시
|
|
- 추가, 수정, 삭제 기능 구현
|
|
- 장비 출고 폼 화면 구현:
|
|
- 장비명, 분류 정보 선택
|
|
- 시리얼 넘버, 바코드 입력
|
|
- 출고 수량, 출고일 입력
|
|
- 폼 유효성 검사
|
|
|
|
## 대화 8: 메인 화면 및 라우팅 구현
|
|
|
|
- **날짜**: 2025년 04월 16일
|
|
- **내용**:
|
|
- 메인 애플리케이션 파일(`main.dart`) 구현
|
|
- 홈 화면 구현:
|
|
- 주요 기능 바로가기 카드 메뉴 (그리드 레이아웃)
|
|
- 라우팅 설정:
|
|
- 각 화면에 대한 라우트 정의
|
|
- 인자 전달 처리 (수정 화면용 ID 등)
|
|
|
|
## 대화 9: 상수 및 유효성 검사 유틸리티 구현
|
|
|
|
- **날짜**: 2025년 04월 16일
|
|
- **내용**:
|
|
- 상수 관리 파일 구현:
|
|
- 라우트 경로 상수
|
|
- 장비 상태 상수
|
|
- 사용자 역할 상수
|
|
- 유효성 검사 함수 구현:
|
|
- 필수 입력값 검사
|
|
- 숫자 입력값 검사
|
|
- 전화번호 형식 검사
|
|
|
|
## 대화 10: 회사 관리 화면 구현
|
|
|
|
- **날짜**: 2025년 04월 16일
|
|
- **내용**:
|
|
- 회사 목록 화면 구현:
|
|
- 데이터 테이블로 회사 목록 표시
|
|
- 회사명, 주소, 지점 수 표시
|
|
- 추가, 수정, 삭제 기능 구현
|
|
- 회사 등록/수정 폼 구현:
|
|
- 회사명, 주소 입력
|
|
- 지점 정보 관리 (추가, 수정, 삭제)
|
|
- 지점 정보 입력 (지점명, 주소, 전화번호)
|
|
- 폼 유효성 검사
|
|
|
|
## 대화 11: 사용자 관리 화면 구현
|
|
|
|
- **날짜**: 2025년 04월 16일
|
|
- **내용**:
|
|
- 사용자 목록 화면 구현:
|
|
- 데이터 테이블로 사용자 목록 표시
|
|
- 이름, 소속 회사, 권한 정보 표시
|
|
- 추가, 수정, 삭제 기능 구현
|
|
- 사용자 등록/수정 폼 구현:
|
|
- 이름 입력
|
|
- 소속 회사 선택 (드롭다운)
|
|
- 권한 선택 (라디오 버튼: 관리자/일반 사용자)
|
|
- 폼 유효성 검사
|
|
|
|
## 대화 12: 라이센스 관리 화면 구현
|
|
|
|
- **날짜**: 2025년 04월 16일
|
|
- **내용**:
|
|
- 라이센스 목록 화면 구현:
|
|
- 데이터 테이블로 라이센스 목록 표시
|
|
- 라이센스명, 회사, 기간, 방문 주기 표시
|
|
- 추가, 수정, 삭제 기능 구현
|
|
- 라이센스 등록/수정 폼 구현:
|
|
- 라이센스명 입력
|
|
- 회사 선택 (드롭다운)
|
|
- 라이센스 기간, 방문 주기 입력
|
|
- 폼 유효성 검사
|
|
|
|
## 대화 13: 카테고리 선택 위젯 수정
|
|
|
|
- **날짜**: 2025년 04월 16일
|
|
- **내용**:
|
|
- `CategorySelectionField` 위젯의 오류 수정
|
|
- 타입 처리 개선 및 조건문 명확화
|
|
- 카테고리/서브카테고리 선택 로직 개선
|
|
|
|
## 대화 14: 프로젝트 완성 및 최종 점검
|
|
|
|
- **날짜**: 2025년 04월 16일
|
|
- **내용**:
|
|
- 모든 화면 구현 완료 확인:
|
|
- 장비 입고/출고 관리
|
|
- 회사 관리
|
|
- 사용자 관리
|
|
- 라이센스 관리
|
|
- 기능 점검:
|
|
- 각 화면 간 이동 및 데이터 전달
|
|
- 등록/수정/삭제 기능
|
|
- 유효성 검사
|
|
- UI/UX 최종 점검:
|
|
- 메트로닉 스타일 적용 확인
|
|
- 반응형 레이아웃 확인
|
|
- 사용성 검토
|
|
|
|
## 대화 15: Metronic 테일윈드 디자인 적용
|
|
|
|
- **날짜**: 2025년 04월 17일
|
|
- **내용**:
|
|
- Metronic Admin 테일윈드 버전 (데모6) 디자인 분석
|
|
- 테일윈드 CSS 기반으로 테마 시스템 재구성
|
|
- 새로운 테마 파일 생성: `theme_tailwind.dart`
|
|
- 기존 Material 테마에서 테일윈드 스타일로 변경
|
|
- Metronic의 색상 팔레트와 그림자 효과 적용
|
|
|
|
## 대화 16: 공통 레이아웃 컴포넌트 개발
|
|
|
|
- **날짜**: 2025년 04월 17일
|
|
- **내용**:
|
|
- Metronic 스타일의 레이아웃 컴포넌트 구현: `layout_components.dart`
|
|
- 공통 UI 컴포넌트 개발:
|
|
- `MetronicPageContainer`: 페이지 기본 레이아웃
|
|
- `MetronicCard`: 카드 컴포넌트
|
|
- `MetronicStatsCard`: 통계 카드 컴포넌트
|
|
- `MetronicPageTitle`: 페이지 제목 컴포넌트
|
|
- `MetronicDataTable`: 데이터 테이블 컴포넌트
|
|
- `MetronicFormField`: 폼 필드 래퍼 컴포넌트
|
|
- `MetronicTabContainer`: 탭 컨테이너 컴포넌트
|
|
- 전체 UI 일관성 향상을 위한 컴포넌트 표준화
|
|
|
|
## 대화 17: 오버뷰 대시보드 화면 구현
|
|
|
|
- **날짜**: 2025년 04월 17일
|
|
- **내용**:
|
|
- 오버뷰 화면 개발: `overview_screen.dart`
|
|
- 기능 구현:
|
|
- 환영 카드 섹션 개발
|
|
- 통계 카드 그리드 레이아웃 구현
|
|
- 시스템 활동 차트 영역 개발 (차트 플레이스홀더)
|
|
- 최근 활동, 알림, 예정된 작업 탭 구현
|
|
- 장비 입출고 통계 및 추이 표시
|
|
- Metronic 데모6 스타일 적용
|
|
- 홈 화면을 오버뷰 대시보드로 변경
|
|
|
|
## 대화 18: 메인 파일 업데이트 및 테마 적용
|
|
|
|
- **날짜**: 2025년 04월 17일
|
|
- **내용**:
|
|
- `main.dart` 파일 수정
|
|
- 테일윈드 테마 적용으로 변경: `AppThemeTailwind.lightTheme`
|
|
- 홈 화면을 기존 메뉴 그리드에서 오버뷰 대시보드로 변경
|
|
- 불필요한 HomeScreen 클래스 제거
|
|
- 라우트 설정 업데이트
|
|
- 모든 화면이 통일된 디자인 시스템 적용
|
|
|
|
## 대화 19: 좌측 사이드바 메뉴 구현 및 레이아웃 개선
|
|
|
|
- **날짜**: 2025년 04월 18일
|
|
- **내용**:
|
|
- Metronic 테일윈드 데모6 스타일의 사이드바 메뉴 구현
|
|
- 좌측에 메인 메뉴를 배치하는 레이아웃 구조 변경
|
|
- `SidebarMenu` 클래스 개발:
|
|
- 메뉴 계층 구조 지원 (접는/펼치는 기능)
|
|
- 활성 메뉴 시각적 표시
|
|
- 메뉴 항목별 아이콘 및 스타일 적용
|
|
- `MainLayout` 컴포넌트 구현:
|
|
- 좌측 사이드바와 우측 컨텐츠 영역 구성
|
|
- 커스텀 앱바 디자인 적용
|
|
- 모든 화면에 일관된 레이아웃 제공
|
|
- 오버뷰 화면을 새 레이아웃에 통합
|
|
- 메뉴 항목:
|
|
- 대시보드
|
|
- 장비 관리 (하위 메뉴: 장비 입고, 장비 출고)
|
|
- 회사 관리
|
|
- 사용자 관리
|
|
- 라이센스 관리
|
|
|
|
## 대화 20: 대시보드 인터페이스 개선
|
|
|
|
- **날짜**: 2025년 04월 19일
|
|
- **내용**:
|
|
- 대시보드 화면 UI 개선:
|
|
- 불필요한 환영 메시지 컴포넌트 제거
|
|
- 통계 카드 디자인 최적화
|
|
- MetronicStatsCard 컴포넌트 높이 축소 (여백 및 폰트 크기 조정)
|
|
- 통계 카드 레이아웃 비율 조정 (childAspectRatio 적용)
|
|
- 헤더 인터페이스 일관성 향상:
|
|
- 사이드바 헤더와 메인 헤더의 높이 일치 (72px로 통일)
|
|
- 브랜드 로고 및 앱 타이틀 정렬 개선
|
|
- 헤더 패딩 및 여백 최적화
|
|
- 전체적인 레이아웃 조화 개선
|
|
- 상단 네비게이션 영역 수직 정렬 통일
|
|
- 컴포넌트 간 일관된 간격 적용
|
|
|
|
## 대화 21: 대시보드 레이아웃 균형 개선
|
|
|
|
- **날짜**: 2025년 04월 19일
|
|
- **내용**:
|
|
- 대시보드 레이아웃의 일관성 향상:
|
|
- '시스템 활동'과 '최근 활동' 위젯 간의 간격을 표준화 (24px로 통일)
|
|
- 최근 활동 섹션의 불필요한 중첩 레이아웃 제거 및 단순화
|
|
- 위젯 간 상하 간격 일관성 확보로 시각적 조화 개선
|
|
- UI 요소 정리 및 최적화
|
|
- SizedBox 고정 높이 제한 제거로 컨텐츠에 따른 자연스러운 크기 조정
|
|
- 중복 컨테이너 래핑 최소화로 레이아웃 성능 향상
|
|
|
|
## 대화 22: 대시보드 UI 간격 표준화
|
|
|
|
- **날짜**: 2025년 04월 19일
|
|
- **내용**:
|
|
- 대시보드 화면의 모든 위젯 간 상하 간격 표준화:
|
|
- 주요 섹션 간 간격: 24px로 통일 (통계 그리드, 시스템 활동, 최근 활동)
|
|
- 섹션 내부 요소 간 간격: 16px로 통일
|
|
- 활동 차트 내부, 활동 레전드, 최근 활동 리스트 등의 간격 조정
|
|
- 컴포넌트 레이아웃 개선:
|
|
- 시스템 활동 카드에 하단 여백 추가
|
|
- 최근 활동 섹션에 상하 여백 추가
|
|
- 마지막 아이템 이후 불필요한 구분선 제거
|
|
- 전체적인 시각적 일관성 향상
|
|
- 모든 간격을 8px 단위의 배수로 설정 (8, 16, 24)
|
|
- 컴포넌트 내부 구성요소 간 관계성 강화
|
|
|
|
## 대화 23: 대시보드 UI 간격 미세 조정
|
|
|
|
- **날짜**: 2025년 04월 19일
|
|
- **내용**:
|
|
- 대시보드 화면의 동일한 위젯 간 간격 문제 해결:
|
|
- MetronicCard 컴포넌트에 내장된 하단 마진(bottom: 16) 제거
|
|
- 마진 속성을 컴포넌트 매개변수로 제공하여 외부에서 조정 가능하도록 개선
|
|
- 각 카드의 시각적 간격 정확히 통일 (24px)
|
|
- 컴포넌트 아키텍처 개선:
|
|
- 중첩 스타일 속성을 통일하여 일관된 시각적 경험 제공
|
|
- 레이아웃 컴포넌트의 유연성 향상
|
|
- 다양한 화면에서 재사용 가능한 컴포넌트 설계
|
|
|
|
## 대화 24: 일관된 인터페이스를 위한 사이드바 메뉴 통합
|
|
|
|
- **날짜**: 2025년 04월 20일
|
|
- **내용**:
|
|
- 모든 주요 화면에 사이드바 메뉴 적용:
|
|
- 장비 입고 관리 화면에 MainLayout 적용
|
|
- 장비 출고 관리 화면에 MainLayout 적용
|
|
- 회사 관리 화면에 MainLayout 적용
|
|
- 사용자 관리 화면에 MainLayout 적용
|
|
- 라이센스 관리 화면에 MainLayout 적용
|
|
- 레이아웃 구조 개선:
|
|
- 모든 화면에 일관된 MainLayout 컴포넌트 적용
|
|
- 페이지별 적절한 currentRoute 값 설정으로 사이드바 메뉴 활성화 상태 관리
|
|
- 기존 Scaffold와 AppBar를 MainLayout으로 대체
|
|
- 사용자 경험 향상:
|
|
- 모든 화면에서 일관된 내비게이션 경험 제공
|
|
- 새로고침 및 추가 기능 버튼 통일
|
|
- 플로팅 액션 버튼을 통한 추가 기능 접근성 개선 |