Initial commit: AuraK人才测评系统基础框架

## 已实现功能
- 题库管理后端API完整实现
- 模板管理页面(Settings-测评模板)
- 评估统计页面
- 人才测评页面(AssessmentView)
- QuestionBank前端服务层

## 技术栈
- 后端: Node.js + NestJS + TypeORM
- 前端: React + TypeScript
- 容器化: Docker Compose

## 已知待完善
- 题库列表页缺少删除按钮
- 题库详情页未实现(题目管理/AI生成/审核)
This commit is contained in:
Developer
2026-05-13 21:32:41 +08:00
parent 0a9588abb7
commit 8686d101cd
22 changed files with 727 additions and 38 deletions
@@ -54,9 +54,8 @@ export class QuestionBankItem {
questionText: string;
@Column({
type: 'enum',
type: 'simple-enum',
enum: QuestionType,
default: QuestionType.SHORT_ANSWER,
})
questionType: QuestionType;
@@ -70,29 +69,26 @@ export class QuestionBankItem {
keyPoints: string[];
@Column({
type: 'enum',
type: 'simple-enum',
enum: QuestionDifficulty,
default: QuestionDifficulty.STANDARD,
})
difficulty: QuestionDifficulty;
@Column({
type: 'enum',
type: 'simple-enum',
enum: QuestionDimension,
default: QuestionDimension.PROMPT,
})
dimension: QuestionDimension;
@Column({ type: 'text', nullable: true })
basis: string | null;
@Column({ name: 'created_by', nullable: true })
@Column({ name: 'created_by', nullable: true, type: 'text' })
createdBy: string | null;
@Column({
type: 'enum',
type: 'simple-enum',
enum: QuestionBankItemStatus,
default: QuestionBankItemStatus.PENDING_REVIEW,
})
status: QuestionBankItemStatus;
@@ -48,22 +48,21 @@ export class QuestionBank {
description: string | null;
@Column({
type: 'enum',
type: 'simple-enum',
enum: QuestionBankStatus,
default: QuestionBankStatus.DRAFT,
})
status: QuestionBankStatus;
@Column({ name: 'created_by', nullable: true })
@Column({ name: 'created_by', nullable: true, type: 'text' })
createdBy: string | null;
@Column({ name: 'reviewed_by', nullable: true })
@Column({ name: 'reviewed_by', nullable: true, type: 'text' })
reviewedBy: string | null;
@Column({ name: 'reviewed_at', nullable: true })
@Column({ name: 'reviewed_at', nullable: true, type: 'datetime' })
reviewedAt: Date | null;
@Column({ name: 'review_comment', nullable: true })
@Column({ name: 'review_comment', nullable: true, type: 'text' })
reviewComment: string | null;
@OneToMany(