ตัวอย่างส่วนของการออกแบบ ( Design )
การออกแบบของระบบตรวจสอบภาษา C และ C++ ตอนแรกออกแบบไว้ได้ประมาณนึงแต่เนื่องจากสุดท้ายเวลาค่อนข้างกระชั้นชิด และ เอาเวลาไปพัฒนาระบบ Backend ค่อนข้างเยอะ เลยเปลี่ยนจากเขียน Code Design เองไปเป็นการใช้ AdminLTE Theme
ส่วนของฝั่งผู้ใช้ หรือ ฝั่งนักเรียน
Login Page ส่วนของหน้าเขาสู่ระบบ
ส่วนของหน้าส่ง Source Code
ส่วนของ Backend ที่ใช้ในการพัฒนาระบบ คือ PHP สำหรับส่วนของการตรวจสอบ Source Code ใช้ shell_exec ในส่วนที่ภาษา PHP มีให้ เพื่อใช้ในการ Compile โดย Compiler ที่เลือกใช้ในภาษา C คือ GCC
ตัวอย่างคำสั่ง Compile
gcc -std=gnu99 -w -O2 -fomit-frame-pointer -lm
และส่วนของฐานข้อมูลที่เลือกใช้ในการพัฒนาคือ MySQL
Source Code ทั้งหมด -> GitHub : Thanawatgulati/compro2grader
ประสบการณ์หลังเริ่มใช้งานไปได้ 1 ภาคการเรียน
พบปัญหาหลักๆ คือ การที่มหาลัยใช้ Windows และการเขียนโปรแกรมของรุ่นน้องบ้างครั้งเขียน Compile บน Windows แต่ละเครื่องคำตอบไม่เหมือนกันบ้าง หรือ เอามา Compile บน Grader [Linux] ผลลัพธ์ออกไม่เหมือนบน Windows
และอีกปัญยหา คือ การจัดการ Memory คิดว่ายังไม่ไดัพอใน การ Compile
และส่วนอื่นๆของฝั่ง Admin ที่อาจจะออกแบบให้ใช้ยากเกินไป จึงได้เริ่มพัฒนาระบบใหม่ในชื่อของ sigma-Grader ซึ่งครั้งนี้ใช้ Frontend เป็น NextJS และ Backend เป็น NodeJS ส่วนของ ฐานข้อมูลเปลี่ยนไปทดลองใช้ MongoDB ที่เป็นแบบ NoSQL เพื่อเพิ่มความเร็วในการอ่านเขียนข้อมูล และลดปัญหาGraderตัวนี้คิดว่าจะช่วยลดปัญหา คอขวด ในการรอตรวจโดยใช้ STRUCTURE แบบ Queue ในการจัดการคิวในการตรวจ
ทั้งนี้ระบบนี้อยู่ในขั้นตอนการพัฒนา สามารถตรวจสอบได้ที่
ฝากผลงานเพิ่มเติมที่
ยังมีระบบ ลงทะเบียนกิจกรรมชุมนุม และ ระบบ Grader v.beta ที่เป็นภาษา python อีกด้วย
Top comments (0)