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>
124 lines
5.2 KiB
TypeScript
124 lines
5.2 KiB
TypeScript
import type { SystemInfoConfig, Feature } from './types'
|
|
|
|
// Features with proper typing - Removed all school/person crawling features
|
|
const features: Feature[] = [
|
|
{ name: 'Lehrplan-Crawler', status: 'active', description: 'Crawlt NiBiS und KMK fuer Lehrplaene und Erlasse' },
|
|
{ name: 'Dokumenten-Suche', status: 'active', description: 'Volltext-Suche ueber Bildungsdokumente' },
|
|
{ name: 'Bildungsquellen-Verwaltung', status: 'active', description: 'Verwaltet Crawler-Konfigurationen fuer Bildungsbehoerden' },
|
|
{ name: 'RAG-Integration', status: 'planned', description: 'Vector-Suche fuer intelligente Dokumentenabfragen' },
|
|
]
|
|
|
|
export const eduSearchConfig: SystemInfoConfig = {
|
|
title: 'Education Search System-Info',
|
|
description: 'Crawler und Suchsystem fuer Bildungsdokumente (Lehrplaene, Erlasse, Beschluesse).',
|
|
version: '4.0',
|
|
architecture: {
|
|
layers: [
|
|
{ title: 'Frontend', components: ['Admin UI (Next.js)', 'Dokumenten-Suche'], color: '#3b82f6' },
|
|
{ title: 'API Gateway', components: ['edu-search-service (Go, Port 8088)'], color: '#8b5cf6' },
|
|
{ title: 'Crawler', components: ['NiBiS Crawler', 'KMK Crawler', 'Bildungsbehoerden-Crawler'], color: '#10b981' },
|
|
{ title: 'Data Layer', components: ['PostgreSQL (Metadaten)', 'OpenSearch (Volltext)', 'MinIO (Dokumente)'], color: '#f59e0b' },
|
|
],
|
|
},
|
|
features,
|
|
roadmap: [
|
|
{
|
|
phase: 'Phase 1: Dokumenten-Crawler (Abgeschlossen)',
|
|
priority: 'high',
|
|
items: [
|
|
'NiBiS Crawler (Niedersachsen)',
|
|
'KMK Beschluesse-Crawler',
|
|
'Dokumenten-Indexierung',
|
|
'Admin-UI fuer Crawler-Steuerung',
|
|
]
|
|
},
|
|
{
|
|
phase: 'Phase 2: Suche (Aktuell)',
|
|
priority: 'high',
|
|
items: [
|
|
'Volltext-Suche mit OpenSearch',
|
|
'Filter nach Bundesland/Dokumenttyp',
|
|
'Semantische Suche (RAG)',
|
|
'Zitat-Extraktion',
|
|
]
|
|
},
|
|
{
|
|
phase: 'Phase 3: Erweiterung (Q2)',
|
|
priority: 'medium',
|
|
items: [
|
|
'Weitere Bundeslaender-Crawler',
|
|
'Automatische Aenderungserkennung',
|
|
'Push-Benachrichtigungen',
|
|
'API fuer externe Systeme',
|
|
]
|
|
},
|
|
],
|
|
technicalDetails: [
|
|
{ component: 'Backend', technology: 'Go (Gin)', version: '1.21+', description: 'edu-search-service auf Port 8088' },
|
|
{ component: 'Suche', technology: 'OpenSearch', version: '2.11', description: 'Volltext-Indexierung' },
|
|
{ component: 'Datenbank', technology: 'PostgreSQL', version: '15+', description: 'Metadaten und Crawler-Status' },
|
|
{ component: 'Storage', technology: 'MinIO', description: 'Dokument-Speicher (PDFs, etc.)' },
|
|
{ component: 'Frontend', technology: 'Next.js', version: '15', description: 'Admin UI auf Port 3000' },
|
|
],
|
|
auditInfo: [
|
|
{
|
|
category: 'Service Status',
|
|
items: [
|
|
{ label: 'edu-search-service', value: 'Port 8088', status: 'ok' },
|
|
{ label: 'OpenSearch', value: 'Port 9200', status: 'ok' },
|
|
{ label: 'API Latenz', value: '< 100ms', status: 'ok' },
|
|
],
|
|
},
|
|
{
|
|
category: 'Datenquellen',
|
|
items: [
|
|
{ label: 'NiBiS (Niedersachsen)', value: 'Aktiv', status: 'ok' },
|
|
{ label: 'KMK Beschluesse', value: 'Aktiv', status: 'ok' },
|
|
{ label: 'Weitere Bundeslaender', value: 'Geplant', status: 'warning' },
|
|
],
|
|
},
|
|
],
|
|
fullDocumentation: `
|
|
<h2>Education Search - Bildungsdokumente</h2>
|
|
|
|
<h3>1. Uebersicht</h3>
|
|
<p>Das Education Search System crawlt und indexiert Bildungsdokumente aus verschiedenen Quellen:</p>
|
|
<ul>
|
|
<li><strong>NiBiS:</strong> Niedersaechsischer Bildungsserver (Lehrplaene, Erlasse, Curricula)</li>
|
|
<li><strong>KMK:</strong> Beschluesse der Kultusministerkonferenz</li>
|
|
<li><strong>Landesbehoerden:</strong> Bildungsportale der Bundeslaender</li>
|
|
</ul>
|
|
|
|
<h3>2. Architektur</h3>
|
|
<pre>
|
|
┌─────────────┐ ┌─────────────────┐ ┌────────────┐
|
|
│ Admin UI │────▶│ edu-search-svc │────▶│ OpenSearch │
|
|
│ (Next.js) │ │ (Go, :8088) │ │ (:9200) │
|
|
└─────────────┘ └─────────────────┘ └────────────┘
|
|
│
|
|
┌───────┴───────┐
|
|
▼ ▼
|
|
┌──────────┐ ┌──────────┐
|
|
│ PostgreSQL│ │ MinIO │
|
|
│ (Metadaten)│ │ (Dateien)│
|
|
└──────────┘ └──────────┘
|
|
</pre>
|
|
|
|
<h3>3. Crawler-Konfiguration</h3>
|
|
<p>Jeder Crawler wird ueber die Admin-UI konfiguriert:</p>
|
|
<ul>
|
|
<li>Start-URLs und Crawl-Tiefe</li>
|
|
<li>Rate-Limiting (respektiert robots.txt)</li>
|
|
<li>Dokumenttyp-Filter</li>
|
|
<li>Scheduling (taglich/woechentlich)</li>
|
|
</ul>
|
|
|
|
<h3>4. Wichtige Hinweise</h3>
|
|
<ul>
|
|
<li>System crawlt ausschliesslich <strong>Institutionsdaten</strong> (Dokumente, Lehrplaene)</li>
|
|
<li>Keine personenbezogenen Daten werden gesammelt</li>
|
|
<li>Alle Crawls respektieren robots.txt und Rate-Limits</li>
|
|
</ul>
|
|
`,
|
|
}
|