Báo cáo phát triển Synvia Learning Core từ Synvia gốc

Ngày cập nhật: 2026-05-04

1. Bối cảnh

Ban đầu, Synvia đã có một hệ thống LMS tương đối đầy đủ: lớp học, bài tập, bài nộp, chấm điểm, AI grading cũ, dashboard giáo viên/học viên, sale, notification và các luồng quản trị. Tuy nhiên, phần AI grading cũ chủ yếu nằm ở tầng chấm bài: AI trả điểm/feedback, hệ thống lưu kết quả, giáo viên có thể xem hoặc chấm lại.

Từ định hướng của cuốn sách, mục tiêu được nâng lên thành một hệ thống học tập có bằng chứng, trong đó AI không chỉ “chấm bài” mà tham gia vào một vòng học tập có kiểm soát:

  • Rubric và mục tiêu học tập rõ ràng.
  • Feedback có dẫn chứng và hành động tiếp theo.
  • Giáo viên duyệt, sửa, reject hoặc đánh dấu lỗi AI.
  • Học viên sửa bài và phản tư.
  • Lớp học có phân tích lỗi lặp lại.
  • Can thiệp sư phạm được ghi nhận.
  • Hệ thống đo xem feedback/intervention có tạo ra hành động học thật không.

Quyết định kiến trúc là phát triển từ Synvia gốc lên, không tách sản phẩm mới ngay. Lý do: Synvia đã có dữ liệu học viên, lớp, bài tập, bài nộp, AI grading cũ và UI admin/student. Nếu tách riêng quá sớm sẽ mất lợi thế dữ liệu và phải xây lại nhiều luồng nền.

2. Tài liệu nền đã tạo

Đã tạo/hoàn thiện các tài liệu hướng dẫn để định hướng sản phẩm và coding agent:

  • HUONG-DAN-1-THIET-KE-DOMAIN-HE-THONG-EDTECH-CHO-AI-AGENT.md
  • HUONG-DAN-2-CODE-HE-THONG-EDTECH-CHO-AI-AGENT.md
  • PRODUCT-ARCHITECTURE-SYNVIA-LEARNING-CORE.md

Các tài liệu này xác định sản phẩm không phải “LMS có chatbot”, mà là Evidence-based AI Assessment & Teacher Workbench.

3. App mới đã thêm: learning_core

Đã thêm app Django mới tại:

lms/learning_core/

App này được thiết kế như một bounded context mới, không nhồi thêm toàn bộ domain mới vào sy/models/lms.py. Synvia gốc vẫn giữ vai trò nguồn dữ liệu chính cho lớp, bài tập, bài nộp, học viên, giáo viên. learning_core bổ sung các domain còn thiếu:

  • Curriculum/objective/skill.
  • Rubric versioning.
  • AI audit/governance.
  • Assessment result theo rubric.
  • Feedback item có evidence và next action.
  • Teacher review.
  • Submission revision/reflection.
  • Learning event.
  • Error cluster.
  • Intervention.
  • Evaluation dashboard.

4. Các model/domain đã xây

Trong lms/learning_core/models.py, đã tạo các nhóm model chính:

Curriculum và rubric

  • LearningObjective
  • Skill
  • ObjectiveSkill
  • AssignmentObjectiveMap
  • Rubric
  • RubricCriterion
  • AssignmentRubricBinding

Ý nghĩa: chuyển Synvia từ bài tập/chấm điểm rời rạc sang hệ thống có mục tiêu học tập, kỹ năng và rubric version.

AI governance

  • PromptTemplate
  • AIPolicy
  • AIRun
  • AIIncident

Ý nghĩa: mọi tác vụ AI quan trọng phải có policy, data scope, prompt version, model info, output, lỗi và audit trail.

Assessment và feedback

  • AssessmentResult
  • CriterionScore
  • FeedbackItem
  • TeacherReview

