From c3958eeba9bb2ec4499399da9ef20b0b7874e66e Mon Sep 17 00:00:00 2001 From: JakkrapartXD Date: Thu, 18 Dec 2025 13:32:29 +0700 Subject: [PATCH] update: refine documentation requirements and enhance clarity --- docs/user_roles_and_capabilities.md | 272 ++++++++++++++++++++++++++++ 1 file changed, 272 insertions(+) create mode 100644 docs/user_roles_and_capabilities.md diff --git a/docs/user_roles_and_capabilities.md b/docs/user_roles_and_capabilities.md new file mode 100644 index 00000000..cffb8e0d --- /dev/null +++ b/docs/user_roles_and_capabilities.md @@ -0,0 +1,272 @@ +# ขอบเขตความสามารถของระบบ (User Roles & Responsibilities) + +## 1. Admin (ผู้ดูแลระบบ) + +**บทบาทหลัก:** ควบคุมระบบ ตรวจสอบความถูกต้อง และอนุมัติธุรกรรมทางการเงิน + +--- + +### การจัดการผู้ใช้ + +* ดูรายชื่อผู้ใช้ทั้งหมด +* สร้าง / แก้ไข / ลบผู้ใช้ +* กำหนดบทบาท (Admin / Instructor / Learner) +* ระงับหรือยกเลิกการใช้งานผู้ใช้ +* รีเซ็ตรหัสผ่านผู้ใช้ + +**รองรับการออกแบบ:** + +* RBAC (Role-based Access Control) + +--- + +### การจัดการหลักสูตร (เชิงกำกับดูแล) + +* ดูหลักสูตรทั้งหมดในระบบ +* อนุมัติ / ระงับการเผยแพร่หลักสูตร +* ตรวจสอบคอร์สเสียเงินว่าถูกต้องตามนโยบาย +* จัดการหมวดหมู่หลักสูตร + +> ผู้สอนเป็นคนสร้าง +> **Admin มีอำนาจอนุมัติสุดท้าย** + +--- + +### การจัดการคำสั่งซื้อและรายรับ + +* ดูคำสั่งซื้อทั้งหมดของระบบ +* ตรวจสอบสถานะการชำระเงิน +* ดูรายได้แยกตามผู้สอน / คอร์ส +* ตรวจสอบประวัติการชำระเงินย้อนหลัง + +--- + +### การอนุมัติการถอนเงิน (เสริม) + +* ดูรายการคำขอถอนเงินจากผู้สอน +* ตรวจสอบยอดเงินคงเหลือของผู้สอน +* อนุมัติ / ปฏิเสธคำขอถอนเงิน +* บันทึกสถานะการถอน: + * pending + * approved + * rejected + * paid +* บันทึกผู้อนุมัติ (Admin) + +> ❗ Admin ไม่สามารถแก้ไขยอดเงินตรงๆ +> ทุกการเคลื่อนไหวต้องมี record + +--- + +### Dashboard ภาพรวม + +* จำนวนผู้ใช้ทั้งหมด +* จำนวนคอร์ส (ฟรี / เสียเงิน) +* ยอดขายรวม +* ยอดเงินที่รอถอน +* ยอดเงินที่จ่ายออกแล้ว + +--- + +## 2. Instructor (ผู้สอน) + +**บทบาทหลัก:** สร้างคอร์ส สร้างรายได้ และถอนเงิน + +--- + +### การสร้างและจัดการหลักสูตร + +* สร้าง / แก้ไข / ลบหลักสูตรของตนเอง +* กำหนดรายละเอียดคอร์ส +* กำหนดสถานะคอร์ส: + * ฟรี + * เสียเงิน +* กำหนดราคาคอร์ส +* เปิด / ปิดการขาย +* ส่งคอร์สให้ Admin อนุมัติก่อนเผยแพร่ + +--- + +### การจัดการเนื้อหา + +* สร้างบท (Chapter) +* สร้างบทเรียน (Lesson) +* อัปโหลดวิดีโอ / เอกสาร / ข้อความ +* จัดลำดับบทเรียน +* ตั้งเงื่อนไขการเข้าเรียน +* กำหนดบทเรียนตัวอย่าง (Preview Lesson) ที่ผู้เรียนสามารถดูได้ก่อนลงทะเบียน/ซื้อคอร์ส + +--- + +### การจัดการแบบทดสอบ + +* สร้างแบบทดสอบ +* ตั้งเวลา คะแนน เกณฑ์ผ่าน +* ดูผลการทำแบบทดสอบของผู้เรียน + +--- + +### การติดตามผู้เรียน + +* ดูรายชื่อผู้เรียนในคอร์ส +* ดูความคืบหน้าการเรียน +* ดูคะแนนและสถิติการเรียน + +--- + +### รายได้ของผู้สอน + +* ดูรายได้จากแต่ละคอร์ส +* ดูยอดเงิน: + * ยอดเงินทั้งหมด + * ยอดเงินที่ถอนแล้ว + * ยอดเงินที่ถอนได้ (Available Balance) +* ดูประวัติคำสั่งซื้อที่เกี่ยวข้องกับคอร์สตนเอง + +--- + +### การถอนเงิน + +* ยื่นคำขอถอนเงิน (Withdraw Request) +* ระบุ: + * จำนวนเงิน + * ช่องทางรับเงิน (เช่น ธนาคาร) +* ดูสถานะการถอน: + * รออนุมัติ + * อนุมัติแล้ว + * ถูกปฏิเสธ + * โอนเงินแล้ว +* ดูประวัติการถอนเงินทั้งหมด + +> ถ้าเป็นคอร์สฟรี +> +> * ไม่มีรายได้ +> * ไม่สามารถถอนเงินได้ + +--- + +## 3. Learner (ผู้เรียน) + +**บทบาทหลัก:** ซื้อคอร์ส เรียน และติดตามผลการเรียน + +--- + +### บัญชีผู้ใช้ + +* สมัครสมาชิก / เข้าสู่ระบบ +* แก้ไขข้อมูลโปรไฟล์ + +--- + +### การค้นหาและดูคอร์ส + +* ดูคอร์สทั้งหมด +* เห็นสถานะคอร์ส: + * ฟรี + * เสียเงิน (แสดงราคา) +* ดูรายละเอียดคอร์สก่อนซื้อ +* ดูบทเรียนตัวอย่าง (Preview Lesson) ก่อนตัดสินใจลงทะเบียน/ซื้อคอร์ส + +--- + +### การลงทะเบียน / ซื้อคอร์ส + +* ลงทะเบียนคอร์สฟรี +* ซื้อคอร์สเสียเงิน +* ดูประวัติการลงทะเบียน +* ดูประวัติการซื้อคอร์ส + +> **หลักการ:** +> เข้าเรียนได้ = ต้องมี enrollment + +--- + +### การเรียน + +* เข้าถึงบทเรียนหลังจาก: + * ลงทะเบียน (ฟรี) + * หรือชำระเงินสำเร็จ (เสียเงิน) +* ระบบบันทึกความคืบหน้าอัตโนมัติ + +--- + +### การทำแบบทดสอบ + +* ทำแบบทดสอบ +* ดูคะแนน +* ดูประวัติการทำข้อสอบ + +--- + +### ผลการเรียน + +* ดู % ความคืบหน้าคอร์ส +* ดูผลคะแนนรวม +* รับใบประกาศนียบัตร (ถ้ามี) + +--- + +## โครงสร้างแนวคิดข้อมูล (ER Diagram) + +```text +User + ├─ Role + +Course + ├─ instructor_id + ├─ price + ├─ status (draft / pending / approved) + +Chapter + ├─ course_id + ├─ order + +Lesson + ├─ chapter_id + ├─ order + ├─ is_preview (true/false) + +Enrollment + ├─ user_id + ├─ course_id + +Order + ├─ user_id + ├─ total_amount + ├─ status + +InstructorBalance + ├─ instructor_id + ├─ available_amount + ├─ withdrawn_amount + +WithdrawalRequest + ├─ instructor_id + ├─ amount + ├─ status + ├─ approved_by (admin_id) +``` + + \ No newline at end of file