# Superport ERP System > πŸ’‘ **Note**: Global Claude Code rules are in `~/.claude/CLAUDE.md`. This document contains project-specific context. ## 🎯 Project Overview **Superport**λŠ” κΈ°μ—…μš© μž₯λΉ„ 관리 및 μœ μ§€λ³΄μˆ˜λ₯Ό μœ„ν•œ ν΄λΌμš°λ“œ 기반 ERP μ‹œμŠ€ν…œμž…λ‹ˆλ‹€. ### Business Purpose - μž₯λΉ„ μž…μΆœκ³  및 재고 관리 μžλ™ν™” - μœ μ§€λ³΄μˆ˜ λΌμ΄μ„ μŠ€ 만료일 좔적 - 고객사별 μž₯λΉ„ 배치 ν˜„ν™© 관리 - μ‹€μ‹œκ°„ λŒ€μ‹œλ³΄λ“œλ₯Ό ν†΅ν•œ 경영 μΈμ‚¬μ΄νŠΈ 제곡 ### Target Users - **κ΄€λ¦¬μž (Admin)**: 전체 μ‹œμŠ€ν…œ 관리, μ‚¬μš©μž κΆŒν•œ μ„€μ • - **λ§€λ‹ˆμ € (Manager)**: μž₯λΉ„ μž…μΆœκ³  승인, λΌμ΄μ„ μŠ€ 관리 - **일반 μ‚¬μš©μž (Member)**: μž₯λΉ„ 쑰회, κΈ°λ³Έ μž‘μ—… μˆ˜ν–‰ ## πŸ—οΈ Technical Architecture ### Tech Stack ```yaml Frontend: platform: Flutter Web (Mobile ready) state_management: Provider + ChangeNotifier ui_framework: ShadCN Flutter Port api_client: Dio + Retrofit code_generation: Freezed + JsonSerializable Backend: language: Rust framework: Actix-Web database: PostgreSQL auth: JWT (24μ‹œκ°„ 만료) api_url: http://43.201.34.104:8080/api/v1 source_path: /Users/maximilian.j.sul/Documents/flutter/superport_api Infrastructure: hosting: AWS (μ˜ˆμ •) storage: S3 (μ˜ˆμ •) ci_cd: GitHub Actions (μ˜ˆμ •) ``` ### Project Structure ``` /Users/maximilian.j.sul/Documents/flutter/ β”œβ”€β”€ superport/ # Flutter Frontend β”‚ β”œβ”€β”€ lib/ β”‚ β”‚ β”œβ”€β”€ core/ # 핡심 μ„€μ • 및 μœ ν‹Έλ¦¬ν‹° β”‚ β”‚ β”œβ”€β”€ data/ # API 톡신 λ ˆμ΄μ–΄ β”‚ β”‚ β”‚ β”œβ”€β”€ models/ # Freezed DTO β”‚ β”‚ β”‚ └── datasources/ # API ν΄λΌμ΄μ–ΈνŠΈ β”‚ β”‚ β”œβ”€β”€ screens/ # UI ν™”λ©΄ β”‚ β”‚ β”‚ └── [feature]/ β”‚ β”‚ β”‚ β”œβ”€β”€ controllers/ # μƒνƒœ 관리 β”‚ β”‚ β”‚ └── widgets/ # UI μ»΄ν¬λ„ŒνŠΈ β”‚ β”‚ └── services/ # λΉ„μ¦ˆλ‹ˆμŠ€ 둜직 β”‚ └── superport_api/ # Rust Backend β”œβ”€β”€ src/ β”‚ β”œβ”€β”€ handlers/ # API μ—”λ“œν¬μΈνŠΈ β”‚ β”œβ”€β”€ services/ # λΉ„μ¦ˆλ‹ˆμŠ€ 둜직 β”‚ └── entities/ # DB λͺ¨λΈ └── migrations/ # DB λ§ˆμ΄κ·Έλ ˆμ΄μ…˜ ``` ## βœ… Implementation Status ### Completed Features (100%) - βœ… **인증 μ‹œμŠ€ν…œ**: JWT 기반 둜그인/λ‘œκ·Έμ•„μ›ƒ - βœ… **νšŒμ‚¬ 관리**: CRUD, 지점 관리, μ—°λ½μ²˜ 정보 - βœ… **μ‚¬μš©μž 관리**: 계정 생성, κΆŒν•œ μ„€μ • (Admin/Manager/Member) - βœ… **μ°½κ³  μœ„μΉ˜ 관리**: μž…κ³ μ§€ 등둝 및 관리 - βœ… **μž₯λΉ„ μž…κ³ **: μ‹œλ¦¬μ–Ό 번호 좔적, μˆ˜λŸ‰ 관리 - βœ… **λΌμ΄μ„ μŠ€ 관리**: μœ μ§€λ³΄μˆ˜ κΈ°κ°„, 만료일 μ•Œλ¦Ό ### In Progress (70%) - πŸ”„ **μž₯λΉ„ 좜고**: API 연동 μ™„λ£Œ, UI κ°œμ„  ν•„μš” - πŸ”„ **λŒ€μ‹œλ³΄λ“œ**: κΈ°λ³Έ 톡계 ν‘œμ‹œ, 차트 κ΅¬ν˜„ 쀑 - πŸ”„ **검색 및 ν•„ν„°**: κΈ°λ³Έ 검색 κ΅¬ν˜„, κ³ κΈ‰ ν•„ν„° 개발 쀑 ### Not Started (0%) - ⏳ **μž₯λΉ„ λŒ€μ—¬**: λŒ€μ—¬/λ°˜λ‚© ν”„λ‘œμ„ΈμŠ€ - ⏳ **μž₯λΉ„ 폐기**: 폐기 μ‚¬μœ  및 이λ ₯ 관리 - ⏳ **λ³΄κ³ μ„œ 생성**: Excel/PDF 내보내기 - ⏳ **λͺ¨λ°”일 μ•±**: λ°˜μ‘ν˜• λ ˆμ΄μ•„μ›ƒ μ΅œμ ν™” - ⏳ **μ•Œλ¦Ό μ‹œμŠ€ν…œ**: 이메일/ν‘Έμ‹œ μ•Œλ¦Ό ## πŸ› Known Issues ### Critical ```yaml μ‹œλ¦¬μ–Ό_번호_쀑볡: location: "μž₯λΉ„ μž…κ³  ν”„λ‘œμ„ΈμŠ€" issue: "λ°±μ—”λ“œμ—μ„œ 쀑볡 체크 λ―Έκ΅¬ν˜„" workaround: "ν”„λ‘ νŠΈμ—”λ“œ μž„μ‹œ 검증" priority: HIGH κΆŒν•œ_체크_λˆ„λ½: location: ["warehouse_location", "overview"] issue: "일뢀 ν™”λ©΄μ—μ„œ μ—­ν•  기반 μ ‘κ·Ό μ œμ–΄ 미적용" impact: "λͺ¨λ“  μ‚¬μš©μžκ°€ μ ‘κ·Ό κ°€λŠ₯" priority: HIGH ``` ### Minor ```yaml μƒνƒœ_κ°±μ‹ _μ§€μ—°: location: "CRUD μž‘μ—… ν›„ 리슀트 ν™”λ©΄" issue: "일뢀 ν™”λ©΄μ—μ„œ μžλ™ μƒˆλ‘œκ³ μΉ¨ λ―Έμž‘λ™" workaround: "μˆ˜λ™ μƒˆλ‘œκ³ μΉ¨" priority: MEDIUM λ‚ μ§œ_포맷: location: "λΌμ΄μ„ μŠ€ 만료일" issue: "ν•œκ΅­ μ‹œκ°„λŒ€ ν‘œμ‹œ 뢈일치" priority: LOW ``` ## πŸ”Œ Unused Backend API Integration Plan ### ν˜„μž¬ λ°±μ—”λ“œμ— κ΅¬ν˜„λ˜μ—ˆμœΌλ‚˜ ν”„λ‘ νŠΈμ—”λ“œμ—μ„œ λ―Έμ‚¬μš© 쀑인 API #### 1. `/overview/license-expiry` - λΌμ΄μ„ μŠ€ 만료 μš”μ•½ **μš©λ„**: 30일/60일/90일 λ‚΄ 만료 μ˜ˆμ •μΈ λΌμ΄μ„ μŠ€ μš”μ•½ 정보 제곡 **ν™œμš© κ³„νš**: - **μœ„μΉ˜**: Dashboard ν™”λ©΄ 상단 μ•Œλ¦Ό λ°°λ„ˆ - **κ΅¬ν˜„ 방법**: - 만료 μž„λ°• λΌμ΄μ„ μŠ€ 카운트λ₯Ό λ°°μ§€λ‘œ ν‘œμ‹œ - 클릭 μ‹œ 상세 λΌμ΄μ„ μŠ€ λͺ©λ‘μœΌλ‘œ 이동 - κ΄€λ¦¬μž/λ§€λ‹ˆμ € κΆŒν•œμΌ λ•Œλ§Œ ν‘œμ‹œ - **μ˜ˆμƒ 효과**: λΌμ΄μ„ μŠ€ κ°±μ‹  λˆ„λ½ λ°©μ§€, 사전 λŒ€μ‘ κ°€λŠ₯ #### 2. `/lookups` - 전체 쑰회 데이터 **μš©λ„**: μ‹œμŠ€ν…œ 전체 λ“œλ‘­λ‹€μš΄/μ…€λ ‰νŠΈ λ°•μŠ€μš© λ§ˆμŠ€ν„° 데이터 제곡 **ν™œμš© κ³„νš**: - **μœ„μΉ˜**: μ•± μ΄ˆκΈ°ν™” μ‹œ ν•œ 번 ν˜ΈμΆœν•˜μ—¬ 캐싱 - **κ΅¬ν˜„ 방법**: - `LookupService` μƒμ„±ν•˜μ—¬ μ „μ—­ μƒνƒœ 관리 - μž₯λΉ„ νƒ€μž…, μƒνƒœ μ½”λ“œ, μ œμ‘°μ‚¬ λͺ©λ‘ λ“± 일괄 관리 - 각 ν™”λ©΄μ—μ„œ κ°œλ³„ API 호좜 λŒ€μ‹  μΊμ‹œλœ 데이터 μ‚¬μš© - **μ˜ˆμƒ 효과**: API 호좜 횟수 κ°μ†Œ, 응닡 속도 ν–₯상 #### 3. `/lookups/type` - νƒ€μž…λ³„ 쑰회 데이터 **μš©λ„**: νŠΉμ • νƒ€μž…μ˜ 쑰회 λ°μ΄ν„°λ§Œ μ„ νƒμ μœΌλ‘œ κ°€μ Έμ˜€κΈ° **ν™œμš© κ³„νš**: - **μœ„μΉ˜**: λŒ€λŸ‰ 데이터 μž…λ ₯ ν™”λ©΄ (μž₯λΉ„ 일괄 등둝, Excel μž„ν¬νŠΈ) - **κ΅¬ν˜„ 방법**: - ν•„μš”ν•œ νƒ€μž…λ§Œ μ„ νƒμ μœΌλ‘œ λ‘œλ“œ - 동적 폼 생성 μ‹œ ν™œμš© - νƒ€μž…λ³„ μœ νš¨μ„± 검증 κ·œμΉ™ 적용 - **μ˜ˆμƒ 효과**: λ©”λͺ¨λ¦¬ μ‚¬μš©λŸ‰ μ΅œμ ν™”, 동적 UI ꡬ성 κ°€λŠ₯ #### 4. `/health` - μ‹œμŠ€ν…œ μƒνƒœ 체크 **μš©λ„**: API μ„œλ²„ μƒνƒœ 및 DB μ—°κ²° μƒνƒœ 확인 **ν™œμš© κ³„νš**: - **μœ„μΉ˜**: - 둜그인 ν™”λ©΄ ν•˜λ‹¨ (μ„œλ²„ μƒνƒœ 인디케이터) - κ΄€λ¦¬μž λŒ€μ‹œλ³΄λ“œ (μ‹œμŠ€ν…œ λͺ¨λ‹ˆν„°λ§ μœ„μ ―) - **κ΅¬ν˜„ 방법**: - 30초 간격 폴링으둜 μ„œλ²„ μƒνƒœ λͺ¨λ‹ˆν„°λ§ - μ—°κ²° μ‹€νŒ¨ μ‹œ μžλ™ μž¬μ‹œλ„ 및 μ‚¬μš©μž μ•Œλ¦Ό - μ„œλ²„ 점검 μ‹œκ°„ 사전 곡지 ν‘œμ‹œ - **μ˜ˆμƒ 효과**: μ‹œμŠ€ν…œ μ•ˆμ •μ„± ν–₯상, μž₯μ•  μ‘°κΈ° 감지 ### κ΅¬ν˜„ μš°μ„ μˆœμœ„ 1. **Phase 1 (1μ£Όμ°¨)**: `/overview/license-expiry` - λŒ€μ‹œλ³΄λ“œ 톡합 2. **Phase 2 (2μ£Όμ°¨)**: `/lookups` - μ „μ—­ 캐싱 μ‹œμŠ€ν…œ ꡬ좕 3. **Phase 3 (3μ£Όμ°¨)**: `/health` - μ‹œμŠ€ν…œ λͺ¨λ‹ˆν„°λ§ κ΅¬ν˜„ 4. **Phase 4 (4μ£Όμ°¨)**: `/lookups/type` - 동적 폼 μ‹œμŠ€ν…œ ꡬ좕 ## πŸ“‹ TODO List ### Immediate (This Week) - [ ] μž₯λΉ„ 좜고 ν”„λ‘œμ„ΈμŠ€ μ™„μ„± - [ ] λŒ€μ‹œλ³΄λ“œ 차트 κ΅¬ν˜„ (Chart.js 톡합) - [ ] μ‹œλ¦¬μ–Ό 번호 쀑볡 체크 λ°±μ—”λ“œ κ΅¬ν˜„ - [ ] κΆŒν•œ 체크 λˆ„λ½ ν™”λ©΄ μˆ˜μ • - [ ] `/overview/license-expiry` API 연동 (λŒ€μ‹œλ³΄λ“œ μ•Œλ¦Ό λ°°λ„ˆ) ### Short Term (This Month) - [ ] μž₯λΉ„ λŒ€μ—¬/λ°˜λ‚© κΈ°λŠ₯ κ΅¬ν˜„ - [ ] κ³ κΈ‰ 검색 ν•„ν„° κ΅¬ν˜„ - [ ] Excel 내보내기 κΈ°λŠ₯ - [ ] μ„±λŠ₯ μ΅œμ ν™” (가상 슀크둀링) - [ ] `/lookups` API ν™œμš©ν•œ μ „μ—­ 캐싱 μ‹œμŠ€ν…œ ꡬ좕 - [ ] `/health` API ν™œμš©ν•œ μ„œλ²„ μƒνƒœ λͺ¨λ‹ˆν„°λ§ ### Long Term - [ ] λͺ¨λ°”일 μ•± μ΅œμ ν™” - [ ] ν‘Έμ‹œ μ•Œλ¦Ό μ‹œμŠ€ν…œ - [ ] λ‹€κ΅­μ–΄ 지원 (μ˜μ–΄) - [ ] λŒ€μ‹œλ³΄λ“œ μ»€μŠ€ν„°λ§ˆμ΄μ§• - [ ] `/lookups/type` API ν™œμš©ν•œ 동적 폼 μ‹œμŠ€ν…œ ## πŸ”‘ Key Decisions ### 2025-01-07 - **Decision**: Mock μ„œλΉ„μŠ€ 제거, Real API μ „μš©μœΌλ‘œ μ „ν™˜ - **Reason**: 개발 ν™˜κ²½ λ‹¨μˆœν™” 및 μ‹€μ œ ν™˜κ²½ ν…ŒμŠ€νŠΈ κ°•ν™” ### 2025-01-06 - **Decision**: Provider νŒ¨ν„΄ μœ μ§€ (Riverpod λ§ˆμ΄κ·Έλ ˆμ΄μ…˜ 보λ₯˜) - **Reason**: ν˜„μž¬ ꡬ쑰가 μ•ˆμ •μ , νŒ€ ν•™μŠ΅ 곑선 κ³ λ € ### 2024-12-20 - **Decision**: Flutter Web μš°μ„  개발 - **Reason**: λΉ λ₯Έ 배포와 크둜슀 ν”Œλž«νΌ 지원 ## πŸš€ Quick Commands ### Development ```bash # Start development (Real API) flutter run -d chrome # Run tests flutter test # Generate code (Freezed, JsonSerializable) flutter pub run build_runner build --delete-conflicting-outputs # API integration test ./test_api_integration.sh # Start backend API (별도 터미널) cd /Users/maximilian.j.sul/Documents/flutter/superport_api cargo run # View API logs cd /Users/maximilian.j.sul/Documents/flutter/superport_api tail -f logs/api.log ``` ### API Configuration ``` Base URL: http://43.201.34.104:8080/api/v1 Test Account: admin@superport.kr / admin123! API Source Code: /Users/maximilian.j.sul/Documents/flutter/superport_api ``` ## πŸ“ž Team Contacts - **Backend API Issues**: Rust λ°±μ—”λ“œ νŒ€ - **UI/UX Questions**: λ””μžμΈ νŒ€ - **Business Logic**: ν”„λ‘œλ•νŠΈ λ§€λ‹ˆμ € --- **Project Stage**: Development (70% Complete) **Next Milestone**: Beta Release (2025-02-01) **Last Updated**: 2025-01-09 **Version**: 3.1