Open MigMikael opened 7 years ago
[อัพเดทความคืบหน้า] พบว่าการทำฟิเจอร์นี้ค่อนข้างซับซ้อนกว่าที่คิดไว้อยู่มากทีเดียว ผมขอแบ่งการทำงานออกเป็นสองส่วนได้แก่
ความท้าทายในส่วนแรกอยู่ที่การคิวรี่ข้อมูลจากดาต้าเบส การที่จะรวมคะแนนของแต่ละครั้งออกมานั้นจำเป็นต้องเข้าถึงข้อมูลจากหลายๆ ตารางมารวมกัน วันนี้หลังจากที่พยายามเข้าถึงข้อมูลและจัดระเบียบข้อมูลอยู่เป็นเวลานานถือว่าคืบหน้าไปน้อยมาก จึงคิดว่าจะเปลี่ยนวิธีครับผม
โดยแทนที่จะเข้าถึงข้อมูลหลายตารางแล้วนำมารวมในทุกครั้งที่มีการเรียกใช้ api score board เปลี่ยนเป็นเพิ่มฟิลด์ score ในตาราง submission แล้วเก็บคะแนนรวมของการส่งครั่งนั้นๆ ไว้เลย วิธีนี้ทำให้เมื่อมีการเรียกใช้ api score board ระบบจะไม่ต้องไปคิวรี่หลายๆ ตาราง
ดีครับ ตัวข้อมูลในตารางก็เข้าใจง่ายขึ้นด้วย เห็นปุ๊บก็รู้ปั๊บว่าคืออะไร (ผมเพิ่งรู้ว่าคุณไม่ได้ทำแบบนี้ตั้งแต่แรกนะเนี่ย คิดไม่ถึงว่าแนวคิดคุณในตอนก่อนหน้ามันออกจะยุ่งยากไปเยอะเลย)
ครับผมม ผมก็ไม่เข้าใจเหมือนกันว่าทำไมไม่คิดแบบนี้ตั้งแต่แรก แต่เหมือนพอเจอปัญหาที่มันแก้ยากๆ พอเราถอยออกมาแล้วมองปัญหาในมุมที่ต่างออกไป เลยทำให้คิดวิธีแก้ที่ดีได้ (อันนี้ต้องขอบคุณโจทย์คอมโปรของอาจารย์สมัยที่เรียนคอมโปรหนึ่งและสองมากมากครับ 55555)
[อัพเดทความคืบหน้า] วันนี้หลังจากลองเปลี่ยนวิธีตามที่ได้ชี้แจงไว้ด้านบน พบว่าทำให้การจัดการข้อมูลง่ายขึ้นมาก scoreboard view version 1 สามารถเรียงข้อมูลตามคอลัมน์ได้โดยกดที่หัวคอลัมน์ รูปบนคือการเรียงข้อมูลโดย Default (เรียงตาม id ของนักศึกษา) และรูปล่างคือการเรียงตาม total score . สำหรับการเรียงข้อมูลผมใช้ jquery plugin ตัวนี้ครับ http://tablesorter.com/docs/index.html . พรุ่งนี้ผมคิดว่าจะพัฒนาต่อให้วิวใช้งานได้ดีขึ้น เป็นต้นว่า
. มีฟิเจอร์อะไรในหน้า scoreboard ที่เกรดเดอร์เก่ามี แต่อันใหม่ยังไม่มีบ้างครับ ผมจะได้เพิ่มเข้าไปให้ใช้งานได้ทัดเทียมกัน
[อัพเดทความคืบหน้า] ตอนนี้ผมได้เพิ่มฟิเจอร์ของ scoreboard ตามที่ได้ชี้แจงไว้ด้านบนเรียบร้อยแล้วครับ ใน commit นี้ 8ed3bcffc7c7730497d09f8ac1893eb78be92778
พรุ่งนี้จะลองเทสดูว่าผลเป็นเช่นไร (วันนี้พยายาม vpn เข้าไปในมอ แล้ว remote desktop เข้าไปที่เครื่องปอโทเพื่อเทส แต่ remote ไม่สำเร็จเลยต้องยกยอดไปเทสพรุ่งนี้ครับ)
หน้าตา scoreboard ในปัจจุบันครับ
score-2017-08-04-16-33-11.xlsx หน้าตาไฟล์ Excel ที่ได้จากการ export คะแนน
API สรุปผลการส่งแต่ละข้อแบบให้เห็นว่าคนไหนส่งและไม่ส่งข้อไหนบ้าง