# Superport Flutter 프로젝트 분석 보고서

## 1. 프로젝트 개요

### 기본 정보
- **프로젝트명**: superport (버전 0.1.0)
- **프레임워크**: Flutter (SDK ^3.7.2)
- **플랫폼**: Web, iOS, Android, macOS, Windows, Linux
- **주요 목적**: 장비 입출고 관리를 중심으로 한 ERP 시스템

### 현재 상태
- 기존 UI에서 shadcn/ui 스타일의 새로운 디자인으로 리디자인 진행 중
- 파일명 패턴: 기존 파일명 + `_redesign` 접미사

## 2. 프로젝트 구조

```
superport/
├── android/          # Android 플랫폼 빌드 설정
├── ios/              # iOS 플랫폼 빌드 설정
├── linux/            # Linux 플랫폼 빌드 설정
├── macos/            # macOS 플랫폼 빌드 설정  
├── windows/          # Windows 플랫폼 빌드 설정
├── web/              # Web 플랫폼 빌드 설정
├── lib/              # Flutter 소스 코드
│   ├── models/       # 데이터 모델
│   ├── screens/      # 화면 구성
│   ├── services/     # 서비스 레이어
│   └── utils/        # 유틸리티
├── assets/           # 에셋 리소스
├── doc/              # 프로젝트 문서 (PRD 포함)
├── test/             # 테스트 코드 (현재 비어있음)
└── pubspec.yaml      # 프로젝트 설정 및 의존성
```

## 3. 주요 의존성

| 패키지 | 버전 | 용도 |
|--------|------|------|
| flutter_localizations | SDK | 다국어 지원 (한국어/영어) |
| pdf | ^3.10.4 | PDF 생성 |
| printing | ^5.11.0 | 인쇄 기능 |
| provider | ^6.1.5 | 상태 관리 (현재 미사용) |
| wave | ^0.2.2 | 웨이브 애니메이션 |
| flutter_svg | ^2.0.10 | SVG 이미지 지원 |
| google_fonts | ^6.1.0 | Google Fonts 사용 |

## 4. 아키텍처 및 패턴

### 4.1 상태 관리
- **MVC 패턴의 변형** 사용
- Controller 클래스로 비즈니스 로직 분리
- `MockDataService` 싱글톤으로 데이터 관리
- 일부 ChangeNotifier 사용 (예: LoginController)

### 4.2 라우팅
- **Named Route** 방식
- `Routes` 클래스에 라우트 상수 정의
- `onGenerateRoute`를 통한 동적 라우팅

### 4.3 데이터 관리
- 현재 실제 API 없이 Mock 데이터 서비스 사용
- 모든 CRUD 작업을 메모리에서 처리
- 향후 실제 API 연동 시 서비스 레이어만 교체 예정

## 5. 주요 기능 및 화면

### 5.1 인증
- **로그인** (`/login`)
  - 이메일/비밀번호 기반 인증
  - Wave 애니메이션 배경
  - 테스트 계정 지원

### 5.2 대시보드
- **Overview** (`/`)
  - 통계 요약 (장비, 회사, 사용자, 라이센스)
  - 최근 활동 내역
  - 빠른 작업 버튼

### 5.3 장비 관리
- **장비 목록** (`/equipment`)
  - 입고/출고/대여 상태 관리
  - 검색 및 필터링
  - 일괄 처리 기능
- **입고 관리** (`/equipment-in/add`)
- **출고 관리** (`/equipment-out/add`)

### 5.4 기타 관리 기능
- **회사 관리**: 고객사/공급업체, 본사/지점 관리
- **사용자 관리**: 직원 정보 및 권한 관리
- **라이센스 관리**: 소프트웨어 라이센스 추적
- **입고지 관리**: 장비 입고 위치 관리

## 6. UI/UX 디자인 시스템

### 6.1 기존 디자인
- Tailwind 스타일의 색상 체계
- Material Icons 사용
- Metronic 디자인 시스템 참고
- 단일 테마 (라이트 모드만)

### 6.2 새로운 디자인 (리디자인)
- **shadcn/ui 디자인 시스템** 도입
- **테마 시스템** (`theme_shadcn.dart`)
  - 의미론적 색상 체계
  - 일관된 타이포그래피 (Inter 폰트)
  - 표준화된 간격 및 라운드 시스템
- **컴포넌트 라이브러리**
  - ShadcnCard, ShadcnButton, ShadcnInput 등
  - 재사용 가능한 표준 컴포넌트
- **레이아웃**
  - Microsoft Dynamics 365 스타일
  - 사이드바 접기/펼치기
  - 브레드크럼 네비게이션

## 7. 현재 진행 상황

### 7.1 완료된 리디자인
- ✅ 테마 시스템 구축
- ✅ 공통 컴포넌트 라이브러리
- ✅ 앱 레이아웃
- ✅ 로그인 화면
- ✅ 대시보드
- ✅ 모든 리스트 화면 (회사, 장비, 사용자, 라이센스, 입고지)

### 7.2 남은 작업
- ⏳ Form 화면들의 리디자인
- ⏳ 다크 모드 지원
- ⏳ 반응형 디자인 개선
- ⏳ 실제 API 연동
- ⏳ 테스트 코드 작성
- ⏳ 국제화(i18n) 구현

## 8. 기술적 특이사항

1. **크로스 플랫폼**: 모든 주요 플랫폼 지원
2. **웹 중심 개발**: 데스크톱 웹 환경에 최적화
3. **모던 UI**: shadcn/ui 스타일의 현대적 디자인
4. **타입 안정성**: Dart의 강타입 시스템 활용
5. **컴포넌트 기반**: 재사용 가능한 위젯 아키텍처

## 9. 권장 개선사항

### 9.1 단기 개선
1. Form 화면 리디자인 완료
2. 입력 유효성 검사 강화
3. 로딩/에러 상태 UI 개선
4. 키보드 단축키 지원

### 9.2 중장기 개선
1. 실제 백엔드 API 연동
2. 단위/통합 테스트 추가
3. CI/CD 파이프라인 구축
4. 성능 모니터링 도입
5. 사용자 분석 도구 통합

## 10. 프로젝트 메타데이터

- **최초 커밋**: e346f83 (프로젝트 최초 커밋)
- **현재 브랜치**: main
- **Git 상태**: 다수의 수정 및 새 파일 존재
- **문서화**: PRD 문서 존재 (`doc/supERPort ERP PRD.md`)

---

*이 문서는 2025-07-07 기준으로 작성되었습니다.*