Commit Graph

3 Commits

Author SHA1 Message Date
lasta
8681ac8ed3 Phase 1.1: 프로젝트 생성 — 폼 기반 도메인 선택 + 인라인 JSON 생성
백엔드 (crawler_platform/app/api/routes.py):
- POST /projects/inline 추가: 파일 시스템 의존 없이 JSON 본문으로 ProjectConfig 인라인 생성
  - CreateProjectInlineRequest + InlineSourceConfig Pydantic 모델
- GET /domains 추가: 미리 정의된 도메인 목록 (perfume, tea, coffee, candle, supplement, gift)
  - 각 도메인의 entity_types, predicates, attribute_count 반환

프론트엔드 API 레이어 (src/lib/api/):
- domains.ts: domainsApi.list + Zod 스키마
- ontology.ts: ontologyApi.get(domain) + Zod 스키마
- projects.ts: createInline() 메서드 + CreateProjectInlineRequest 타입

TanStack Query 훅 (src/hooks/):
- useDomains: 도메인 목록 (30분 staleTime)
- useOntology(domain): 도메인 상세
- useCreateProjectInline: 인라인 생성 mutation + projects 캐시 무효화
- queryKeys에 domains, ontology 키 팩토리 추가

UI 프리미티브 (src/components/ui/):
- input.tsx, label.tsx, textarea.tsx

OnboardingPage 완전 교체 (src/pages/OnboardingPage.tsx):
- react-hook-form + zod 검증 (project_name 정규식, 도메인 필수)
- 도메인 카드 그리드 선택 (entity/predicate 개수 미리보기)
- 백엔드 /projects/inline POST → 성공 시 sonner 토스트 + /sources/{name}으로 이동
- 로딩/에러/재시도 UI

기타:
- Vite proxy에 /domains prefix 추가
- i18n locale 키 onboarding.* 추가 (한/영)

다음 단계: Phase 1.2 — 온톨로지 엔티티/클레임 직접 입력 + URL 추출

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-14 14:46:03 +09:00
lasta
1be2c7d3a3 Phase 0: React environment setup + project initialization
구현 사항:
1. React + TypeScript 마이그레이션 시작
   - package.json: React, Redux Toolkit, TanStack Query, shadcn/ui dependencies 추가
   - vite.config.js: React 플러그인 + Phase 5/7 API 프록시 추가
   - tsconfig.json, tsconfig.node.json 추가

2. Redux 스토어 설정
   - stores/ontologySlice.ts: 온톨로지 상태 관리
   - stores/crawlSlice.ts: 크롤링 진행 상태
   - stores/uiSlice.ts: UI 상태

3. 리액트 진입점 및 기본 컴포넌트
   - src/main.tsx: React 앱 초기화
   - src/App.tsx: 라우팅 설정 (대시보드, 온보딩, 소스, 크롤, 검증)
   - 5개 페이지 컴포넌트 (placeholder)

4. 스타일 및 설정
   - tailwind.config.js: Tailwind 설정
   - src/styles/globals.css: 글로벌 스타일
   - postcss.config.js: PostCSS 설정
   - src/i18n.ts: i18next 다국어 설정
   - src/lib/queryClient.ts: React Query 설정

5. TypeScript 타입 정의
   - src/stores/slices: 각 Redux slice의 TypeScript 타입

프로젝트 구조:
crawler_platform/app/web/frontend/
├── src/
│   ├── main.tsx (React 진입점)
│   ├── App.tsx (라우팅)
│   ├── pages/ (4개 페이지 컴포넌트)
│   ├── stores/ (Redux 스토어 + slices)
│   ├── lib/ (유틸리티)
│   ├── styles/ (CSS)
│   └── i18n.ts (다국어 설정)
├── index.html (업데이트: React root)
├── package.json (의존성 추가)
├── vite.config.js (React 플러그인)
├── tsconfig.json (TypeScript 설정)
├── tailwind.config.js (Tailwind 설정)
└── postcss.config.js (PostCSS 설정)

다음 단계:
- npm install로 의존성 설치
- Phase 1: 온톨로지 업로더 구현
- Phase 1: 참고 사이트 매니저 구현

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-05-14 13:52:45 +09:00
LASTA_DEV01\lasta
2e9204243d 참고소스 수정본 2026-05-12 19:40:31 +09:00