elearning/docs/user_roles_and_capabilities.md

195 lines
7.3 KiB
Markdown
Raw Normal View History

# ขอบเขตความสามารถของระบบ (User Roles & Responsibilities)
## 1. Admin (ผู้ดูแลระบบ)
**บทบาทหลัก:** ควบคุมระบบ ตรวจสอบความถูกต้อง
---
### การจัดการผู้ใช้
* ดูรายชื่อผู้ใช้ทั้งหมด
* สร้าง / แก้ไข / ลบผู้ใช้
* กำหนดบทบาท (Admin / Instructor / Learner)
* ระงับหรือยกเลิกการใช้งานผู้ใช้
* รีเซ็ตรหัสผ่านผู้ใช้
**รองรับการออกแบบ:**
* RBAC (Role-based Access Control)
---
### การจัดการหลักสูตร (เชิงกำกับดูแล)
* ดูหลักสูตรทั้งหมดในระบบ
* อนุมัติ / ระงับการเผยแพร่หลักสูตร
* จัดการหมวดหมู่หลักสูตร
<!-- * ตรวจสอบคอร์สเสียเงินว่าถูกต้องตามนโยบาย -->
> ผู้สอนเป็นคนสร้าง
> **Admin มีอำนาจอนุมัติสุดท้าย**
---
### Dashboard ภาพรวม
* จำนวนผู้ใช้ทั้งหมด
* จำนวนคอร์ส
<!-- * ยอดขายรวม
* ยอดเงินที่รอถอน
* ยอดเงินที่จ่ายออกแล้ว -->
---
## 2. Instructor (ผู้สอน)
**บทบาทหลัก:** สร้างคอร์ส ตรวจสอบความถูกต้องของคอร์ส ตรวจสอบผู้เรียน
---
### การสร้างและจัดการหลักสูตร
* สร้าง / แก้ไข / ลบหลักสูตรของตนเอง
* กำหนดรายละเอียดคอร์ส
* กำหนดสถานะคอร์ส:
* ฟรี
* เสียเงิน
* กำหนดราคาคอร์ส
* เปิด / ปิด
* ส่งคอร์สให้ Admin อนุมัติก่อนเผยแพร่
---
### การจัดการเนื้อหา
* สร้างบท (Chapter)
* สร้างบทเรียน (Lesson)
* อัปโหลดวิดีโอ / เอกสาร / ข้อความ
* จัดลำดับบทเรียน
* ตั้งเงื่อนไขการเข้าเรียน
* กำหนดบทเรียนตัวอย่าง (Preview Lesson) ที่ผู้เรียนสามารถดูได้ก่อนลงทะเบียน
---
### การจัดการแบบทดสอบ
* สร้างแบบทดสอบ
* ตั้งเวลา คะแนน เกณฑ์ผ่าน
* ดูผลการทำแบบทดสอบของผู้เรียน
---
### การติดตามผู้เรียน
* ดูรายชื่อผู้เรียนในคอร์ส
* ดูความคืบหน้าการเรียน
* ดูคะแนนและสถิติการเรียน
---
<!-- ### รายได้ของผู้สอน
* ดูรายได้จากแต่ละคอร์ส
* ดูยอดเงิน:
* ยอดเงินทั้งหมด
* ยอดเงินที่ถอนแล้ว
* ยอดเงินที่ถอนได้ (Available Balance)
* ดูประวัติคำสั่งซื้อที่เกี่ยวข้องกับคอร์สตนเอง
---
### การถอนเงิน
* ยื่นคำขอถอนเงิน (Withdraw Request)
* ระบุ:
* จำนวนเงิน
* ช่องทางรับเงิน (เช่น ธนาคาร)
* ดูสถานะการถอน:
* รออนุมัติ
* อนุมัติแล้ว
* ถูกปฏิเสธ
* โอนเงินแล้ว
* ดูประวัติการถอนเงินทั้งหมด
> ถ้าเป็นคอร์สฟรี
>
> * ไม่มีรายได้
> * ไม่สามารถถอนเงินได้
--- -->
## 3. Learner (ผู้เรียน)
**บทบาทหลัก:** เรียนคอร์ส และติดตามผลการเรียน
---
### บัญชีผู้ใช้
* สมัครสมาชิก / เข้าสู่ระบบ
* แก้ไขข้อมูลโปรไฟล์
---
### การค้นหาและดูคอร์ส
* ดูคอร์สทั้งหมด
* เห็นสถานะคอร์ส:
* ฟรี
* ดูรายละเอียดคอร์ส
---
### การลงทะเบียน / ซื้อคอร์ส
* ลงทะเบียนคอร์สฟรี
* ดูประวัติการลงทะเบียน
---
### การเรียน
* เข้าถึงบทเรียนหลังจาก:
* ลงทะเบียน (ฟรี)
* ระบบบันทึกความคืบหน้าอัตโนมัติ
---
### การทำแบบทดสอบ
* ทำแบบทดสอบ
* ดูคะแนน
---
### ผลการเรียน
* ดู % ความคืบหน้าคอร์ส
* ดูผลคะแนนรวม
* รับใบประกาศนียบัตร (ยังไม่มี)
---
<!-- ---
## หลักการออกแบบสำคัญ
* คอร์สฟรี = โครงสร้างเดียวกับคอร์สเสียเงิน (ราคา = 0)
* เงินไม่เข้าผู้สอนทันที → ต้องผ่านระบบ
* ถอนเงินได้เฉพาะยอดที่ **Admin อนุมัติ**
* ทุกการเงินต้องมี record ตรวจสอบย้อนหลังได้
* Payment Gateway เป็นแค่ส่วนเสริมในอนาคต
---
## สรุปคุณสมบัติหลักของระบบ
### คอร์สฟรี vs คอร์สเสียเงิน
* ผู้สอนกำหนดได้เองว่า **คอร์สฟรี / คอร์สเสียเงิน**
* ผู้เรียนซื้อคอร์ส → เงินเข้าระบบ
* ผู้สอนมี **ยอดเงินคงเหลือ (Balance)**
* ผู้สอนสามารถ **ขอถอนเงิน**
* **Admin เป็นผู้อนุมัติ/ปฏิเสธการถอนเงิน**
* คอร์สฟรีไม่เกี่ยวกับเงิน แต่ใช้โครงสร้างเดียวกัน
* เหมาะสำหรับเอาไปออกแบบ **Endpoint + ER Database** -->