update scope

This commit is contained in:
Missez 2025-12-19 16:28:21 +07:00 committed by GitHub
parent 17fbfc609b
commit 0a506582c8
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -1,195 +1,109 @@
# ขอบเขตความสามารถของระบบ (User Roles & Responsibilities)
# ขอบเขตการพัฒนาที่ดำเนินการ (In Scope)
## 1. Admin (ผู้ดูแลระบบ)
## 1.1 ระบบจัดการผู้ใช้งาน (User Management)
- ระบบลงทะเบียนและเข้าสู่ระบบด้วยอีเมล/รหัสผ่าน
- ระบบรีเซ็ตรหัสผ่านผ่านอีเมล
- การจัดการโปรไฟล์ผู้ใช้ขั้นพื้นฐาน
- การกำหนดบทบาทผู้ใช้งาน (Admin, Instructor, Student)
- การควบคุมสิทธิ์การเข้าถึงฟังก์ชันตามบทบาท (Role-Based Access Control)
**บทบาทหลัก:** ควบคุมระบบ ตรวจสอบความถูกต้อง
## 1.2 ระบบจัดการหลักสูตร (Course Management)
- การสร้าง แก้ไข และลบหลักสูตร
- การกำหนดรายละเอียดหลักสูตร (ชื่อ, คำอธิบาย, รูปภาพ)
- การกำหนดสถานะหลักสูตร (เผยแพร่ / ซ่อน)
- การค้นหาและดูรายละเอียดหลักสูตร
- การลงทะเบียนเรียนหลักสูตร
## 1.3 ระบบจัดการเนื้อหาบทเรียน (Content Management)
- การแบ่งโครงสร้างบทเรียนเป็น Chapters และ Lessons
- การอัปโหลดเนื้อหาประเภทหลัก ได้แก่
- วิดีโอการสอน (MP4)
- เอกสาร PDF
- เนื้อหาข้อความ (Rich Text)
- การจัดเรียงลำดับบทเรียน
- การกำหนดเงื่อนไขการเข้าถึงบทเรียนตามลำดับ
- ระบบบันทึกความคืบหน้าการเรียนของผู้เรียน
## 1.4 ระบบแบบทดสอบ (Quiz & Assessment)
- การสร้างแบบทดสอบประเภทปรนัย และถูก/ผิด
- การกำหนดเวลา คะแนน และเกณฑ์ผ่าน
- ระบบทำแบบทดสอบออนไลน์
- การตรวจและให้คะแนนอัตโนมัติ
- การแสดงผลคะแนนและประวัติการทำแบบทดสอบ
## 1.5 ระบบรายงานและการประเมินผล (Reporting)
- รายงานความคืบหน้าการเรียนของผู้เรียน
- รายงานคะแนนแบบทดสอบ
- รายงานผู้เรียนในหลักสูตรสำหรับผู้สอน
- Dashboard ภาพรวมระบบสำหรับผู้ดูแลระบบ (ข้อมูลสถิติพื้นฐาน)
## 1.6 ระบบการประกาศ (Announcements)
- การโพสต์ประกาศภายในหลักสูตร
- การแสดงประกาศให้ผู้เรียนดูย้อนหลังได้
---
### การจัดการผู้ใช้
# ขอบเขตความสามารถของระบบ
## (User Roles & Responsibilities)
* ดูรายชื่อผู้ใช้ทั้งหมด
* สร้าง / แก้ไข / ลบผู้ใช้
* กำหนดบทบาท (Admin / Instructor / Learner)
* ระงับหรือยกเลิกการใช้งานผู้ใช้
* รีเซ็ตรหัสผ่านผู้ใช้
## 1. Student (ผู้เรียน)
**รองรับการออกแบบ:**
### ขอบเขตความสามารถ
- สมัครสมาชิกใหม่ในระบบ
- เข้าสู่ระบบและจัดการโปรไฟล์ส่วนตัว
- ค้นหาและลงทะเบียนเรียนหลักสูตร
- เข้าถึงเนื้อหาบทเรียนตามลำดับที่กำหนด
- ดูและดาวน์โหลดเอกสารประกอบการเรียน
- เล่นวิดีโอการเรียนรู้ผ่าน Video Player
- ทำแบบทดสอบออนไลน์ภายในบทเรียน
- ดูผลคะแนน ประวัติการทำแบบทดสอบ และความคืบหน้าการเรียน
- ดูประกาศภายในหลักสูตร
- ดูรายงานผลการเรียนและใบประกาศนียบัตร (เมื่อจบหลักสูตร)
* RBAC (Role-based Access Control)
---
### การจัดการหลักสูตร (เชิงกำกับดูแล)
* ดูหลักสูตรทั้งหมดในระบบ
* อนุมัติ / ระงับการเผยแพร่หลักสูตร
* จัดการหมวดหมู่หลักสูตร
<!-- * ตรวจสอบคอร์สเสียเงินว่าถูกต้องตามนโยบาย -->
> ผู้สอนเป็นคนสร้าง
> **Admin มีอำนาจอนุมัติสุดท้าย**
---
### Dashboard ภาพรวม
* จำนวนผู้ใช้ทั้งหมด
* จำนวนคอร์ส
<!-- * ยอดขายรวม
* ยอดเงินที่รอถอน
* ยอดเงินที่จ่ายออกแล้ว -->
### ข้อจำกัด
- ไม่สามารถสร้างหรือแก้ไขหลักสูตร
- ไม่สามารถแก้ไขเนื้อหาบทเรียนหรือแบบทดสอบ
- ไม่สามารถดูข้อมูลผู้เรียนคนอื่น
---
## 2. Instructor (ผู้สอน)
**บทบาทหลัก:** สร้างคอร์ส ตรวจสอบความถูกต้องของคอร์ส ตรวจสอบผู้เรียน
### ขอบเขตความสามารถ
- เข้าสู่ระบบและจัดการโปรไฟล์ส่วนตัว
- สร้าง แก้ไข และจัดการหลักสูตร
- กำหนดหมวดหมู่ วันเริ่มต้น–สิ้นสุด และสถานะหลักสูตร
- สร้างและจัดโครงสร้างบทเรียน (Chapters, Lessons)
- อัปโหลดและจัดเรียงเนื้อหาการเรียนรู้
- วิดีโอ
- เอกสาร PDF
- ข้อความ
- ไฟล์ประกอบ
- กำหนดเงื่อนไขการเข้าถึงบทเรียน
- สร้างและจัดการแบบทดสอบ (Quiz)
- กำหนดรูปแบบคำถาม เวลา คะแนน และเกณฑ์ผ่าน
- ดูผลคะแนนและสถิติการทำแบบทดสอบของผู้เรียน
- ดูรายงานความคืบหน้าการเรียนของผู้เรียน
- ส่งออกรายงานเป็นไฟล์ Excel หรือ PDF
- โพสต์และจัดการประกาศภายในหลักสูตร
### ข้อจำกัด
- ไม่สามารถกำหนดบทบาทหรือสิทธิ์ผู้ใช้
- ไม่สามารถเข้าถึงข้อมูลระบบภาพรวมระดับผู้ดูแล
---
### การสร้างและจัดการหลักสูตร
## 3. Admin (ผู้ดูแลระบบ)
* สร้าง / แก้ไข / ลบหลักสูตรของตนเอง
* กำหนดรายละเอียดคอร์ส
* กำหนดสถานะคอร์ส:
* ฟรี
* เสียเงิน
* กำหนดราคาคอร์ส
* เปิด / ปิด
* ส่งคอร์สให้ Admin อนุมัติก่อนเผยแพร่
### ขอบเขตความสามารถ
- เข้าสู่ระบบเพื่อบริหารจัดการระบบโดยรวม
- จัดการบัญชีผู้ใช้งานทั้งหมดในระบบ
- กำหนด แก้ไข และควบคุมบทบาทและสิทธิ์การใช้งานของผู้ใช้
- ดู Dashboard ภาพรวมของระบบ
- ตรวจสอบสถิติการใช้งานระบบ
- ดูจำนวนผู้ใช้ หลักสูตร และอัตราการจบหลักสูตร
- ตรวจสอบความถูกต้องและเสถียรภาพของระบบ
---
### การจัดการเนื้อหา
* สร้างบท (Chapter)
* สร้างบทเรียน (Lesson)
* อัปโหลดวิดีโอ / เอกสาร / ข้อความ
* จัดลำดับบทเรียน
* ตั้งเงื่อนไขการเข้าเรียน
* กำหนดบทเรียนตัวอย่าง (Preview Lesson) ที่ผู้เรียนสามารถดูได้ก่อนลงทะเบียน
---
### การจัดการแบบทดสอบ
* สร้างแบบทดสอบ
* ตั้งเวลา คะแนน เกณฑ์ผ่าน
* ดูผลการทำแบบทดสอบของผู้เรียน
---
### การติดตามผู้เรียน
* ดูรายชื่อผู้เรียนในคอร์ส
* ดูความคืบหน้าการเรียน
* ดูคะแนนและสถิติการเรียน
---
<!-- ### รายได้ของผู้สอน
* ดูรายได้จากแต่ละคอร์ส
* ดูยอดเงิน:
* ยอดเงินทั้งหมด
* ยอดเงินที่ถอนแล้ว
* ยอดเงินที่ถอนได้ (Available Balance)
* ดูประวัติคำสั่งซื้อที่เกี่ยวข้องกับคอร์สตนเอง
---
### การถอนเงิน
* ยื่นคำขอถอนเงิน (Withdraw Request)
* ระบุ:
* จำนวนเงิน
* ช่องทางรับเงิน (เช่น ธนาคาร)
* ดูสถานะการถอน:
* รออนุมัติ
* อนุมัติแล้ว
* ถูกปฏิเสธ
* โอนเงินแล้ว
* ดูประวัติการถอนเงินทั้งหมด
> ถ้าเป็นคอร์สฟรี
>
> * ไม่มีรายได้
> * ไม่สามารถถอนเงินได้
--- -->
## 3. Learner (ผู้เรียน)
**บทบาทหลัก:** เรียนคอร์ส และติดตามผลการเรียน
---
### บัญชีผู้ใช้
* สมัครสมาชิก / เข้าสู่ระบบ
* แก้ไขข้อมูลโปรไฟล์
---
### การค้นหาและดูคอร์ส
* ดูคอร์สทั้งหมด
* เห็นสถานะคอร์ส:
* ฟรี
* ดูรายละเอียดคอร์ส
---
### การลงทะเบียน / ซื้อคอร์ส
* ลงทะเบียนคอร์สฟรี
* ดูประวัติการลงทะเบียน
---
### การเรียน
* เข้าถึงบทเรียนหลังจาก:
* ลงทะเบียน (ฟรี)
* ระบบบันทึกความคืบหน้าอัตโนมัติ
---
### การทำแบบทดสอบ
* ทำแบบทดสอบ
* ดูคะแนน
---
### ผลการเรียน
* ดู % ความคืบหน้าคอร์ส
* ดูผลคะแนนรวม
* รับใบประกาศนียบัตร (ยังไม่มี)
---
<!-- ---
## หลักการออกแบบสำคัญ
* คอร์สฟรี = โครงสร้างเดียวกับคอร์สเสียเงิน (ราคา = 0)
* เงินไม่เข้าผู้สอนทันที → ต้องผ่านระบบ
* ถอนเงินได้เฉพาะยอดที่ **Admin อนุมัติ**
* ทุกการเงินต้องมี record ตรวจสอบย้อนหลังได้
* Payment Gateway เป็นแค่ส่วนเสริมในอนาคต
---
## สรุปคุณสมบัติหลักของระบบ
### คอร์สฟรี vs คอร์สเสียเงิน
* ผู้สอนกำหนดได้เองว่า **คอร์สฟรี / คอร์สเสียเงิน**
* ผู้เรียนซื้อคอร์ส → เงินเข้าระบบ
* ผู้สอนมี **ยอดเงินคงเหลือ (Balance)**
* ผู้สอนสามารถ **ขอถอนเงิน**
* **Admin เป็นผู้อนุมัติ/ปฏิเสธการถอนเงิน**
* คอร์สฟรีไม่เกี่ยวกับเงิน แต่ใช้โครงสร้างเดียวกัน
* เหมาะสำหรับเอาไปออกแบบ **Endpoint + ER Database** -->
### ข้อจำกัด
- ไม่เกี่ยวข้องกับการจัดการเนื้อหาการสอนโดยตรง
- ไม่สามารถแก้ไขผลการเรียนของผู้เรียน