|
| 1 | +# SRS – ENGCE301 Lab Submission Portal |
| 2 | + |
| 3 | +## 1. Introduction |
| 4 | + |
| 5 | +### 1.1 Purpose (วัตถุประสงค์) |
| 6 | +เอกสาร SRS ฉบับนี้กำหนดความต้องการของระบบ **ENGCE301 Lab Submission Portal** |
| 7 | +เพื่อใช้เป็นกรณีศึกษาในวิชา **ENGCE301 – Software Design & Development** โดยมีเป้าหมาย: |
| 8 | + |
| 9 | +- ให้นักศึกษาฝึกอ่าน/วิเคราะห์ SRS |
| 10 | +- แปลง SRS → User Stories → Use Cases |
| 11 | +- นำ Use Cases ไปออกแบบและพัฒนา **หน้าเว็บจริง (HTML/CSS)** ใน LAB Week 3 |
| 12 | + |
| 13 | +### 1.2 Scope (ขอบเขต) |
| 14 | +ระบบ Lab Submission Portal จะช่วย: |
| 15 | + |
| 16 | +- นักศึกษา: |
| 17 | + - ดูรายการ LAB ทั้งหมดของรายวิชา |
| 18 | + - ดูรายละเอียด LAB และกำหนดส่ง |
| 19 | + - ส่งไฟล์งาน LAB ผ่านเว็บ และดูสถานะ / คะแนน |
| 20 | +- ผู้สอน / TA: |
| 21 | + - สร้างและจัดการ LAB |
| 22 | + - ดูรายการส่งงานของนักศึกษา |
| 23 | + - ให้คะแนนและ Feedback |
| 24 | + |
| 25 | +สcope ของ SRS นี้เน้นฟังก์ชันหลักสำหรับวิชานี้ **ยังไม่ครอบคลุม** ระบบ login จริง, การ integrate กับระบบมหาวิทยาลัย ฯลฯ (ถือเป็น out-of-scope ในวิชานี้) |
| 26 | + |
| 27 | +### 1.3 Actors & Roles |
| 28 | + |
| 29 | +- **Student** |
| 30 | + - ผู้ส่งงาน LAB, ดูรายละเอียด LAB, ดูคะแนน/สถานะ |
| 31 | +- **Instructor** (ผู้สอน) |
| 32 | + - ผู้สร้าง LAB, แก้ไข LAB, ให้คะแนน/Feedback |
| 33 | +- **Teaching Assistant (TA)** (อาจมี/ไม่มีก็ได้) |
| 34 | + - ช่วย Instructor ดู submission และให้คะแนนในบางส่วน (optional) |
| 35 | + |
| 36 | +### 1.4 Definitions, Acronyms |
| 37 | +- **Lab** – งานทดลอง/การบ้านประจำสัปดาห์ |
| 38 | +- **Submission** – การส่งงาน LAB หนึ่งครั้งของนักศึกษา 1 คน |
| 39 | +- **Deadline** – วัน–เวลาหมดเขตส่งงานของ LAB |
| 40 | +- **Late Submission** – การส่งงานหลัง deadline ตาม policy ที่ผู้สอนกำหนด |
| 41 | + |
| 42 | +--- |
| 43 | + |
| 44 | +## 2. Overall Description |
| 45 | + |
| 46 | +### 2.1 System Overview |
| 47 | +ระบบเป็นเว็บแอปพลิเคชันที่แสดงรายการ LAB ของวิชา ENGCE301, |
| 48 | +อนุญาตให้นักศึกษาอัปโหลดงาน, ดูสถานะการส่ง, และให้อาจารย์ตรวจ–ให้คะแนนผ่านระบบเดียวกัน |
| 49 | + |
| 50 | +สำหรับวิชานี้ นักศึกษาจะสร้าง **หน้าเว็บต้นแบบ (Prototype UI)** |
| 51 | +เช่น Landing Page, My Labs Page, About Page โดยใช้ HTML/CSS เท่านั้น (ยังไม่ต้องมี backend จริง) |
| 52 | + |
| 53 | +### 2.2 Assumptions |
| 54 | +- ผู้ใช้ใช้เว็บเบราว์เซอร์สมัยใหม่ (Chrome, Edge, Firefox, ฯลฯ) |
| 55 | +- ระบบจริงในอนาคตอาจต้องเชื่อมต่อกับระบบบัญชีมหาวิทยาลัย (Single Sign-On) |
| 56 | + แต่ในรายวิชานี้ถือว่า “mock login / assume already logged in” |
| 57 | + |
| 58 | +--- |
| 59 | + |
| 60 | +## 3. Functional Requirements (FR) |
| 61 | + |
| 62 | +> *หมายเหตุ*: แต่ละ FR สามารถ map ไปเป็น Use Case ได้ 1 ตัว หรือมากกว่า |
| 63 | +
|
| 64 | +### FR-1 View Lab List |
| 65 | +**Description** |
| 66 | +ระบบต้องแสดงรายการ LAB ทั้งหมดของรายวิชาให้กับนักศึกษา |
| 67 | + |
| 68 | +**Details** |
| 69 | +- แสดง: รหัส/ชื่อ LAB, คำอธิบายสั้น ๆ, วัน–เวลาหมดเขตส่ง (deadline), สถานะ (open/closed) |
| 70 | +- สามารถเรียงตาม “ลำดับสัปดาห์” หรือ “วันหมดเขต” ได้ (อย่างน้อย 1 แบบ) |
| 71 | + |
| 72 | +--- |
| 73 | + |
| 74 | +### FR-2 View Lab Details |
| 75 | +**Description** |
| 76 | +นักศึกษาสามารถเปิดดูรายละเอียดของ LAB แต่ละตัวได้ |
| 77 | + |
| 78 | +**Details** |
| 79 | +- แสดง: ชื่อ LAB, จุดประสงค์การเรียนรู้ (Objectives), รายละเอียดโจทย์, ไฟล์แนบ (เช่น PDF), deadline |
| 80 | +- แสดงสถานะการส่งงานของนักศึกษาคนนั้น (ยังไม่ส่ง / ส่งแล้ว / ส่งช้า / ได้คะแนนแล้ว ฯลฯ) |
| 81 | + |
| 82 | +--- |
| 83 | + |
| 84 | +### FR-3 Submit Lab |
| 85 | +**Description** |
| 86 | +นักศึกษาสามารถอัปโหลดไฟล์ส่ง LAB ผ่านระบบได้ |
| 87 | + |
| 88 | +**Details** |
| 89 | +- รองรับไฟล์ `.pdf`, `.docx`, `.zip` อย่างน้อย 1 ชนิด |
| 90 | +- บันทึกเวลาในการส่งงาน (timestamp) |
| 91 | +- หากส่งก่อน deadline ถือว่า “ส่งตรงเวลา” |
| 92 | +- ถ้าส่งหลายครั้งก่อน deadline ให้ระบบนับ submission ล่าสุดเป็นตัวหลัก |
| 93 | + |
| 94 | +--- |
| 95 | + |
| 96 | +### FR-4 Handle Late Submission |
| 97 | +**Description** |
| 98 | +ระบบต้องรองรับ / ปฏิเสธการส่งงานหลัง deadline ตาม Policy ที่ผู้สอนกำหนด |
| 99 | + |
| 100 | +**Details (แนะนำ)** |
| 101 | +ตัวอย่าง policy (เลือกใช้ 1 อย่าง หรือผสม): |
| 102 | + |
| 103 | +- แบบที่ 1: ไม่รับส่งงานหลัง deadline |
| 104 | +- แบบที่ 2: ให้ส่งได้แต่ติดสถานะ "Late" |
| 105 | +- แบบที่ 3: ให้ส่งได้แต่หักคะแนนอัตโนมัติ |
| 106 | + |
| 107 | +*(ในวิชานี้ อาจารย์สามารถกำหนด policy ให้ นศ. แปลงเป็น Use Case และ UI ได้)* |
| 108 | + |
| 109 | +--- |
| 110 | + |
| 111 | +### FR-5 Manage Labs (Instructor) |
| 112 | +**Description** |
| 113 | +ผู้สอนสามารถสร้าง/แก้ไข LAB ได้ |
| 114 | + |
| 115 | +**Details** |
| 116 | +- สร้าง LAB ใหม่ได้ โดยระบุ: ชื่อ, คำอธิบาย, deadline, ไฟล์แนบ (ถ้ามี) |
| 117 | +- แก้ไขข้อมูล LAB ที่ยังไม่หมดเขตได้ |
| 118 | +- ปิด LAB (ไม่รับส่งแล้ว) เมื่อหมดเขตหรือเมื่อผู้สอนต้องการ |
| 119 | + |
| 120 | +--- |
| 121 | + |
| 122 | +### FR-6 View Submissions (Instructor / TA) |
| 123 | +**Description** |
| 124 | +ผู้สอน/TA สามารถดูรายการส่งงานของนักศึกษาแต่ละ LAB ได้ |
| 125 | + |
| 126 | +**Details** |
| 127 | +- แสดงรายชื่อนักศึกษาทั้งหมด และสถานะการส่ง/ไม่ส่ง |
| 128 | +- สามารถดาวน์โหลดไฟล์ที่ส่งได้ |
| 129 | + |
| 130 | +--- |
| 131 | + |
| 132 | +### FR-7 Grade & Feedback |
| 133 | +**Description** |
| 134 | +ผู้สอน/TA สามารถให้คะแนนและ Feedback แต่ละ submission ได้ |
| 135 | + |
| 136 | +**Details** |
| 137 | +- ระบุคะแนน (เช่น 0–100) และข้อความ Feedback |
| 138 | +- บันทึกวันที่/เวลาที่ให้คะแนน |
| 139 | +- นักศึกษาสามารถเห็นคะแนนและ Feedback ของตนเองในหน้าสถานะ |
| 140 | + |
| 141 | +--- |
| 142 | + |
| 143 | +### FR-8 View My Lab Status (Student) |
| 144 | +**Description** |
| 145 | +นักศึกษาสามารถดูภาพรวมสถานะ LAB ทุกตัวของตนเองได้บนหน้า “My Labs” |
| 146 | + |
| 147 | +**Details** |
| 148 | +- แสดงรายการ LAB พร้อมสถานะ: ยังไม่ส่ง / ส่งแล้ว / ส่งช้า / ตรวจแล้ว |
| 149 | +- แสดงคะแนนถ้ามี และ link ไปดูรายละเอียด LAB แต่ละตัว |
| 150 | + |
| 151 | +--- |
| 152 | + |
| 153 | +## 4. Non-Functional Requirements (NFR) |
| 154 | + |
| 155 | +### NFR-1 Usability |
| 156 | +- UI ต้องอ่านง่าย เหมาะกับการใช้งานบนจอ Desktop/Laptop สำหรับการเรียน |
| 157 | +- ใช้ layout ที่สม่ำเสมอ เช่น header, navigation bar, content area |
| 158 | + |
| 159 | +### NFR-2 Performance |
| 160 | +- หน้าแสดงรายการ LAB ควรโหลดภายใน ~3 วินาที (สำหรับ prototype ให้เน้นไม่ใส่ของหนักเกิน เช่น รูปภาพใหญ่ ๆ) |
| 161 | + |
| 162 | +### NFR-3 Security (ระดับวิชาเรียน) |
| 163 | +- ในวิชานี้ ถือว่ายังไม่ต้องทำระบบ login จริง แต่ออกแบบ UI ให้มีที่สำหรับแสดงชื่อผู้ใช้ / บทบาท |
| 164 | + เพื่อเตรียมต่อยอดไปสู่ระบบจริงได้ในอนาคต |
| 165 | + |
| 166 | +### NFR-4 Maintainability |
| 167 | +- HTML/CSS ต้องถูกแยกไฟล์ชัดเจน (`index.html`, `styles.css` ฯลฯ) |
| 168 | +- ใช้ class / id ที่สื่อความหมาย เพื่อให้อ่าน/แก้ไขโค้ดง่าย |
0 commit comments