elearning/docs/user_roles_and_capabilities.md

9.6 KiB

ขอบเขตความสามารถของระบบ (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)

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)