Ý nghĩa: AI/teacher/system đều có thể tạo assessment, nhưng feedback không còn là đoạn text tự do. Feedback được tách thành item có category, severity, skill, evidence, feedback text và next action.

Revision và learning evidence

  • SubmissionRevision
  • LearningEvent

Ý nghĩa: sản phẩm ghi lại việc học viên có xem feedback, sửa bài, phản tư hay không. Đây là nền để đo feedback uptake.

Analytics và intervention

  • ErrorCluster
  • Intervention

Ý nghĩa: giáo viên không chỉ duyệt từng bài mà còn nhìn được lỗi lặp lại ở cấp lớp và tạo hành động can thiệp.

5. Tích hợp với Synvia gốc

Đã tích hợp learning_core vào Synvia thay vì làm app độc lập.

Các điểm tích hợp chính:

  • Thêm app learning_core vào INSTALLED_APPS trong lms/dmoj/settings.py.
  • Thêm route admin Learning Core vào lms/sy/urls.py.
  • Thêm route learner /learning/... vào lms/sy/urls.py.
  • Thêm link Learning Core vào sidebar admin.
  • Thêm link Learning Core vào:
  • Trang chi tiết lớp admin.
  • Danh sách bài nộp.
  • Ngân hàng bài tập.
  • Tích hợp AI grading cũ qua lms/sy/tasks.py, để khi AI cũ hoàn tất có thể đồng bộ vào Learning Core.

6. Adapter để không phụ thuộc trực tiếp quá sâu vào Synvia

Đã tạo adapter tại:

lms/learning_core/adapters/synvia.py

Các adapter chính:

  • SynviaClassAdapter
  • SynviaAssignmentAdapter
  • SynviaSubmissionAdapter

Ý nghĩa: Learning Core vẫn dùng dữ liệu Synvia gốc nhưng có lớp chuyển ngữ domain. Điều này giúp sau này nếu Synvia đổi model hoặc tách service, Learning Core không bị khóa cứng hoàn toàn vào cấu trúc cũ.

7. Permission layer

Đã tạo:

lms/learning_core/permissions.py

Các quyền chính:

  • Xác định profile hiện tại.
  • Staff/superuser có quyền rộng.
  • Giáo viên chỉ xem/review lớp của mình.
  • Học viên chỉ xem feedback/revision của bài nộp của mình.
  • Các helper require_can_view_submissionrequire_can_review_submission.

Ý nghĩa: sản phẩm không để AI feedback, learner weakness hoặc dữ liệu bài nộp nhạy cảm lộ tùy tiện cho sale/ops/user không liên quan.

8. AI orchestration và schema guardrail

Đã tạo các file:

  • lms/learning_core/ai/orchestrator.py
  • lms/learning_core/ai/schemas.py
  • lms/learning_core/ai/prompts.py

Đã có:

  • AIRunRequest
  • AIRunResult
  • LearningAIOrchestrator
  • Feedback output schema.
  • Validate feedback payload.
  • Guardrail bắt buộc feedback có evidence và next action.
  • Guardrail tránh các cụm feedback gán nhãn tiêu cực cho người học.
  • Prompt boundary cho feedback: không làm hộ, không phán xét người học, tập trung vào bằng chứng và hành động.

Ý nghĩa: chuyển AI từ “trả text gì cũng được” sang output có schema, có kiểm soát và có audit.

9. Đồng bộ AI grading cũ vào Learning Core

Đã tạo:

lms/learning_core/services/synvia_ai_bridge.py

Chức năng:

  • Đọc AIAssessmentRequest cũ của Synvia.
  • Tìm rubric binding active của assignment.
  • Tránh đồng bộ trùng bằng cách kiểm tra legacy request id.
  • Chuẩn hóa raw response cũ thành payload mới của Learning Core.
  • Tạo AIRun.
  • Tạo AssessmentResult.
  • Tạo FeedbackItem.
  • Ghi LearningEvent.

Đã nối vào task AI cũ trong lms/sy/tasks.py.

