Skip to content

Commit 51817f8

Browse files
committed
add: usecase srs userstories
1 parent b431a16 commit 51817f8

4 files changed

Lines changed: 476 additions & 3 deletions

File tree

week3/LAB3_SRS.md

Lines changed: 168 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,168 @@
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 ที่สื่อความหมาย เพื่อให้อ่าน/แก้ไขโค้ดง่าย

week3/LAB3_UseCaseExamples.md

Lines changed: 167 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,167 @@
1+
# ENGCE301 – LAB 3
2+
Use Case Examples (Short Version)
3+
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 ต้องการทำให้สำเร็จ>
18+
19+
### Preconditions
20+
- เงื่อนไขที่ต้องเป็นจริงก่อนเริ่ม Use Case
21+
22+
### Postconditions
23+
- เงื่อนไขที่ต้องเป็นจริงหลัง Use Case สำเร็จ
24+
25+
### Main Flow (Happy Path)
26+
1. ...
27+
2. ...
28+
3. ...
29+
4. ...
30+
31+
### Alternative Flows / Exceptions
32+
- **AF-1 – <ชื่อกรณีย่อย>**
33+
1. ...
34+
2. ...
35+
- **AF-2 – <ชื่อ error หรือกรณีพิเศษ>**
36+
1. ...
37+
2. ...
38+
```
39+
40+
---
41+
42+
## 2. Example UC-01 – View Lab List
43+
44+
**เชื่อมจาก:** US-01 View Lab List
45+
46+
```markdown
47+
## UC-01: View Lab List
48+
49+
**Primary Actor:** Student
50+
**Goal:** ดูรายการ LAB ทั้งหมดของวิชา ENGCE301
51+
52+
### Preconditions
53+
- นักศึกษาเข้าหน้า Home ของ Portal ได้
54+
- มี LAB อย่างน้อย 1 รายการในระบบ
55+
56+
### Postconditions
57+
- นักศึกษาเห็นรายการ LAB ทุกตัว พร้อมข้อมูลสำคัญ
58+
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 ที่สนใจ
65+
66+
### Alternative Flow
67+
- **AF-1 – ไม่มี LAB ในระบบ**
68+
1. ที่ขั้นตอน 2 ระบบไม่พบ LAB
69+
2. ระบบแสดงข้อความ “ยังไม่มี LAB สำหรับรายวิชานี้”
70+
3. Use Case จบลง
71+
```
72+
73+
---
74+
75+
## 3. Example UC-03 – Submit Lab
76+
77+
**เชื่อมจาก:** US-03 Submit Lab File, US-05 Late Submission Notice
78+
79+
```markdown
80+
## UC-03: Submit Lab
81+
82+
**Primary Actor:** Student
83+
**Goal:** ส่งไฟล์งาน LAB ผ่านระบบ
84+
85+
### Preconditions
86+
- นักศึกษาเข้าถึงหน้ารายละเอียด LAB นั้นได้
87+
- LAB ยังเปิดรับส่ง (ตาม Policy ของรายวิชา)
88+
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 ทั้งหมดของตัวเอง
134+
135+
### Preconditions
136+
- นักศึกษาเข้าหน้า My Labs ได้
137+
- ระบบมีข้อมูล LAB ของวิชานี้สำหรับนักศึกษาคนนี้
138+
139+
### 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

0 commit comments

Comments
 (0)