# TK-MP BOM 관리 시스템 - 프론트엔드 React + Material-UI 기반의 BOM(Bill of Materials) 관리 시스템 프론트엔드입니다. ## 🚀 기능 - **대시보드**: 프로젝트 현황 및 통계 확인 - **프로젝트 관리**: 프로젝트 생성, 수정, 삭제 - **파일 업로드**: 드래그&드롭으로 Excel 파일 업로드 - **자재 목록**: 검색, 필터링, 정렬이 가능한 자재 테이블 ## 🛠️ 기술 스택 - **React 18** - 컴포넌트 기반 UI 라이브러리 - **Material-UI (MUI)** - 현대적인 UI 컴포넌트 - **Vite** - 빠른 개발 서버 및 빌드 도구 - **React Dropzone** - 드래그&드롭 파일 업로드 - **MUI DataGrid** - 고성능 데이터 테이블 ## 📦 설치 및 실행 ```bash # 의존성 설치 npm install # 개발 서버 실행 (http://localhost:3000) npm run dev # 프로덕션 빌드 npm run build # 빌드 미리보기 npm run preview ``` ## 🔗 백엔드 연동 백엔드 서버가 `http://localhost:8000`에서 실행되고 있어야 합니다. ```bash # 백엔드 서버 실행 (별도 터미널) cd ../backend source venv/bin/activate uvicorn app.main:app --reload ``` ## 📁 프로젝트 구조 ``` frontend/ ├── src/ │ ├── components/ │ │ ├── Dashboard.jsx # 대시보드 │ │ ├── FileUpload.jsx # 파일 업로드 │ │ ├── MaterialList.jsx # 자재 목록 │ │ └── ProjectManager.jsx # 프로젝트 관리 │ ├── App.jsx # 메인 앱 │ ├── main.jsx # 엔트리 포인트 │ └── index.css # 전역 스타일 ├── package.json └── vite.config.js ``` ## 🎯 주요 컴포넌트 ### Dashboard - 프로젝트 통계 및 현황 표시 - 최근 활동 목록 - 실시간 데이터 업데이트 ### FileUpload - 드래그&드롭 인터페이스 - Excel 파일 검증 - 업로드 진행률 표시 - 배치 파일 처리 ### MaterialList - 페이지네이션이 있는 데이터 그리드 - 실시간 검색 및 필터링 - CSV 내보내기 - 정렬 및 컬럼 관리 ### ProjectManager - 프로젝트 CRUD 작업 - 카드 형태의 프로젝트 표시 - 모달 기반 편집 ## 📱 반응형 디자인 - 모바일, 태블릿, 데스크톱 지원 - Material-UI의 Grid 시스템 활용 - 적응형 네비게이션 ## 🔧 개발 도구 - **ESLint** - 코드 품질 검사 - **Vite HMR** - 빠른 핫 리로드 - **React DevTools** - 디버깅 지원 ## 🚀 성능 최적화 - 컴포넌트 지연 로딩 - 메모이제이션 적용 - 번들 크기 최적화 - API 요청 최적화