Skip to main content

Frontend Handbook Overview

This handbook is for frontend developers and full-stack engineers, helping you understand MimirQ Web's routing structure, component system, and API call layer. Types and paths use OpenAPI / Redoc as the authoritative reference; frontend routes follow web/app/**/page.tsx.

Tech Stack

LayerTechnologyNotes
FrameworkNext.js 14App Router
UI LibraryReact 19Server & Client Components
LanguageTypeScript 5.xStrict mode
StylingTailwind CSSUtility-first
Component Libraryshadcn/uiBased on Radix UI
Data FetchingTanStack QueryProgressive migration (some still use useEffect manual fetch)
State ManagementZustandLightweight global state
Internationalizationnext-intlChinese & English
Package ManagerpnpmWorkspace

Route Tree

Page Route Overview

RoutePageCore Component
/datasetsDataset Listdatasets-page.tsx
/datasets/[id]Dataset Detaildataset-categories/category-tree.tsx
/documentsDocument Management
/chatChat Interfacechat-area.tsx, message-item.tsx
/knowledgeKnowledge Baseknowledge-page.tsx, knowledge-inspector.tsx
/historyChat Historypage-client.tsx
/settingsSystem Settings

API Client Modules

All backend calls are centralized under the web/lib/api/ directory:

FileResponsibility
core.tsRequest base layer (fetch wrapper, error handling, auth headers)
datasets.tsDataset CRUD
documents.tsDocument upload, parsing, status
Other modulesSplit by business domain
Type Generation

web/types/openapi.ts is auto-generated by openapi-typescript; web/types/backend.ts provides alias mappings. After backend Schema changes, run openapi-export to regenerate.

State Management Strategy

ApproachScenarioCurrent Status
TanStack QueryServer data caching & sync8 files use useQuery, expanding
ZustandPure frontend global state (UI preferences, etc.)Light usage
useEffect + useStateManual fetchLegacy, gradually migrating to TanStack Query
Migration Direction

For new features, prefer TanStack Query's useQuery / useMutation. QueryProvider is already configured in layout.tsx.

Key Component Map

ComponentPathDescription
ChatAreaweb/components/chat-area.tsxCore chat area, SSE streaming
MessageItemweb/components/chat/message-item.tsxSingle message rendering (with Markdown)
KnowledgePageweb/components/knowledge/knowledge-page.tsxKnowledge base main page
KnowledgeInspectorweb/components/knowledge/knowledge-inspector.tsxKnowledge base inspector
CategoryTreeweb/components/dataset-categories/category-tree.tsxDataset category tree
DatasetsPageweb/components/datasets/datasets-page.tsxDataset list

Suggested Reading Order

Reading Path
  1. This page -- Big picture
  2. Datasets -- OverviewAPI ClientCatalog UI
  3. Documents -- OverviewAPI ClientState UI
  4. More Modules -- ChatKnowledgeKG
  5. Troubleshooting -- Each domain's troubleshooting / errors page