Ý nghĩa: không bỏ AI grading cũ; thay vào đó bọc nó vào domain mới có audit, rubric, feedback item và review loop.

10. Teacher Review Workbench

Đã tạo màn hình:

lms/templates/learning_core/teacher_review_queue.html

Và logic trong:

lms/learning_core/services/review_service.py

Chức năng:

  • Queue các assessment đang pending.
  • Lọc theo low confidence.
  • Lọc theo high severity.
  • Lọc theo AI warning.
  • Tìm kiếm học viên/lớp/rubric/hoạt động.
  • Risk profile cho từng bài.
  • Quick approve.
  • Đánh dấu cần revision.
  • Link sang trang review kỹ.
  • Workload summary cho giáo viên.

Ý nghĩa: AI không tự động quyết định high-stakes. Giáo viên có quyền thật để duyệt/sửa/reject.

11. Submission Review Page cho giáo viên

Đã tạo:

lms/templates/learning_core/submission_review.html

Chức năng:

  • Xem assessment result theo rubric.
  • Xem criterion score.
  • Xem feedback item.
  • Sửa feedback text, next action, severity.
  • Override score.
  • Approve/reject/needs revision.
  • Đánh dấu AI incident: wrong, too vague, too harsh, over helping, biased, unsafe.
  • Đồng bộ AI cũ thủ công nếu bài đã có AI grading cũ nhưng chưa vào Learning Core.

Ý nghĩa: giáo viên không chỉ là người “xem kết quả AI”, mà là người kiểm định chất lượng feedback.

12. Assignment Learning Setup

Đã tạo:

lms/templates/learning_core/assignment_setup.html

Chức năng:

  • Gắn learning objective vào assignment.
  • Gắn active rubric vào assignment.
  • Tắt rubric binding cũ khi bind rubric mới.
  • Ghi learning event khi map objective hoặc bind rubric.

Ý nghĩa: trước khi AI feedback có giá trị, bài tập phải được nối với objective/rubric.

13. Class Workbench

Đã tạo:

lms/templates/learning_core/class_workbench.html

Chức năng:

  • Tổng quan lớp.
  • Số enrollment.
  • Số activity.
  • Số assessment result.
  • Số pending review.
  • Số feedback item.
  • Số objective đã map.
  • Số rubric binding active.
  • Link sang error clusters và review queue.

Ý nghĩa: giáo viên/academic lead có điểm vào Learning Core ở cấp lớp.

14. Student Learning Dashboard

Đã tạo:

lms/templates/learning_core/student_learning_dashboard.html

Chức năng:

  • Số bài đã nộp.
  • Số feedback.
  • Số revision.
  • Số assessment.
  • Next actions cần làm.
  • Skill progress.
  • Link sang feedback page của từng bài.

Ý nghĩa: học viên không chỉ xem điểm, mà thấy việc cần sửa tiếp theo.

15. Student Feedback + Revision Experience

Đã tạo:

lms/templates/learning_core/student_submission_feedback.html

Chức năng:

  • Học viên xem feedback của một bài.
  • Feedback được nhóm thành:
  • Cần sửa kỹ.
  • Nên cải thiện.
  • Chỉnh nhẹ.
  • Có mục ưu tiên sửa trước.
  • Có evidence text.
  • Có next action.
  • Có form nộp bản sửa.
  • Có reflection text.
  • Revision gắn với feedback item đã chọn.
  • Có lịch sử revision.
  • Có chỉ số feedback uptake.

Ý nghĩa: đây là phần rất quan trọng từ sách: feedback chỉ có giá trị khi dẫn tới hành động học, sửa bài và phản tư.

16. Error Clustering

Đã tạo logic trong:

lms/learning_core/services/review_service.py

Và màn hình:

lms/templates/learning_core/error_clusters.html

Chức năng:

  • Gom feedback lặp lại theo skill/category.
  • Tính count, severity, confidence.
  • Lấy ví dụ bài nộp.
  • Gợi ý action như mini-lesson hoặc bài luyện.
  • Lưu cluster hiện tại vào ErrorCluster.

