elearning/docs/elearning_requirements.md

156 lines
No EOL
12 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# เอกสารความต้องการระบบ ELearning
**ชื่อโครงการ:** ระบบการเรียนการสอนออนไลน์ (E-Learning System)
**เวอร์ชัน:** 1.1
**วันที่จัดทำ:** 17 ธันวาคม 2568
## 1. บทนำ
เอกสารฉบับนี้จัดทำขึ้นเพื่อกำหนดความต้องการของระบบ ELearning พื้นฐาน สำหรับใช้เป็นแนวทางในการออกแบบ พัฒนา และทดสอบระบบ โดยมุ่งเน้นฟังก์ชันหลักที่จำเป็นต่อการเรียนการสอนออนไลน์
## 2. วัตถุประสงค์ของระบบ
- สนับสนุนการเรียนการสอนออนไลน์ผ่านอินเทอร์เน็ต
- ให้ผู้เรียนเข้าถึงบทเรียนได้ทุกที่ทุกเวลา
- ช่วยผู้สอนบริหารจัดการเนื้อหาและติดตามผลการเรียน
- เก็บข้อมูลการเรียนรู้และผลการประเมินอย่างเป็นระบบ
## 3. กลุ่มผู้ใช้งาน (User Roles)
1. **ผู้ดูแลระบบ (Admin):** จัดการระบบโดยรวม เพิ่ม-ลบผู้ใช้งาน
2. **ผู้สอน (Instructor):** สร้างและจัดการหลักสูตร อัปโหลดเนื้อหา สร้างแบบทดสอบ
3. **ผู้เรียน (Learner):** เข้าถึงบทเรียน เรียนเนื้อหา ทำแบบทดสอบ
## 4. ฟังก์ชันหลักของระบบ (Functional Requirements)
### 4.1 ระบบจัดการผู้ใช้งาน (User Management)
**FR-001: การลงทะเบียนและเข้าสู่ระบบ**
- ผู้ใช้สามารถลงทะเบียนด้วยอีเมลและรหัสผ่าน
- เข้าสู่ระบบด้วย username/email และรหัสผ่าน
- รองรับการรีเซ็ตรหัสผ่านผ่านอีเมล
- จัดการโปรไฟล์ส่วนตัว (แก้ไขข้อมูล อัปโหลดรูปภาพ)
**FR-002: การจัดการสิทธิ์การใช้งาน**
- กำหนดบทบาทผู้ใช้ (Admin, Instructor, Student)
- ควบคุมสิทธิ์การเข้าถึงฟังก์ชันต่างๆ ตามบทบาท
### 4.2 ระบบจัดการหลักสูตร (Course Management)
**FR-003: การสร้างและจัดการหลักสูตร**
- ผู้สอนสามารถสร้างหลักสูตรใหม่ พร้อมรายละเอียด (ชื่อ คำอธิบาย รูปภาพ)
- จัดการหมวดหมู่หลักสูตร
- กำหนดวันเริ่มต้น-สิ้นสุดหลักสูตร
- เผยแพร่/ซ่อนหลักสูตร
**FR-004: การลงทะเบียนเรียน**
- ผู้เรียนสามารถค้นหาและดูรายละเอียดหลักสูตร
- ลงทะเบียนเข้าเรียนหลักสูตร
- ดูรายการหลักสูตรที่ลงทะเบียนไว้
### 4.3 ระบบจัดการเนื้อหาบทเรียน (Content Management)
**FR-005: การสร้างและจัดเรียงเนื้อหา**
- แบ่งหลักสูตรเป็นบท (Chapters) และหน่วยการเรียนรู้ (Lessons)
- อัปโหลดเนื้อหาหลากหลายรูปแบบ:
- **วิดีโอ:** รองรับ MP4, MOV พร้อม Video Player
- **เอกสาร PDF:** ดาวน์โหลดและแสดงผลในเบราว์เซอร์
- **ข้อความ:** สร้างเนื้อหาข้อความด้วย Rich Text Editor แบบ WYSIWYG
- **เอกสารประกอบ:** อัปโหลดไฟล์ DOCX, PPTX, XLSX
- จัดเรียงลำดับเนื้อหา (Drag & Drop)
- กำหนดเงื่อนไขการเข้าถึง (ต้องเรียนบทก่อนหน้าก่อน)
**FR-006: การเข้าถึงเนื้อหา**
- ผู้เรียนสามารถดูเนื้อหาบทเรียนตามลำดับ
- ระบบบันทึกความคืบหน้าการเรียน
- ดาวน์โหลดเอกสารประกอบ
- เล่นวิดีโอด้วย Video Player ที่รองรับการกรอ-ย้อน
- อ่านเอกสาร PDF แบบ Inline Viewer
- แสดงเนื้อหาข้อความที่จัดรูปแบบแล้ว
**FR-007: แบบทดสอบ/Quiz ในหน่วยการเรียนรู้**
- ผู้สอนสามารถสร้างแบบทดสอบเป็นหน่วยการเรียนรู้หนึ่งในบทเรียน
- ประเภทคำถามที่รองรับ:
- **คำถามแบบปรนัย (Multiple Choice):** เลือกตอบ 1 คำตอบจาก 2-5 ตัวเลือก
- **คำถามแบบถูก/ผิด (True/False):** เลือกว่าข้อความถูกหรือผิด
- กำหนดเวลาทำข้อสอบ (เช่น 30 นาที)
- กำหนดคะแนนของแต่ละข้อ
- กำหนดเกณฑ์ผ่าน (เช่น 70%)
- สุ่มลำดับคำถามและตัวเลือก
- กำหนดจำนวนครั้งที่สามารถทำได้ (เช่น ทำได้ 3 ครั้ง)
**FR-008: การทำแบบทดสอบ**
- ผู้เรียนสามารถทำแบบทดสอบออนไลน์
- แสดงจำนวนข้อและคะแนนรวม
- แสดงเวลาที่เหลือขณะทำข้อสอบ (Countdown Timer)
- บันทึกคำตอบอัตโนมัติขณะทำ
- ส่งข้อสอบและดูผลคะแนนทันที
- แสดงเฉลยหลังทำเสร็จ (ถ้าผู้สอนเปิดใช้)
- ดูประวัติการทำแบบทดสอบและคะแนนแต่ละครั้ง
**FR-009: การตรวจและบันทึกผลคะแนน**
- ระบบตรวจและให้คะแนนอัตโนมัติ (ข้อปรนัย, ถูก/ผิด)
- บันทึกคะแนนลงระบบทันที
- แสดงสถิติการทำแบบทดสอบ (คะแนนสูงสุด, ต่ำสุด, เฉลี่ย)
- ผู้สอนสามารถดูรายงานผลการทำแบบทดสอบของผู้เรียนทั้งหมด
### 4.4 ระบบรายงานและการประเมินผล (Reporting & Analytics)
**FR-010: รายงานสำหรับผู้เรียน**
- แสดงความคืบหน้าการเรียนในแต่ละหลักสูตร (%)
- แสดงคะแนนแบบทดสอบทั้งหมด
- แสดงบทเรียนที่เรียนแล้ว/ยังไม่ได้เรียน
- สรุปผลการเรียนรวม
- แสดงใบประกาศนียบัตร (เมื่อจบหลักสูตร)
**FR-011: รายงานสำหรับผู้สอน**
- ดูรายชื่อผู้เรียนในหลักสูตร
- ดูสถิติการเข้าเรียนของผู้เรียนแต่ละคน
- ดูคะแนนเฉลี่ยของแบบทดสอบแต่ละชุด
- ดูรายงานความคืบหน้าการเรียนของผู้เรียนทั้งหมด
- ส่งออกรายงานเป็นไฟล์ Excel/PDF
**FR-012: Dashboard ภาพรวม**
- แสดงภาพรวมระบบสำหรับ Admin
- สถิติจำนวนผู้ใช้ หลักสูตร การใช้งานระบบ
- กราฟแสดงจำนวนผู้ลงทะเบียนเรียนรายวัน/รายเดือน
- สถิติอัตราการจบหลักสูตร (Completion Rate)
### 4.5 ระบบการประกาศ (Announcements)
**FR-013: การโพสต์ประกาศ**
- ผู้สอนสามารถโพสต์ประกาศในหลักสูตร
- แนบไฟล์เอกสารประกอบประกาศได้
- กำหนดวันที่เผยแพร่ประกาศ
- ปักหมุดประกาศสำคัญไว้ด้านบน
**FR-014: การดูประกาศ**
- ผู้เรียนดูประกาศทั้งหมดในหลักสูตร
- ดูประกาศย้อนหลังได้
## 5. ความต้องการที่ไม่ใช่ฟังก์ชัน (NonFunctional Requirements)
### 5.1 ประสิทธิภาพ (Performance)
- ระบบสามารถรองรับผู้ใช้พร้อมกันอย่างน้อย 500 คน
- หน้าเว็บโหลดได้ภายใน 3 วินาที
- วิดีโอสตรีมมิ่งได้ราบรื่นไม่สะดุด
### 5.2 ความปลอดภัย (Security)
- มีความปลอดภัยของข้อมูลผู้ใช้งาน
- ใช้ HTTPS สำหรับการสื่อสารข้อมูล
- มีระบบ Session Timeout (30 นาที)
- ป้องกัน SQL Injection, XSS, CSRF
- จำกัด File Upload (ขนาดไม่เกิน 10MB ต่อไฟล์)
### 5.3 ความพร้อมใช้งาน (Usability)
- ออกแบบ UI/UX ที่ใช้งานง่าย เข้าใจง่าย
- รองรับการใช้งานบน Desktop, Tablet, และ Mobile (Responsive Design)
- รองรับภาษาไทยและภาษาอังกฤษ
- มีคู่มือการใช้งานสำหรับผู้เรียนและผู้สอน
### 5.4 ความเข้ากันได้ (Compatibility)
- รองรับเบราว์เซอร์ Chrome, Firefox, Safari, Edge (เวอร์ชันล่าสุด)
- รองรับไฟล์วิดีโอ: MP4, MOV, WebM
- รองรับไฟล์เอกสาร: PDF, DOCX, PPTX, XLSX
- รองรับรูปภาพ: JPG, PNG, WebP, SVG
### 5.5 การบำรุงรักษา (Maintainability)
- โค้ดเป็นระเบียบ มี Comment อธิบาย
- ใช้ Version Control (Git)
- มี Unit Tests สำหรับฟังก์ชันสำคัญ