Data Architecture Document (DAD)
AI-First Learner Intelligence Platform
Version: 1.0
Scope: Hackathon MVP, Quiz Evidence First
Audience: Product, AI Engineering, Backend Engineering, Data Engineering, Assessment Design
1. Purpose
Tài liệu này mô tả chi tiết kiến trúc dữ liệu cho hệ thống AI-First Learner Intelligence Platform.
Hệ thống có nhiệm vụ thực hiện vòng lặp dữ liệu:
- Thu thập bằng chứng học tập (evidence) từ người học.
- Chuẩn hóa bằng chứng (evidence normalization).
- Đánh giá người học ở cấp độ chỉ báo (indicator assessment).
- Tổng hợp điểm số lên cấp kỹ năng (skill) và năng lực tổng quát (competency).
- Cập nhật trạng thái mô hình người học (Learner Model).
- Định vị khoảng cách tri thức (knowledge gap).
- Đưa ra đề xuất học tập thích ứng (recommendation).
- Theo dõi tiến trình cải thiện của học viên sau can thiệp.
NOTE
Trong phạm vi MVP của Hackathon, hệ thống chỉ sử dụng quiz evidence làm dữ liệu đầu vào chính. Tuy nhiên, thiết kế mô hình dữ liệu lõi (canonical schemas) bắt buộc phải hỗ trợ tích hợp thêm các loại bằng chứng thực tế khác (GitHub commits, sản phẩm thiết kế, video thuyết trình, v.v.) về sau mà không cần thay đổi cấu trúc nền tảng.
2. Core Data Principle
Nguyên tắc luồng dữ liệu trung tâm của toàn bộ hệ thống:
Evidence (Bằng chứng thô)
│
▼
Assessment (AI đánh giá)
│
▼
Learner Model (Mô hình người học)
│
▼
Recommendation (Đề xuất lộ trình)
│
▼
New Learning Action (Hành động học tập mới)
│
▼
New Evidence (Bằng chứng mới ➔ Vòng lặp kín)Source of Truth
- Evidence là nguồn dữ liệu gốc (Source of Truth).
- Learner Model không phải là nguồn dữ liệu gốc, nó chỉ đại diện cho trạng thái niềm tin hiện tại của AI về trình độ của học viên được suy diễn từ bằng chứng thực nghiệm.
- Nếu tiêu chí Rubric, quy tắc tính điểm, hoặc phiên bản AI Model thay đổi, hệ thống bắt buộc phải có khả năng tính toán lại toàn bộ trạng thái năng lực từ đầu dựa trên lịch sử raw evidence.
3. Data Architecture Overview
┌──────────────────────────────────────────────┐
│ LEARNING DESIGN │
│ Competency / Skill / Indicator / Rubric │
│ Question Bank / Task Library │
└──────────────────────┬───────────────────────┘
│
▼
┌──────────────────────────────────────────────┐
│ EVIDENCE LAYER │
│ Quiz Attempt / Answer / Response Time │
│ Evidence Validation / Evidence Metadata │
└──────────────────────┬───────────────────────┘
│
▼
┌──────────────────────────────────────────────┐
│ ASSESSMENT LAYER │
│ Indicator Assessment │
│ Skill Aggregation │
│ Competency Aggregation │
│ Assessment Metadata │
└──────────────────────┬───────────────────────┘
│
▼
┌──────────────────────────────────────────────┐
│ LEARNER MODEL LAYER │
│ Current State / Confidence / Trend │
│ Knowledge Gaps / Priority / History │
└──────────────────────┬───────────────────────┘
│
▼
┌──────────────────────────────────────────────┐
│ STRATEGY LAYER │
│ Recommendation / Next Task / Intervention │
│ Outcome / Learning Gain │
└──────────────────────────────────────────────┘4. Core Data Domains
Hệ thống được tổ chức phân chia thành 8 phân vùng dữ liệu cốt lõi:
- 4.1 Identity Domain: Quản lý định danh cá nhân (Learner, Mentor, Admin, Cohort, Roles).
- 4.2 Learning Design Domain: Định nghĩa cấu trúc khung năng lực (Competency, Skill, Indicator, Rubrics).
- 4.3 Assessment Content Domain: Quản lý ngân hàng câu hỏi, quiz và liên kết chỉ báo (Questions, Options, Quiz mapping).
- 4.4 Evidence Domain: Ghi nhận hoạt động nộp bài và metadata của bằng chứng (Quiz Attempts, Responses, Validation status).
- 4.5 Assessment Domain: Lưu trữ snapshot kết quả đánh giá các cấp độ và diễn giải của AI (Indicator/Skill/Competency Assessments).
- 4.6 Learner Model Domain: Trực quan hóa trạng thái năng lực hiện tại của người học (Mastery scores, Trend, Priority gap).
- 4.7 Strategy Domain: Đưa ra quyết định sư phạm gợi ý (Recommendations, Next task, Learning interventions).
- 4.8 AI & Model Operations Domain: Giám sát vận hành AI (Model versions, Prompts, LLM call metrics).
5. Canonical Entity Relationship Model
Sơ đồ phân cấp thực thể trong hệ thống:
Organization
│
├── Cohort (Lớp học/Nhóm đối tượng)
│ └── Learner (Người học)
│
└── Program (Chương trình đào tạo)
└── Course (Khóa học cụ thể)
└── Assessment (Đánh giá chung)
└── Quiz (Bài trắc nghiệm)
Competency Framework (Khung năng lực)
└── Competency (Năng lực lớn)
└── Skill (Kỹ năng)
└── Indicator (Chỉ báo hành vi)
└── Rubric (Tiêu chí định lượng)
Quiz
└── Question (Câu hỏi)
└── Question–Indicator Mapping (Ánh xạ câu hỏi - chỉ báo)
Learner
└── Assessment Attempt (Lần thực hiện kiểm tra)
└── Question Response (Câu trả lời chi tiết)
└── Evidence (Bằng chứng được ghi nhận)
Evidence
└── Indicator Assessment (AI chấm điểm chỉ báo)
└── Assessment Snapshot (Bản chụp kết quả tại thời điểm)
└── Learner Model Update (Cập nhật mô hình người học)
Learner Model
└── Knowledge Gap (Lỗ hổng kiến thức)
└── Recommendation (Gợi ý học tập thích ứng)
└── Learning Action (Hành động học tập thực tế)
└── New Evidence (Sinh bằng chứng mới)6. Data Model Schemas
Dưới đây là chi tiết các cấu trúc dữ liệu JSON biểu diễn cho các thực thể cốt lõi trong hệ thống:
6.1 Learner
View Learner Schema
Không lưu các thông tin cá nhân không liên quan trực tiếp đến hoạt động đánh giá (để đảm bảo tối giản dữ liệu và bảo mật). Khuyến khích sử dụng learner ID ẩn danh.
{
"learner_id": "lrn_001",
"organization_id": "org_001",
"cohort_id": "cohort_001",
"external_reference": "student_2938",
"status": "active",
"created_at": "2026-07-14T08:00:00+07:00",
"updated_at": "2026-07-14T08:00:00+07:00"
}6.2 Learner Profile
View Learner Profile Schema
Chứa các thông tin khai báo chủ động từ người học hoặc cơ sở đào tạo.
{
"learner_id": "lrn_001",
"goal": "Become a Product Manager",
"experience_level": "beginner",
"available_minutes_per_day": 30,
"preferred_learning_format": "practice_first",
"target_completion_date": "2026-10-01",
"updated_at": "2026-07-14T08:00:00+07:00"
}TIP
Phân biệt:
- Learner Profile: Các dữ kiện tĩnh và sở thích tự khai báo.
- Learner Model: Trạng thái suy luận động và niềm tin khoa học của AI về năng lực thực tế.
6.3 Competency Framework
View Competency Framework Schema
{
"framework_id": "cf_product_001",
"name": "Product Thinking Foundation",
"version": "1.0",
"status": "published",
"effective_from": "2026-07-01",
"created_by": "usr_admin_001"
}6.4 Competency
View Competency Schema
{
"competency_id": "cmp_product_thinking",
"framework_id": "cf_product_001",
"name": "Product Thinking",
"description": "Ability to understand users, problems, value and product decisions.",
"importance": 1.0,
"version": "1.0",
"status": "published"
}6.5 Skill
View Skill Schema
{
"skill_id": "skill_jtbd_analysis",
"competency_id": "cmp_product_thinking",
"name": "JTBD Analysis",
"description": "Ability to identify jobs, pains and gains.",
"weight": 0.4,
"prerequisite_skill_ids": [],
"version": "1.0"
}6.6 Indicator
View Indicator Schema
Đơn vị nhỏ nhất để hệ thống thực hiện đo lường hành vi năng lực.
{
"indicator_id": "ind_identify_pains",
"skill_id": "skill_jtbd_analysis",
"name": "Identify Customer Pains",
"description": "Learner can distinguish customer pains from jobs and gains.",
"importance": 0.9,
"is_mandatory": true,
"prerequisite_indicator_ids": [
"ind_identify_jobs"
],
"version": "1.0"
}6.7 Rubric
View Rubric Schema
{
"rubric_id": "rubric_pains_v1",
"indicator_id": "ind_identify_pains",
"assessment_type": "quiz",
"version": "1.0",
"levels": [
{
"level": 1,
"min_score": 0,
"max_score": 24,
"descriptor": "Cannot identify customer pains."
},
{
"level": 2,
"min_score": 25,
"max_score": 49,
"descriptor": "Identifies obvious pains but confuses pains with jobs or gains."
},
{
"level": 3,
"min_score": 50,
"max_score": 74,
"descriptor": "Identifies relevant pains in familiar contexts."
},
{
"level": 4,
"min_score": 75,
"max_score": 100,
"descriptor": "Consistently identifies and prioritizes specific pains across contexts."
}
],
"status": "published"
}6.8 Question
View Question Schema
{
"question_id": "q_001",
"question_type": "multiple_choice",
"content": "Which statement best represents a customer pain?",
"correct_option_id": "opt_b",
"difficulty": 0.55,
"status": "published",
"version": "1.0"
}6.9 Question Option
View Question Option Schema
{
"option_id": "opt_b",
"question_id": "q_001",
"label": "B",
"content": "The customer cannot identify which campaign is losing money.",
"is_correct": true
}6.10 Question–Indicator Mapping
View Question–Indicator Mapping Schema
{
"mapping_id": "map_q001_pains",
"question_id": "q_001",
"indicator_id": "ind_identify_pains",
"weight": 1.0,
"mapping_role": "primary",
"review_status": "expert_approved",
"version": "1.0"
}IMPORTANT
MVP thiết kế theo định hướng: Một câu hỏi ➔ Một chỉ báo năng lực chính (Primary Indicator) để giữ cơ chế chấm điểm và thẩm định không bị quá phức tạp.
6.11 Distractor Mapping
View Distractor Mapping Schema
{
"question_id": "q_001",
"option_id": "opt_a",
"error_pattern": "confuses_pain_with_gain",
"target_indicator_id": "ind_identify_pains",
"severity": "medium"
}6.12 Assessment
View Assessment Schema
{
"assessment_id": "asm_001",
"name": "JTBD Diagnostic Assessment",
"assessment_type": "quiz",
"purpose": "diagnostic",
"framework_id": "cf_product_001",
"status": "published",
"version": "1.0"
}6.13 Quiz
View Quiz Schema
{
"quiz_id": "quiz_001",
"assessment_id": "asm_001",
"question_ids": [
"q_001",
"q_002",
"q_003"
],
"time_limit_minutes": 20,
"max_attempts": 3
}6.14 Assessment Attempt
View Assessment Attempt Schema
{
"attempt_id": "att_001",
"assessment_id": "asm_001",
"learner_id": "lrn_001",
"attempt_number": 1,
"started_at": "2026-07-14T08:30:00+07:00",
"submitted_at": "2026-07-14T08:45:00+07:00",
"status": "completed"
}6.15 Question Response
View Question Response Schema
{
"response_id": "resp_001",
"attempt_id": "att_001",
"question_id": "q_001",
"selected_option_id": "opt_a",
"is_correct": false,
"response_time_seconds": 42,
"self_confidence": 3,
"submitted_at": "2026-07-14T08:32:00+07:00"
}6.16 Evidence
View Evidence Schema
Thực thể chuẩn hóa trung tâm đại diện cho bằng chứng học tập.
{
"evidence_id": "ev_001",
"learner_id": "lrn_001",
"evidence_type": "quiz",
"source_type": "learner_submission",
"source_reference_id": "att_001",
"assessment_id": "asm_001",
"task_id": null,
"captured_at": "2026-07-14T08:45:00+07:00",
"validation_status": "validated",
"quality_status": "usable",
"schema_version": "1.0"
}6.17 Evidence Payload
View Evidence Payload Schema
{
"evidence_id": "ev_001",
"payload_type": "quiz_attempt",
"payload": {
"attempt_id": "att_001",
"responses": [
{
"question_id": "q_001",
"is_correct": false,
"response_time_seconds": 42
}
]
}
}6.18 Evidence Quality Metrics
View Evidence Quality Metrics Schema
{
"evidence_quality_id": "eq_001",
"evidence_id": "ev_001",
"completeness": 1.0,
"validity": 0.95,
"freshness": 1.0,
"reliability": 0.8,
"coverage": 0.75,
"quality_flags": [],
"calculated_at": "2026-07-14T08:46:00+07:00"
}6.19 Indicator Assessment
View Indicator Assessment Schema
{
"indicator_assessment_id": "ia_001",
"assessment_snapshot_id": "snap_001",
"learner_id": "lrn_001",
"indicator_id": "ind_identify_pains",
"score": 42,
"level": 2,
"confidence": 0.67,
"evidence_ids": [
"ev_001"
],
"rubric_id": "rubric_pains_v1",
"scoring_model_version": "score_v1",
"explanation": "The learner answered 3 of 8 mapped questions correctly.",
"created_at": "2026-07-14T08:47:00+07:00"
}6.20 Skill Assessment
View Skill Assessment Schema
{
"skill_assessment_id": "sa_001",
"assessment_snapshot_id": "snap_001",
"learner_id": "lrn_001",
"skill_id": "skill_jtbd_analysis",
"score": 61,
"level": 2,
"confidence": 0.74,
"aggregation_rule_version": "skill_agg_v1",
"indicator_assessment_ids": [
"ia_001",
"ia_002",
"ia_003"
]
}6.21 Competency Assessment
View Competency Assessment Schema
{
"competency_assessment_id": "ca_001",
"assessment_snapshot_id": "snap_001",
"learner_id": "lrn_001",
"competency_id": "cmp_product_thinking",
"score": 64,
"level": 2,
"confidence": 0.72,
"aggregation_rule_version": "competency_agg_v1"
}6.22 Assessment Snapshot
View Assessment Snapshot Schema
Đại diện cho trạng thái bất biến tại thời điểm đánh giá. Không bao giờ được ghi đè bản ghi cũ để phục vụ truy vết.
{
"assessment_snapshot_id": "snap_001",
"learner_id": "lrn_001",
"assessment_id": "asm_001",
"evidence_ids": [
"ev_001"
],
"rubric_version": "1.0",
"scoring_model_version": "score_v1",
"aggregation_rule_version": "agg_v1",
"confidence_model_version": "conf_v1",
"llm_model": "provider/model-name",
"prompt_version": "prompt_v1",
"created_at": "2026-07-14T08:47:00+07:00",
"status": "final"
}6.23 Assessment Metadata
View Assessment Metadata Schema
{
"assessment_snapshot_id": "snap_001",
"evidence_count": 24,
"evidence_diversity": 1,
"evidence_freshness": 0.98,
"coverage": 0.83,
"agreement": null,
"missing_indicator_count": 2,
"assessment_latency_ms": 1830
}6.24 Learner Model
View Learner Model Schema
Lưu giữ con trỏ chỉ tới snapshot trạng thái hiện tại.
{
"learner_model_id": "lm_001",
"learner_id": "lrn_001",
"current_snapshot_id": "snap_001",
"model_version": 3,
"updated_at": "2026-07-14T08:47:00+07:00"
}6.25 Learner Indicator State
View Learner Indicator State Schema
{
"learner_id": "lrn_001",
"indicator_id": "ind_identify_pains",
"current_score": 42,
"current_level": 2,
"confidence": 0.67,
"trend": "insufficient_data",
"priority_score": 0.81,
"last_assessed_at": "2026-07-14T08:47:00+07:00",
"source_snapshot_id": "snap_001"
}6.26 Learner Skill State
View Learner Skill State Schema
{
"learner_id": "lrn_001",
"skill_id": "skill_jtbd_analysis",
"current_score": 61,
"current_level": 2,
"confidence": 0.74,
"trend": "stable",
"last_assessed_at": "2026-07-14T08:47:00+07:00"
}6.27 Learner Competency State
View Learner Competency State Schema
{
"learner_id": "lrn_001",
"competency_id": "cmp_product_thinking",
"current_score": 64,
"current_level": 2,
"confidence": 0.72,
"trend": "improving",
"last_assessed_at": "2026-07-14T08:47:00+07:00"
}6.28 Trend Record
View Trend Record Schema
{
"trend_id": "trend_001",
"learner_id": "lrn_001",
"entity_type": "indicator",
"entity_id": "ind_identify_pains",
"trend_label": "improving",
"slope": 4.8,
"window_size": 3,
"data_point_count": 3,
"trend_confidence": 0.61,
"trend_model_version": "trend_v1",
"calculated_at": "2026-07-14T08:48:00+07:00"
}6.29 Knowledge Gap
View Knowledge Gap Schema
{
"knowledge_gap_id": "gap_001",
"learner_id": "lrn_001",
"entity_type": "indicator",
"entity_id": "ind_identify_pains",
"gap_score": 0.58,
"severity": "high",
"importance": 0.9,
"confidence": 0.67,
"status": "active",
"detected_at": "2026-07-14T08:48:00+07:00"
}6.30 Recommendation
View Recommendation Schema
{
"recommendation_id": "rec_001",
"learner_id": "lrn_001",
"target_entity_type": "indicator",
"target_entity_id": "ind_identify_pains",
"recommendation_type": "next_assessment",
"recommended_task_id": "task_pain_quiz_002",
"priority_score": 0.81,
"rationale": "This indicator is low, important and a prerequisite for Value Proposition.",
"confidence": 0.75,
"model_version": "recommend_v1",
"status": "active",
"created_at": "2026-07-14T08:49:00+07:00"
}6.31 Learning Action
View Learning Action Schema
{
"learning_action_id": "action_001",
"recommendation_id": "rec_001",
"learner_id": "lrn_001",
"task_id": "task_pain_quiz_002",
"status": "assigned",
"assigned_at": "2026-07-14T08:50:00+07:00",
"completed_at": null
}6.32 Outcome
View Outcome Schema
Ghi nhận kết quả sau can thiệp gợi ý của hệ thống để đánh giá chất lượng của thuật toán đề xuất.
{
"outcome_id": "outcome_001",
"learning_action_id": "action_001",
"learner_id": "lrn_001",
"target_indicator_id": "ind_identify_pains",
"before_score": 42,
"after_score": 63,
"learning_gain": 21,
"retention_score": null,
"completed": true,
"measured_at": "2026-07-18T09:00:00+07:00"
}7. Event Model
Hệ thống nên vận hành theo mô hình kiến trúc hướng sự kiện (Event-Driven Architecture) với các sự kiện cốt lõi:
learner.createdassessment.assignedassessment.startedquestion.answeredassessment.submittedevidence.createdevidence.validatedassessment.started_processingindicator.assessedskill.aggregatedcompetency.aggregatedassessment.snapshot_createdlearner_model.updatedknowledge_gap.detectedrecommendation.createdlearning_action.assignedlearning_action.completedoutcome.measured
Event Envelope Schema
{
"event_id": "evt_001",
"event_type": "assessment.submitted",
"occurred_at": "2026-07-14T08:45:00+07:00",
"actor_id": "lrn_001",
"entity_id": "att_001",
"entity_type": "assessment_attempt",
"schema_version": "1.0",
"payload": {}
}8. Data Processing Pipeline
Luồng xử lý dữ liệu qua 17 bước tuần tự:
1. Học viên nộp bài quiz
│
▼
2. Khởi tạo Assessment Attempt ➔ 3. Ghi nhận Question Responses
│
▼
4. Tạo lập Evidence Record ➔ 5. Xác thực tính hợp lệ (Validate)
│
▼
6. Truy vấn Question–Indicator Mapping
│
▼
7. Tính toán điểm chỉ báo ➔ 8. Ánh xạ cấp độ Rubric Levels
│
▼
9. Tổng hợp điểm kỹ năng (Skills) ➔ 10. Tổng hợp điểm năng lực (Competencies)
│
▼
11. Tính toán độ tin cậy đánh giá (Confidence Score)
│
▼
12. Kết xuất bản chụp bất biến Assessment Snapshot
│
▼
13. Cập nhật mô hình số của học viên (Learner Model)
│
▼
14. Đo lường xu hướng (Trend) ➔ 15. Phát hiện lỗ hổng tri thức (Knowledge Gaps)
│
▼
16. Sinh đề xuất học tập thích ứng (Adaptive Recommendation)
│
▼
17. Giao nhiệm vụ học tập mới (Next Learning Action)9. Deterministic vs AI-Generated Data
9.1 Deterministic Data
Các dữ liệu mang tính định lượng tuyệt đối, bắt buộc phải tính toán thông qua code logic hoặc thống kê thông thường để tối ưu tài nguyên và chi phí:
- Điểm số bài Quiz, số lượng câu trả lời chính xác.
- Trọng số tính điểm chỉ báo, tổng hợp điểm kỹ năng và năng lực.
- Số lượng bằng chứng, độ phủ của bài test, độ mới bằng chứng.
- Xu hướng phát triển (Trend), các cấu phần toán học của độ tự tin.
9.2 AI-Generated Data
Các dữ liệu định tính phi cấu trúc, được sinh ra từ quá trình suy luận và hiểu ngữ cảnh của LLM:
- Diễn giải sư phạm chấm điểm (Grader explanation).
- Lý do sư phạm của đề xuất học tập (Recommendation rationale).
- Phân tích và diễn giải lỗ hổng kiến thức (Knowledge gap narrative).
- Nhận xét cá nhân hóa gửi cho học viên.
10. Confidence Data Model
Chỉ số tự tin (Confidence) không phải là một con số do AI tự đánh giá cảm tính, mà là kết quả tính toán có công thức kiểm chứng:
$$\text{Confidence} = 0.25 \times \text{Sufficiency} + 0.20 \times \text{Coverage} + 0.20 \times \text{ItemQuality} + 0.15 \times \text{Freshness} + 0.10 \times \text{Stability} + 0.10 \times \text{Agreement}$$
{
"entity_type": "indicator",
"entity_id": "ind_identify_pains",
"evidence_sufficiency": 0.65,
"coverage": 0.8,
"item_quality": 0.74,
"freshness": 1.0,
"stability": 0.6,
"agreement": null,
"final_confidence": 0.72,
"model_version": "conf_v1"
}11. Trend Data Model
Cơ chế tính toán xu hướng (Trend) yêu cầu tối thiểu 3 điểm dữ liệu (data points) để đảm bảo độ tin cậy thống kê:
- Ít hơn 3 lần đo: Ghi nhận trạng thái
insufficient_data. - Từ 3 lần đo trở lên: Ước lượng xu hướng
improving/stable/decliningdựa trên hệ số góc (slope) và độ phân tán dữ liệu.
12. Evidence Extensibility
Hệ thống thiết kế theo cơ chế kiến trúc Adapter (Evidence Adapters). Khi mở rộng sang các dạng bằng chứng mới như GitHub commits hay Video thuyết trình, hệ thống chỉ cần bổ sung Adapter tương ứng để chuyển đổi dữ liệu gốc thành đối tượng Evidence chuẩn hóa mà không làm ảnh hưởng đến tầng xử lý đánh giá phía sau.
[Raw Quiz Data] ➔ [Quiz Adapter] ──┐
[Raw Video Files] ➔ [Video Adapter] ──┼─➔ [Canonical Evidence Object]
[Raw GitHub Commits] ➔ [GitHub Adapter] ──┘13. Storage Architecture
- Cloudflare D1: Lưu trữ toàn bộ dữ liệu có cấu trúc (Learners, Frameworks, Questions, Attempts, Snapshots, Model states).
- Cloudflare R2: Lưu trữ file thô dung lượng lớn (PDF bài luận, mã nguồn, tệp tin ghi âm/video thuyết trình).
- Cloudflare KV: Lưu trữ bộ nhớ cache tốc độ cao cho Rubrics, ngân hàng câu hỏi, trạng thái tạm thời và các cờ tính năng (Feature Flags).
- Cloudflare Durable Objects: Lưu trữ trạng thái phiên làm việc trực tuyến và quản lý đồng bộ tiến trình (concurrency control) khi cập nhật Learner Model.
14. Data Versioning
Tất cả các định nghĩa học liệu, tiêu chí đánh giá, và quy tắc tính toán (Competency, Skill, Rubrics, Scoring rules) đều được định danh phiên bản độc lập (Versioning).
IMPORTANT
Một phiên bản đối tượng đã được đưa vào sử dụng trong đánh giá thực tế sẽ trở thành bất biến (immutable). Mọi chỉnh sửa tiêu chí về sau đều phải tạo ra một phiên bản mới (ví dụ: Rubric v1.1 thay vì ghi đè lên v1.0) nhằm bảo vệ tính toàn vẹn của lịch sử đánh giá.
15. Data Lineage
Hệ thống đảm bảo tính minh bạch hoàn toàn từ ngọn tới gốc:
- Mọi điểm số năng lực đều phải truy vết ngược được về điểm kỹ năng, điểm chỉ báo, snapshot đánh giá, và tệp bằng chứng gốc.
- Mọi đề xuất học tập đều phải truy vết ngược được về khoảng cách kiến thức và trạng thái Learner Model tại thời điểm đưa ra quyết định.
16. Data Quality Framework
Hệ thống thiết lập các chỉ số giám sát chất lượng dữ liệu trên 5 khía cạnh cốt lõi:
- Evidence Quality: completeness, validity, freshness, reliability, coverage.
- Mapping Quality: Tỷ lệ câu hỏi chưa map chỉ báo, mức độ bao phủ của ngân hàng câu hỏi.
- Assessment Quality: Sai số tuyệt đối trung bình (MAE), độ ổn định của kết quả chấm điểm chéo.
- Learner Model Quality: Độ chuẩn chuẩn hóa (calibration) của tự tin AI,Contradictory evidence rate.
- Recommendation Quality: Tỷ lệ chấp nhận đề xuất, tỷ lệ hoàn thành, mức độ tiến bộ thực tế của người học sau can thiệp (learning gain).
17. Missing Data Rules
IMPORTANT
Hệ thống tuân thủ nguyên tắc sư phạm: Không có bằng chứng không có nghĩa là năng lực yếu. Trình độ năng lực khi chưa có dữ liệu đánh giá phải được gán trạng thái insufficient_evidence với độ tự tin cực thấp, thay vì gán điểm 0.
18. Reassessment and Rebuild
Khi có sự điều chỉnh về Rubrics hoặc thuật toán chấm điểm mới, hệ thống hỗ trợ tiến trình chạy lại (re-run) trên tập dữ liệu bằng chứng gốc để cập nhật lại mô hình năng lực người học sang trạng thái mới nhất một cách chính xác mà không làm hỏng tính lịch sử.
19. Audit Logs
Lưu trữ nhật ký hoạt động có ảnh hưởng đến sư phạm hoặc quyền riêng tư dữ liệu: mốc thời gian, định danh tài khoản thực hiện, loại hành động (cập nhật rubric, chỉnh sửa ánh xạ câu hỏi, override điểm số), phiên bản cũ và phiên bản mới.
20. Privacy and Security
- Data Minimization: Chỉ thu thập và xử lý các điểm dữ liệu liên quan trực tiếp đến đánh giá năng lực sư phạm.
- Access Control: Phân quyền truy cập chặt chẽ (Learner chỉ xem được dữ liệu cá nhân; Mentor xem được dữ liệu lớp học quản lý; Content designer quản lý rubrics/ngân hàng câu hỏi).
- Pseudonymization: Sử dụng định danh người học ngẫu nhiên (
learner_id) trong suốt tiến trình xử lý đánh giá ở backend.
21. Data Retention Policy
| Loại dữ liệu | Thời gian lưu trữ |
|---|---|
| Raw Quiz Evidence | Theo vòng đời tài khoản học viên |
| Assessment Snapshots | Lưu trữ dài hạn phục vụ kiểm toán sư phạm |
| Learner Model Current State | Lưu trữ cho đến khi tài khoản người học bị xóa hoàn toàn |
| LLM Request Logs | Lưu trữ ngắn hạn để audit kỹ thuật |
| Aggregate Analytics | Lưu trữ vĩnh viễn dưới dạng dữ liệu ẩn danh |
22. Core Data APIs
Danh mục các API endpoint dữ liệu lõi:
POST /learners: Tạo người học mới.GET /learners/:id/model: Truy xuất trạng thái năng lực hiện tại.POST /assessments/:id/attempts: Khởi tạo lượt làm bài kiểm tra.POST /attempts/:id/submit: Nộp bài kiểm tra.GET /learners/:id/recommendations: Nhận gợi ý học tập tiếp theo.POST /recommendations/:id/accept: Học viên chấp nhận thực hiện gợi ý.
23. Hackathon MVP Data Scope
Trong phạm vi Hackathon MVP, hệ thống sẽ ưu tiên triển khai lưu trữ D1 cho các thực thể chính: learners, competencies, skills, indicators, rubrics, questions, attempts, responses, evidence, assessment_snapshots, learner_states, và recommendations. Tạm thời hoãn các phân hệ phức tạp như vector embeddings, lineage graph đầy đủ, và retrain pipeline tự động.
24. MVP Data Flow Example
Ví dụ trực quan về số lượng thực thể dữ liệu sinh ra sau khi học viên nộp bài trắc nghiệm 20 câu hỏi:
20 Question Responses ➔ 1 Quiz Attempt ➔ 1 Evidence Record ➔ 6 Indicator Assessments ➔ 2 Skill Assessments ➔ 1 Competency Assessment ➔ 1 Assessment Snapshot ➔ Learner Model Updated ➔ 1 Recommendation25. Future Bayesian Extension
Hệ thống cho phép mở rộng sang mô hình mạng Bayesian và Knowledge Tracing trong tương lai bằng cách tích hợp thêm các tham số xác xuất vào cơ sở dữ liệu: prior probability, probability of learning, guess, slip, và posterior mastery.
26. Future Machine Learning Extension
Khi lượng dữ liệu tích lũy đủ lớn (Trạng thái năng lực đầu vào + Đề xuất can thiệp + Kết quả đầu ra), hệ thống sẽ trích xuất tập dữ liệu huấn luyện (training dataset) để xây dựng các mô hình học máy tự động tối ưu hóa thứ tự ưu tiên đề xuất bài học tiếp theo.
27. Data Governance Ownership
Quyền sở hữu quản trị dữ liệu được phân chia rõ ràng:
- Competency Framework / Rubrics: Thuộc quyền quản lý của hội đồng chuyên môn sư phạm (Academic/Learning Design).
- Question Bank / Mapping: Thuộc quyền quản lý của chuyên gia nội dung (Subject Matter Expert).
- Evidence Pipeline / Model Operations: Thuộc quyền quản lý của đội ngũ kỹ sư dữ liệu và AI (Data/AI Engineers).
28. Core Data Rules
- Bằng chứng học tập (Evidence) là bất biến (immutable).
- Bản chụp kết quả đánh giá (Assessment Snapshot) là bất biến (immutable).
- Learner Model là dữ liệu phái sinh suy diễn từ evidence.
- Thiếu hụt bằng chứng không được tính là năng lực kém (score = null, trạng thái insufficient_evidence).
- Mọi điểm số đo lường đều phải đi kèm chỉ số tự tin (Confidence score).
- Mọi điểm số phải liên kết trực tiếp tới bằng chứng thực tế làm căn cứ.
- Mọi đề xuất học tập phải dựa trên trạng thái Learner Model hiện tại.
- Mọi kết quả xử lý của AI phải được gắn metadata phiên bản rõ ràng.
- Thay đổi Rubrics hoặc ánh xạ bắt buộc phải tạo phiên bản mới.
- Hệ thống hỗ trợ tính toán lại toàn bộ mô hình người học từ đầu dựa trên raw evidence.
29. Final Architecture Summary
Tóm tắt kiến trúc dữ liệu qua 5 lớp chính:
LEARNING DESIGN (Khung năng lực, Rubrics, Ánh xạ câu hỏi)
│
▼
EVIDENCE (Giao bài, Lần thực hiện, Bằng chứng thô)
│
▼
ASSESSMENT (AI chấm điểm chỉ báo, Điểm kỹ năng, Snapshot bất biến)
│
▼
LEARNER INTELLIGENCE (Trạng thái hiện tại, Đo lường xu hướng, Khoảng cách kiến thức)
│
▼
STRATEGY (Đề xuất lộ trình, Can thiệp, Đo lường hiệu quả sau can thiệp)30. Final Design Decision
IMPORTANT
Hệ thống không được thiết kế xoay quanh bảng lưu kết quả bài thi truyền thống (quiz_results). Hệ thống được kiến trúc hóa xoay quanh 3 thực thể lõi độc lập: Evidence, Assessment Snapshot và Learner Model. Do đó, khi hệ thống tích hợp thêm bất kỳ loại bằng chứng học tập mới nào khác ngoài Quiz trắc nghiệm, toàn bộ logic tính toán tích lũy năng lực và thuật toán đề xuất lộ trình ở các tầng phía sau vẫn được giữ nguyên vẹn mà không cần phải tái cấu trúc cơ sở dữ liệu.