update: refine documentation requirements and enhance clarity
This commit is contained in:
parent
156efe8ee7
commit
c3958eeba9
1 changed files with 272 additions and 0 deletions
272
docs/user_roles_and_capabilities.md
Normal file
272
docs/user_roles_and_capabilities.md
Normal file
|
|
@ -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)
|
||||||
|
```
|
||||||
|
|
||||||
|
<!-- ---
|
||||||
|
|
||||||
|
## หลักการออกแบบสำคัญ
|
||||||
|
|
||||||
|
* คอร์สฟรี = โครงสร้างเดียวกับคอร์สเสียเงิน (ราคา = 0)
|
||||||
|
* เงินไม่เข้าผู้สอนทันที → ต้องผ่านระบบ
|
||||||
|
* ถอนเงินได้เฉพาะยอดที่ **Admin อนุมัติ**
|
||||||
|
* ทุกการเงินต้องมี record ตรวจสอบย้อนหลังได้
|
||||||
|
* Payment Gateway เป็นแค่ส่วนเสริมในอนาคต
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## สรุปคุณสมบัติหลักของระบบ
|
||||||
|
|
||||||
|
### คอร์สฟรี vs คอร์สเสียเงิน
|
||||||
|
|
||||||
|
* ผู้สอนกำหนดได้เองว่า **คอร์สฟรี / คอร์สเสียเงิน**
|
||||||
|
* ผู้เรียนซื้อคอร์ส → เงินเข้าระบบ
|
||||||
|
* ผู้สอนมี **ยอดเงินคงเหลือ (Balance)**
|
||||||
|
* ผู้สอนสามารถ **ขอถอนเงิน**
|
||||||
|
* **Admin เป็นผู้อนุมัติ/ปฏิเสธการถอนเงิน**
|
||||||
|
* คอร์สฟรีไม่เกี่ยวกับเงิน แต่ใช้โครงสร้างเดียวกัน
|
||||||
|
* เหมาะสำหรับเอาไปออกแบบ **Endpoint + ER Database** -->
|
||||||
Loading…
Add table
Add a link
Reference in a new issue