Ý nghĩa: giáo viên không bị mắc kẹt trong chấm tuyến tính từng bài. Hệ thống giúp nhìn lỗi lặp lại ở cấp lớp.

17. Intervention Board

Đã mở rộng error_clusters.htmlreview_service.py để có intervention board.

Chức năng:

  • Tạo intervention thủ công.
  • Tạo intervention trực tiếp từ một error cluster.
  • Xem intervention đang mở.
  • Cập nhật outcome.
  • Chuyển trạng thái active/inactive/archived.
  • Xem intervention đã đóng.
  • Ghi LearningEvent khi tạo/cập nhật intervention.

Ý nghĩa: hệ thống không dừng ở “phân tích lỗi”, mà buộc phân tích dẫn tới hành động sư phạm và outcome.

18. Learning Evaluation Dashboard

Đã tạo:

lms/learning_core/services/evaluation_service.py

Và màn hình:

lms/templates/learning_core/evaluation_dashboard.html

Đã thêm route:

/admin/lms/learning-core/evaluation/

Đã thêm menu:

Learning Evaluation

Dashboard đo:

  • Assessment count.
  • Pending review.
  • Average confidence.
  • Feedback count.
  • Tỷ lệ feedback có đủ evidence + next action.
  • Feedback uptake rate.
  • Teacher edit rate.
  • AI incident rate.
  • Intervention outcome coverage.
  • Review outcome theo trạng thái.
  • Learning events theo verb.
  • Lỗi nổi bật theo category.
  • Lỗi nổi bật theo skill.
  • AI runs theo task/status/model.
  • AI incidents theo category/severity.
  • Revision gần đây.
  • Intervention gần đây.
  • Bảng so sánh theo lớp.

Ý nghĩa: đây là bước chuyển sản phẩm từ “có tính năng AI” sang “đo được AI và feedback có giúp học thật không”.

19. Admin registration

Đã đăng ký các model Learning Core trong:

lms/learning_core/admin.py

Các model được quản lý qua Django admin:

  • Learning objectives.
  • Skills.
  • Rubrics.
  • Rubric criteria.
  • Assignment objective maps.
  • Assignment rubric bindings.
  • Prompt templates.
  • AI policies.
  • AI runs.
  • AI incidents.
  • Assessment results.
  • Teacher reviews.
  • Submission revisions.
  • Learning events.
  • Error clusters.
  • Interventions.

20. Routes đã thêm

Admin Learning Core:

  • /admin/lms/learning-core/review-queue/
  • /admin/lms/learning-core/evaluation/
  • /admin/lms/learning-core/assignments/<assignment_id>/setup/
  • /admin/lms/learning-core/classes/<class_id>/workbench/page/
  • /admin/lms/learning-core/classes/<class_id>/workbench/
  • /admin/lms/learning-core/classes/<class_id>/error-clusters/
  • /admin/lms/learning-core/submissions/<submission_id>/review/page/
  • /admin/lms/learning-core/submissions/<submission_id>/review/
  • /admin/lms/learning-core/submissions/<submission_id>/revisions/
  • /admin/lms/learning-core/submissions/<submission_id>/sync-legacy-ai/
  • /admin/lms/learning-core/assessment-results/<result_id>/review/

Learner Learning Core:

  • /learning/dashboard/
  • /learning/submissions/<submission_id>/feedback/
  • /learning/submissions/<submission_id>/revisions/

21. Những gì đã khai thác được từ sách

Đã khai thác mạnh

  • AI phải nằm trong thiết kế học tập, không chỉ là chatbot.
  • Assessment phải gắn với objective, skill và rubric.
  • Feedback phải có evidence.
  • Feedback phải có next action.
  • Người học cần vòng revision/reflection.
  • Giáo viên phải là human-in-the-loop.
  • AI cần audit, policy và incident.
  • Dashboard phải đo learning evidence, không chỉ điểm.
  • Error clustering giúp giáo viên xử lý vấn đề ở cấp lớp.
  • Intervention cần outcome để biết hành động sư phạm có tác dụng không.

