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