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