|
1 | | -## UC-01: View Activity History |
| 1 | +## UC-XX: <ชื่อ Use Case> |
2 | 2 |
|
3 | | -Primary Actor: Student |
4 | | -Goal: ดูรายการกิจกรรมทั้งหมดที่เคยเข้าร่วมและชั่วโมงกิจกรรมที่ได้รับ |
| 3 | +**Primary Actor:** <Student / Instructor / TA> |
| 4 | +**Goal:** <เป้าหมายหลักที่ Actor ต้องการทำให้สำเร็จ> |
5 | 5 |
|
6 | 6 | ### Preconditions |
7 | | -- Student ต้องเข้าสู่ระบบ (Authenticated) สำเร็จแล้ว |
8 | | -- ระบบมีข้อมูลกิจกรรมที่ Student เคยเข้าร่วมอย่างน้อย 1 กิจกรรม |
| 7 | +- เงื่อนไขที่ต้องเป็นจริงก่อนเริ่ม Use Case |
9 | 8 |
|
10 | 9 | ### Postconditions |
11 | | -- Student เห็นกิจกรรมที่เคยเข้าร่วมและชั่วโมงกิจกรรมที่ได้รับ พร้อมชั่วโมงสะสมรวม |
| 10 | +- เงื่อนไขที่ต้องเป็นจริงหลัง Use Case สำเร็จ |
12 | 11 |
|
13 | 12 | ### Main Flow (Happy Path) |
14 | | -1. Student เลือกเมนูหรือกดปุ่ม "ประวัติกิจกรรม / History" |
15 | | -2. ระบบดึงข้อมูลกิจกรรมทั้งหมดที่ Student เข้าร่วมสำเร็จแล้ว |
16 | | -3. ระบบแสดงตารางหรือรายการกิจกรรม พร้อมรายละเอียด: ชื่อกิจกรรม, วันที่เข้าร่วม, ชั่วโมงกิจกรรมที่ได้รับ |
17 | | -4. ระบบคำนวณและแสดง ชั่วโมงกิจกรรมสะสมรวม ท้ายตาราง |
18 | | -5. Use Case จบลง |
| 13 | +1. ... |
| 14 | +2. ... |
| 15 | +3. ... |
| 16 | +4. ... |
19 | 17 |
|
20 | 18 | ### Alternative Flows / Exceptions |
21 | | -- AF-1 – ไม่มีประวัติการเข้าร่วม** |
22 | | - 1. ที่ขั้นตอน 2 ระบบไม่พบข้อมูลกิจกรรมที่ Student เคยเข้าร่วม |
23 | | - 2. ระบบแสดงข้อความ **“คุณยังไม่เคยเข้าร่วมกิจกรรมใด ๆ”** |
24 | | - 3. Use Case จบลง |
| 19 | +- **AF-1 – <ชื่อกรณีย่อย>** |
| 20 | + 1. ... |
| 21 | + 2. ... |
| 22 | +- **AF-2 – <ชื่อ error หรือกรณีพิเศษ>** |
| 23 | + 1. ... |
| 24 | + 2. ... |
25 | 25 |
|
| 26 | +--- |
26 | 27 |
|
| 28 | +## UC-01: View Lab List |
27 | 29 |
|
| 30 | +**Primary Actor:** Student |
| 31 | +**Goal:** ดูรายการ LAB ทั้งหมดของวิชา ENGCE301 |
28 | 32 |
|
| 33 | +### Preconditions |
| 34 | +- นักศึกษาเข้าหน้า Home ของ Portal ได้ |
| 35 | +- มี LAB อย่างน้อย 1 รายการในระบบ |
29 | 36 |
|
| 37 | +### Postconditions |
| 38 | +- นักศึกษาเห็นรายการ LAB ทุกตัว พร้อมข้อมูลสำคัญ |
30 | 39 |
|
| 40 | +### Main Flow (Happy Path) |
| 41 | +1. นักศึกษาเปิดหน้า Home หรือหน้า Lab List |
| 42 | +2. ระบบโหลดรายการ LAB ของวิชา ENGCE301 |
| 43 | +3. ระบบแสดง list/card ของ LAB แต่ละตัว |
| 44 | +4. แต่ละ LAB แสดงชื่อ, คำอธิบายสั้น ๆ, deadline, สถานะ (Open/Closed) |
| 45 | +5. นักศึกษาตรวจดู LAB ที่ต้องทำ และเลือก LAB ที่สนใจ |
31 | 46 |
|
32 | | -## UC-02: Propose New Activity |
| 47 | +### Alternative Flows / Exceptions |
| 48 | +- **AF-1 – ไม่มี LAB ในระบบ** |
| 49 | + 1. ที่ขั้นตอน 2 ระบบไม่พบ LAB |
| 50 | + 2. ระบบแสดงข้อความ “ยังไม่มี LAB สำหรับรายวิชานี้” |
| 51 | + 3. Use Case จบลง |
33 | 52 |
|
34 | | -Primary Actor: Member (Student / Staff) |
35 | | -Goal: เสนอแบบฟอร์มขอจัดกิจกรรมเพื่อรอการอนุมัติจากผู้มีอำนาจ |
| 53 | +--- |
| 54 | + |
| 55 | +## UC-02: View Lab Details |
| 56 | + |
| 57 | +**Primary Actor:** Student |
| 58 | +**Goal:** ดูรายละเอียดทั้งหมดของ LAB แต่ละตัวก่อนเริ่มทำ |
36 | 59 |
|
37 | 60 | ### Preconditions |
38 | | -- Member ต้องเข้าสู่ระบบ (Authenticated ด้วยบัญชีมหาวิทยาลัย) |
| 61 | +- นักศึกษาเข้าถึงหน้ารายการ LAB (Lab List) ได้ |
| 62 | +- LAB ที่เลือกต้องถูกเผยแพร่แล้วและมีรายละเอียดพร้อมแสดง |
39 | 63 |
|
40 | 64 | ### Postconditions |
41 | | -- ระบบบันทึกข้อเสนอจัดกิจกรรมพร้อมสถานะ "Pending Approval" |
| 65 | +- นักศึกษาเห็นรายละเอียดโจทย์ LAB ครบถ้วน รวมถึงไฟล์แนบและ deadline |
42 | 66 |
|
43 | 67 | ### Main Flow (Happy Path) |
44 | | -1. Member เลือกเมนูหรือกดปุ่ม **"เสนอจัดกิจกรรม / Access Event"** |
45 | | -2. ระบบแสดงแบบฟอร์มให้กรอกรายละเอียดข้อเสนอ (ชื่อ, วันที่, เป้าหมาย, ผู้เข้าร่วมที่คาดหวัง, ฯลฯ) |
46 | | -3. Member กรอกข้อมูลที่จำเป็นทั้งหมด |
47 | | -4. Member กดปุ่ม **"Submit Proposal"** |
48 | | -5. ระบบตรวจสอบความสมบูรณ์ของข้อมูล และบันทึกข้อเสนอ |
49 | | -6. ระบบแสดงข้อความยืนยัน “เสนอกิจกรรมสำเร็จ รอการอนุมัติ” |
50 | | -7. Use Case จบลง (รอ Primary Actor ใน UC-03 มาดำเนินการต่อ) |
| 68 | +1. นักศึกษาคลิกที่ชื่อ LAB หรือปุ่ม "Details" จากหน้า Lab List (UC-01) |
| 69 | +2. ระบบดึงข้อมูลรายละเอียดทั้งหมดของ LAB นั้นจากฐานข้อมูล |
| 70 | +3. ระบบแสดงหน้า Lab Details ซึ่งประกอบด้วย: ชื่อ LAB, จุดประสงค์, รายละเอียดโจทย์, deadline, ไฟล์แนบ |
| 71 | +4. ระบบแสดงสถานะการส่งงานของนักศึกษาคนนั้น (Not Submitted / Submitted / Graded) |
| 72 | +5. นักศึกษาดูรายละเอียดและจบ Use Case |
51 | 73 |
|
52 | 74 | ### Alternative Flows / Exceptions |
53 | | -- AF-1 – ข้อมูลฟอร์มไม่สมบูรณ์** |
54 | | - 1. ที่ขั้นตอน 5, Member กรอกข้อมูลที่จำเป็น (Required Field) ไม่ครบถ้วน |
55 | | - 2. ระบบแจ้งเตือนให้กรอกข้อมูลให้ครบถ้วน โดยเน้น Field ที่ขาดหายไป |
56 | | - 3. กลับไปขั้นตอนที่ 3 เพื่อให้ Member แก้ไขข้อมูล |
| 75 | +- **AF-1 – Lab ไม่พร้อมใช้งาน** |
| 76 | + 1. นักศึกษาพยายามเข้าถึงรายละเอียด LAB ที่ผู้สอนยังไม่ได้เผยแพร่ |
| 77 | + 2. ระบบแสดงข้อความปฏิเสธการเข้าถึง: “รายละเอียด LAB นี้ยังไม่พร้อมใช้งาน” |
| 78 | + 3. Use Case จบลง |
| 79 | + |
| 80 | +--- |
57 | 81 |
|
| 82 | +## UC-03: Submit Lab |
58 | 83 |
|
| 84 | +**Primary Actor:** Student |
| 85 | +**Goal:** ส่งไฟล์งาน LAB ผ่านระบบ |
59 | 86 |
|
| 87 | +### Preconditions |
| 88 | +- นักศึกษาเข้าถึงหน้ารายละเอียด LAB นั้นได้ |
| 89 | +- LAB ยังเปิดรับส่ง (ไม่ว่าจะเป็นตรงเวลาหรือ Late Submission ตาม Policy) |
| 90 | + |
| 91 | +### Postconditions |
| 92 | +- ระบบบันทึกไฟล์และเวลาส่งงานของนักศึกษา |
| 93 | +- สถานะ LAB ของนักศึกษาคนนี้อัปเดต (Submitted หรือ Late) |
| 94 | + |
| 95 | +### Main Flow (ส่งตรงเวลา) |
| 96 | +1. นักศึกษาเปิดหน้า Lab Details (UC-02) |
| 97 | +2. ระบบแสดงส่วน “Submit Your Lab” |
| 98 | +3. นักศึกษากดเลือกไฟล์ (.pdf/.docx/.zip) |
| 99 | +4. ระบบตรวจสอบชนิดและขนาดไฟล์เบื้องต้น |
| 100 | +5. นักศึกษากดปุ่ม “Submit” |
| 101 | +6. ระบบบันทึกไฟล์และเวลาส่ง (timestamp) |
| 102 | +7. ระบบตรวจสอบว่า **ไม่เกิน deadline** |
| 103 | +8. ระบบอัปเดตสถานะเป็น **“Submitted”** |
| 104 | +9. ระบบแสดงข้อความ “ส่งงานเรียบร้อยแล้ว” |
60 | 105 |
|
| 106 | +### Alternative Flows / Exceptions |
| 107 | +- **AF-1 – File Type ไม่ถูกต้อง** |
| 108 | + 1. เกิดจากขั้นตอน 4 เมื่อไฟล์ไม่ใช่ชนิดที่รองรับ |
| 109 | + 2. ระบบแจ้งเตือน “ชนิดไฟล์ไม่รองรับ” |
| 110 | + 3. กลับไปที่ขั้นตอน 3 ให้เลือกไฟล์ใหม่ |
61 | 111 |
|
| 112 | +- **AF-2 – ส่งหลัง deadline (Late)** |
| 113 | + 1. ที่ขั้นตอน 7 ระบบพบว่าเวลาส่ง **เกิน deadline** |
| 114 | + 2. ถ้า policy อนุญาต Late: |
| 115 | + - ระบบบันทึกไฟล์ |
| 116 | + - ตั้งสถานะเป็น **“Late”** |
| 117 | + - ระบบแสดงข้อความเตือน **"ส่งงานล่าช้า"** |
| 118 | + 3. นักศึกษาเห็นสถานะ Late ในหน้า My Labs |
62 | 119 |
|
63 | | -## UC-03: Approve Activity Proposal |
| 120 | +- **AF-3 – ไม่อนุญาตส่งหลัง deadline** |
| 121 | + 1. ที่ขั้นตอน 7 หาก policy ไม่รับหลัง deadline |
| 122 | + 2. ระบบไม่บันทึก submission |
| 123 | + 3. ระบบแสดงข้อความ **“หมดเขตส่งงานแล้ว”** |
64 | 124 |
|
65 | | -Primary Actor: Approver (University Official / Activity Chairman) |
66 | | -Goal: ตรวจสอบข้อเสนอจัดกิจกรรมที่ถูกส่งเข้ามา และอนุมัติ/ปฏิเสธข้อเสนอนั้น |
| 125 | +--- |
| 126 | + |
| 127 | +## UC-04: View My Lab Status |
| 128 | + |
| 129 | +**Primary Actor:** Student |
| 130 | +**Goal:** ดูภาพรวมสถานะ LAB ทั้งหมดของตัวเอง |
67 | 131 |
|
68 | 132 | ### Preconditions |
69 | | -- Approver ต้องเข้าสู่ระบบ (Authenticated) และมีสิทธิ์ในการอนุมัติกิจกรรม |
70 | | -- มีข้อเสนอจัดกิจกรรมที่สถานะ "Pending Approval" อย่างน้อย 1 รายการ |
| 133 | +- นักศึกษาเข้าหน้า My Labs ได้ |
| 134 | +- ระบบมีข้อมูล LAB ของวิชานี้สำหรับนักศึกษาคนนี้ |
71 | 135 |
|
72 | 136 | ### Postconditions |
73 | | -- สถานะกิจกรรมเปลี่ยนเป็น "Approved" หรือ "Rejected" |
74 | | -- ระบบบันทึกการตัดสินใจพร้อมเหตุผล/Feedback (ถ้ามี) |
75 | | - |
76 | | -### Main Flow |
77 | | -1. Approver เลือกเมนู "ตรวจสอบข้อเสนอ / Event Submission" |
78 | | -2. ระบบแสดงรายการข้อเสนอที่สถานะ "Pending Approval" |
79 | | -3. Approver เลือกข้อเสนอที่ต้องการและดูรายละเอียดทั้งหมด |
80 | | -4. Approver เลือกปุ่ม "Approve" (หรือ "Pass") |
81 | | -5. ระบบบันทึกการอนุมัติและอัปเดตสถานะกิจกรรมเป็น "Approved" |
82 | | -6. ระบบแจ้งเตือน/ส่งอีเมลไปยังผู้เสนอ |
83 | | -7. Use Case จบลง |
| 137 | +- นักศึกษาเห็นสถานะ (Not Submitted / Submitted / Graded / Late) ของทุก LAB |
| 138 | + |
| 139 | +### Main Flow (Happy Path) |
| 140 | +1. นักศึกษาเปิดหน้า “My Labs” |
| 141 | +2. ระบบดึงข้อมูล LAB และสถานะการส่งงานของนักศึกษาแต่ละ LAB |
| 142 | +3. ระบบแสดงตารางหรือ card ของ LAB ทั้งหมด |
| 143 | +4. แต่ละแถว/การ์ดแสดงชื่อ LAB, สถานะ, คะแนน (ถ้ามี) และ Feedback สั้น ๆ (ถ้าตรวจแล้ว) |
| 144 | +5. นักศึกษาดูว่า LAB ไหนเสร็จแล้ว และ LAB ไหนยังต้องทำ |
| 145 | + |
| 146 | +### Alternative Flows / Exceptions |
| 147 | +- **AF-1 – มี LAB ที่ Late / Graded** |
| 148 | + 1. ระบบพบ LAB บางตัวที่ Late (สถานะ Late) หรือตรวจแล้ว (สถานะ Graded) |
| 149 | + 2. แสดงสถานะ Late/Graded ด้วยสี/ป้ายชัดเจน **(ต้องใช้ CSS Class ที่แตกต่าง)** |
| 150 | + 3. แสดงคะแนนและ Feedback ในคอลัมน์ Score |
| 151 | + |
| 152 | +- **AF-2 – ยังไม่เคยส่งงาน** |
| 153 | + 1. ระบบพบว่า LAB ทั้งหมดเป็นสถานะ Not Submitted |
| 154 | + 2. ระบบแสดงข้อความเสริม เช่น “คุณยังไม่ได้ส่ง LAB ใดเลย” |
| 155 | + |
| 156 | +--- |
| 157 | + |
| 158 | +## UC-06: Grade Submission |
| 159 | + |
| 160 | +**Primary Actor:** Instructor / TA |
| 161 | +**Goal:** บันทึกคะแนนและ Feedback สำหรับงาน LAB ที่นักศึกษาส่งมา |
| 162 | + |
| 163 | +### Preconditions |
| 164 | +- Instructor/TA ต้องเข้าสู่ระบบ (Authenticated) |
| 165 | +- Student ต้องส่งงาน LAB มาแล้ว (สถานะ Submitted หรือ Late) |
| 166 | +- Instructor/TA เข้าถึงหน้า View Submissions ของ LAB นั้นได้ |
| 167 | + |
| 168 | +### Postconditions |
| 169 | +- ระบบบันทึกคะแนนและ Feedback เรียบร้อยแล้ว |
| 170 | +- สถานะ LAB ของนักศึกษาคนนั้นเปลี่ยนเป็น **“Graded”** |
| 171 | +- คะแนนและ Feedback พร้อมแสดงในหน้า My Labs ของ Student (UC-04) |
| 172 | + |
| 173 | +### Main Flow (Happy Path) |
| 174 | +1. Instructor/TA เปิดหน้า View Submissions (UC-06 หรือเทียบเท่า) |
| 175 | +2. Instructor/TA เลือก Submission ของนักศึกษาที่ต้องการให้คะแนน |
| 176 | +3. ระบบแสดงหน้าจอสำหรับกรอกคะแนน (เช่น 0-100) และช่องกรอกข้อความ Feedback |
| 177 | +4. Instructor/TA กรอกคะแนนและข้อความ Feedback |
| 178 | +5. Instructor/TA กดปุ่ม **“Save Score”** |
| 179 | +6. ระบบบันทึกข้อมูลและอัปเดตสถานะเป็น **“Graded”** |
| 180 | +7. ระบบแสดงข้อความยืนยัน “บันทึกคะแนนเรียบร้อยแล้ว” |
84 | 181 |
|
85 | 182 | ### Alternative Flows / Exceptions |
86 | | -- AF-1 – ปฏิเสธพร้อม Feedback** |
87 | | - 1. ที่ขั้นตอน 4, Approver เลือกปุ่ม "Reject" (หรือ "Not Pass") |
88 | | - 2. ระบบบังคับให้ Approver กรอก Feedback/เหตุผล ในการปฏิเสธ |
89 | | - 3. ระบบบันทึกการตัดสินใจและอัปเดตสถานะเป็น "Rejected" |
90 | | - 4. ระบบแจ้งเตือนพร้อม Feedback ไปยังผู้เสนอ |
91 | | - 5. Use Case จบลง |
92 | | -- **AF-2 – ไม่มีสิทธิ์ในการอนุมัติ** |
93 | | - 1. ที่ขั้นตอน 1, ผู้ใช้เข้าถึงเมนู "ตรวจสอบข้อเสนอ" แต่ระบบพบว่าไม่มีสิทธิ์ "Approver" |
94 | | - 2. ระบบปฏิเสธการเข้าถึงและแสดงข้อความ "คุณไม่มีสิทธิ์ในการอนุมัติกิจกรรม" |
95 | | - 3. Use Case จบลง |
| 183 | +- **AF-1 – คะแนนที่กรอกไม่อยู่ในช่วง** |
| 184 | + 1. ที่ขั้นตอน 4, Instructor/TA กรอกคะแนนที่เกินขอบเขตสูงสุด (เช่น > 100) |
| 185 | + 2. ระบบแจ้งเตือน “คะแนนที่กรอกต้องอยู่ในช่วงที่กำหนด” |
| 186 | + 3. กลับไปที่ขั้นตอน 4 เพื่อแก้ไขคะแนน |
0 commit comments