# เอกสารความต้องการระบบ E‑Learning

**ชื่อโครงการ:** ระบบการเรียนการสอนออนไลน์ (E-Learning System)  
**เวอร์ชัน:** 1.1  
**วันที่จัดทำ:** 17 ธันวาคม 2568

## 1. บทนำ
เอกสารฉบับนี้จัดทำขึ้นเพื่อกำหนดความต้องการของระบบ E‑Learning พื้นฐาน สำหรับใช้เป็นแนวทางในการออกแบบ พัฒนา และทดสอบระบบ โดยมุ่งเน้นฟังก์ชันหลักที่จำเป็นต่อการเรียนการสอนออนไลน์

## 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. ความต้องการที่ไม่ใช่ฟังก์ชัน (Non‑Functional 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 สำหรับฟังก์ชันสำคัญ