Files
Benjamin Boenisch 5a31f52310 Initial commit: breakpilot-lehrer - Lehrer KI Platform
Services: Admin-Lehrer, Backend-Lehrer, Studio v2, Website,
Klausur-Service, School-Service, Voice-Service, Geo-Service,
BreakPilot Drive, Agent-Core

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-11 23:47:26 +01:00

60 lines
1.8 KiB
Markdown

# RAG Admin Page Refactoring
## Status: Partially Refactored
The large `page.tsx` (2,964 lines) has been partially split into smaller components.
## Structure
```
website/app/admin/rag/
├── page.tsx # Main page (needs update to import components)
├── types.ts # Shared type definitions (150 lines)
├── components/
│ ├── index.ts # Component exports
│ ├── CollectionsTab.tsx # Collections management (593 lines)
│ ├── UploadTab.tsx # File upload (327 lines)
│ ├── IngestionTab.tsx # Ingestion control (512 lines)
│ └── DocumentsTab.tsx # Document browser (425 lines)
└── wizard/ # Existing wizard subdirectory
```
## Extracted Components
| Component | Lines | Description |
|-----------|-------|-------------|
| CollectionsTab | 593 | Collection CRUD, CollectionCard |
| UploadTab | 327 | File upload with drag & drop |
| IngestionTab | 512 | Ingestion control, progress, history |
| DocumentsTab | 425 | Document list, filtering, preview |
## Remaining in page.tsx
- SearchTab (~230 lines)
- MetricsTab (~110 lines)
- SystemInfoTab (~350 lines)
- Main component and tab navigation (~290 lines)
## TODO
1. Update `page.tsx` to import extracted components
2. Extract remaining tabs (SearchTab, MetricsTab, SystemInfoTab)
3. Add comprehensive tests
## Types
All shared types are in `types.ts`:
- Collection, CreateCollectionData
- IngestionStatus, SearchResult
- UploadResult, LiveProgress
- IndexedStats, PendingFile
- IndexedDocument, DocumentContent
- SystemInfo, TabId
## Usage
```tsx
import { CollectionsTab, UploadTab, IngestionTab, DocumentsTab } from './components'
import type { Collection, IngestionStatus } from './types'
```