Đã khai thác một phần

  • Adaptive learning path: mới có next actions và skill progress, chưa có recommender bài luyện/material.
  • AI orchestration: đã có khung, schema, bridge với AI cũ, nhưng chưa có endpoint AI-native hoàn chỉnh để generate feedback mới từ đầu.
  • Evaluation: đã có dashboard đo các chỉ số chính, nhưng chưa có benchmark/pilot comparison theo cohort hoặc thời gian trước-sau.

Chưa khai thác nhiều

  • Peer assessment.
  • Reverse grading.
  • Socratic tutoring.
  • Affective/multimodal AI.
  • Parent-facing learning evidence.
  • Notification/nudge dựa trên feedback/revision.
  • Cost tracking/quota AI.
  • Experiment/A-B testing.
  • Full curriculum map UI.

22. Đánh giá trạng thái sản phẩm

Sản phẩm hiện đã vượt qua mức ý tưởng. Nó đã có một MVP domain tương đối đầy đủ:

  • Có model.
  • Có service layer.
  • Có permission.
  • Có UI admin.
  • Có UI học viên.
  • Có tích hợp AI cũ.
  • Có review queue.
  • Có revision loop.
  • Có error clustering.
  • Có intervention.
  • Có evaluation dashboard.

Tuy nhiên, sản phẩm chưa thể xem là hoàn thiện để pilot rộng ngay, vì còn thiếu:

  • Migration chuẩn hóa sau khi chốt model.
  • Seed data cho rubric/objective/skill.
  • Kiểm thử đầy đủ.
  • Endpoint generate feedback AI-native.
  • Rate limit/quota/cost tracking cho AI.
  • UI tạo rubric/criterion tốt hơn.
  • Dashboard đo chất lượng revision theo điểm trước-sau.
  • Notification nhắc học viên sửa bài và giáo viên review.

23. Việc nên làm tiếp

Thứ tự đề xuất:

1. Hoàn thiện AI-native feedback generation endpoint. 2. Làm rubric builder/objective builder tử tế cho academic team. 3. Thêm seed/sample data cho 1-2 use case IELTS Writing/Speaking. 4. Thêm notification/nudge cho pending review và pending revision. 5. Mở rộng Evaluation Dashboard để đo before/after revision quality. 6. Thêm cost/quota/rate limit cho AI. 7. Viết test đầy đủ cho permission, review flow, revision flow, AI schema, evaluation metrics. 8. Chuẩn hóa migration bằng Django sau khi chốt model.

24. Ghi chú kỹ thuật

Trong quá trình code, có nhiều file trong repo Synvia đã dirty/untracked từ trước. Phần phát triển Learning Core tập trung vào:

  • lms/learning_core/
  • lms/templates/learning_core/
  • Một số điểm nối trong:
  • lms/dmoj/settings.py
  • lms/sy/urls.py
  • lms/sy/tasks.py
  • lms/templates/admin_sidebar.html
  • lms/templates/sy/admin/lms/...

Theo yêu cầu sau đó, không tiếp tục chạy Python và không viết thêm migration thủ công. Có file migration ban đầu trong learning_core/migrations/0001_initial.py đã tồn tại từ giai đoạn trước yêu cầu này.

25. Kết luận

Chúng ta đã phát triển Synvia từ một LMS có AI grading thành nền tảng Synvia Learning Core: một lớp sản phẩm mới tập trung vào assessment có bằng chứng, feedback có hành động, giáo viên kiểm soát AI, học viên có revision loop, lớp học có error clustering/intervention, và ban học thuật có dashboard đánh giá hiệu quả.

Đây là hướng đi đúng nếu muốn Synvia trở thành sản phẩm EdTech có chiều sâu thay vì chỉ thêm AI vào các chức năng cũ.