Skip to content

Commit

Permalink
Merge branch 'KBTG-Kampus-ClassNest-SE-Java:main' into dev
Browse files Browse the repository at this point in the history
  • Loading branch information
peachoenixzz authored Feb 21, 2024
2 parents d5bc16e + 4970f66 commit d6fa114
Showing 1 changed file with 41 additions and 1 deletion.
42 changes: 41 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
* ในฐานะผู้ดูแลระบบ ฉันต้องการเพิ่มใบลอตเตอรี่ เพื่อที่จะสร้างคลังเก็บลอตเตอรี่
#### Technical Details: EXP01
* POST /admin/lotteries
* ต้องยืนยันสิทธิ์การเข้าใช้งานด้วย basic authentication
* ต้องยืนยันสิทธิ์การเข้าใช้งานด้วย basic authentication (username = admin, password = password)
* Request Body
```json
{
Expand Down Expand Up @@ -126,3 +126,43 @@ sequenceDiagram
* ป้องกันการเข้าถึงข้อมูล เช่น ดำเนินการกับข้อมูลได้เฉพาะที่ผู้ใช้นั้นๆ มีสิทธิ์
* มีการจัดการ Clean up โค้ดอย่างเหมาะสม ลบส่วนที่ไม่ต้องการใช้งาน และมีการจัดรูปแบบโค้ด
* การให้คำแนนจะแบ่งให้เป็นส่วน หากทำไม่เสร็จหรือไม่ได้ทำจะได้คะแนนตามส่วน

## สรุปคำถามที่มีคนถามไว้เผื่อมีคนสงสัยแล้วไม่ได้อ่านแชท

1. มี database/design ให้หรือเปล่า?

ตอบ Database สามารถออกแบบได้เลยครับ ให้อย่างน้อยมีตารางชื่อ lottery และ user_ticket โดยถ้าชื่อไม่ตรงสามารถกำหนด @Table(name = "ชื่อตาราง") ไปที่ entity ได้ https://www.baeldung.com/jpa-entity-table-names

2. ตรง User story ในแต่ละข้อที่มี Request / Response มาให้ อันนี้ถือเป็น final design แล้ว ต้องทำตามนี้เท่านั้น (ถ้าแก้ไขปรับเปลี่ยนจะถูกหักคะแนน) หรือสามารถปรับเปลี่ยนได้ตามความเหมาะสมเหรอครับ

ตอบ Request กับ Response ใช้วิธีเช็คโดยการรันโปรแกรมปกติห้ามขาดแต่เกินได้ (แนะนำว่าทำให้ตรงจะปลอดภัยสุด)

3. เลข lottery ticket 1 เบอร์สามารถมีมากกว่า1ใบได้มั้ยครับ?

ตอบ สามารถมีได้ 1 ใบ หรือหลายใบซ้ำกันก็ได้ การให้คะแนนไม่ได้ตรวจตรงนี้ จะโฟกัสไปที่การตรวจว่าผลลัพธ์ของการคำนวณต้องถูกครับ

4. มีแค่ Admin ที่ต้อง Authen ส่วน User ไม่จำเป็นต้อง Authen (Public endpoint) ใช่ไหมครับ?

ตอบ ใช่ครับ


5. ตัว username กับ password สามารถใช้เป็น Inmemory ได้ไหมครับ หรือ set ค่าใน application.properties ก็ได้ครับ?

ตอบ ถ้าหมายถึงของตัว Authen ได้ทั้งสองแบบครับ

6. EX03: ตัวลอตเตอรี่หากทำตาม requirement พื้นฐานสามารถซื้อได้เพียงครั้งละใบใช่ไหมครับ ถ้าเรียกการซื้อลอตเตอรี่เบอร์เดิมอีกครั้งจะถือว่าซื้อ 2 ครั้ง หรือ ไม่นับซ้ำครั้ง หากเลือกที่ ignore การซื้อซ้ำ สามารถเลือกที่จะ return error แทนการอัพเดทได้ไหม (กำหนดให้ซื้อได้ 1 ใบ ต่อ 1 คน)

ตอบ EX03 ซื้อได้ทีละ 1 ใบครับ ตอนตรวจจะไม่ได้ตรวจว่าเราซื้อซ้ำหรือเปล่า ดังนั้นกรณีทดสอบเราจะทดสอบการซื้อครั้งเดียวในแต่ละตัวเลข ขอแค่การซื้อทำงานได้ถูก

7. EX05: จากข้อที่แล้วถ้ามีการซื้อซ้ำ การที่จะขายคืนล็อตเตอรี่ผมจะต้องขายคืนลอตเตอรี่ชุดใดบ้าง ถ้าเป็นกรณีที่ซื้อซ้ำได้ผมต้องขายคืนรายการล่าสุดหรือทั้งหมดของเลขนั้นครับ

ตอบ EX05 การขายจะขายเพียงครั้งเดียว ดังนั้นถ้าเราทำ support ลอตเตอรี่หลายใบ ควรต้องลบทุกใบออกครับ ตัวนี้จะตรวจสอบแค่ว่ามีการลบออกจริงไหมในระบบ

8. ผมเปลี่ยนชื่อไฟล์ที่เป็น project ตั้งต้นบางอันได้ไหมนะครับพอดีมันแดงใน intelij เลยอยากแก้ ><

ตอบ ได้เลยครับ รันขึ้นก็พอ 🤣

9. spring.datasource.username กับ spring.datasource.password ตั้งเป็น username กับ password เลยได้ไหมครับ
ไม่ต้องทำเป็น env variable เหมือน datasource.url ใช่ไหมครับ

ตอบ หมายถึงตรง config connection ของ database ใช่ไหมครับ ใช้เป็นอะไรก็ได้ ขอให้เชื่อมต่อได้ก็พอครับ

0 comments on commit d6fa114

Please sign in to comment.