/FossilGraderTuToi9

Fossil Grader version TUTOI9

Primary LanguageC

(เวอร์ชันนี้ข้อมูลเกี่ยวกับการติดตั้งเก่าแล้ว ให้ดูวิธีที่ได้รับการปรับปรุงที่ http://bit.ly/10RrGWv

=====================================================================
ขั้นตอนการติดตั้งระบบ
=====================================================================
1. ติดตั้ง appserv-win32-2.5.10.exe (จำ username กับ password ที่ตั้งไว้ให้ดี)
2. ค้นหาไฟล์ที่ชื่อ php.ini ในเครื่องแล้วทำการแก้ไข โดยให้ลบเครื่องหมาย ; (semicolon) หน้าบรรทัด zip.dll (ctrl+F แล้วค้นหาคำว่า zip) 
3. ทำการ restart service mysql หนึ่งรอบ
4. ทำการ copy folder ชื่อ web-submission ไปไว้ที่ Apperv/www/
5. เปิด browser (chrome หรือ firefox) แล้วไปที่ localhost/web-submission
6.-->เข้าสู่หน้า web first-config
    - กรอก username password ที่ตั้งไว้ตอนติดตั้ง appserv 
    - กรอกชื่อระบบ (ตั้งชื่อเหมือนการตั้งชื่อตัวแปร [0-9|A-Z|a-z|_])
    - ตั้ง username และ password ของ admin เพื่อใช้ในการ login ครั้งแรก
7.-->เข้าสู่หน้า login ของระบบ
    -กรอก username และ password ของ admin ที่ตั้งไว้หน้าที่แล้ว (ถ้าเข้าได้ก็เป็นอันเรียบร้อย)

=====================================================================
วิธีการใช้งาน
=====================================================================
ส่วนของ super admin (default ของระบบจะเป็น username: superadmin, password: superadmin)
คำสั่งในเมนู Admin [แสดงข้อมูล admin]
- I want to "upload" --> upload ข้อมูล admin (สังเกตดีๆ รายระเอียดของ format การสร้างไฟล์ upload จะอยู่แสดงให้เห็นในช่อง textbox ทั้งหมด แล้วเราก็สามารถ upload ข้อมูล admin คนเดียวโดยใช้ textbox นี้ได้เช่นกัน โดยไม่จำเป็นต้อง browse file)
- I want to "delete" --> สร้าง link สำหรับใช้ลบข้อมูล admin ตรง username ขึ้นมา (เอา link ออกโดยการใช้คำสั่ง delete ซ้ำ)
- I want to "download" --> download ข้อมูล admin ทั้งหมด
- สามารถ double click แถวที่ต้องการจะ แก้ไขข้อมูลเพื่อทำการแก้ไขได้ ยืนยันการแก้โดยกด enter

คำสั่งในเมนู Subject [แสดงข้อมูลรายวิชา]
- I want to "upload"*
- I want to "delete"*
- I want to "download"*
- double click*
*คล้ายกับเมนู Admin

คำสั่งในเมนู Privilage [แสดงสิทธิ์การใช้งานรายวิชา]
- click ช่องที่ต้องการให้ admin มีสิทธิ์ใช้งานได้ (เป็นแบบ toggle toggle)

=====================================================================
ส่วนของ admin (การ login ต้องทำการเลือกรายวิชาที่มีสิทธิ์สอนให้ถูกด้วย)
คำสั่งในเมนู Main [เป็นเมนูที่ใช้ในการส่ง file มาตรวจ]
- ทดลองเล่น

คำสั่งในเมนู User [แสดงข้อมูล user]
- I want to "upload"*
- I want to "delete"*
- I want to "download"*
- I want to "random" --> ใช้ในการ random password ของ user ทั้งหมดใน table ที่เห็น
- double click*
*คล้ายกับเมนู Admin ของ super admin

คำสั่งในเมนู Status [แสดงข้อมูลการ login]
- I want to "download"*
- I want to "delete"*
- I want to "approve" --> ใช้ในการ clear ประวัติการ login ของ username กับ ip (ใช้ตอนเปลี่ยน section) 

คำสั่งในเมนู Problem [แสดงข้อมูล problem]
- I want to "upload"* (content ที่ upload ทั้งหมดที่ไม่ใช่นามสกุล .in .sol .exe จะแสดงให้ผู้ใช้เห็น และหากมีการ upload file .exe ไว้ใน problem ข้อนั้นจะสามารถ เลือกใช้เป็น program ตรวจคำสั่งแทน 4 โปรแกรมที่ compare มีให้เลือก แต่เมื่อ upload แล้วต้อง refresh เมนูอีกครั้งจึงจะเห็น)
- I want to "delete"*
- I want to "download"*
- double click*
*คล้ายกับเมนู Admin ของ super admin

คำสั่งในเมนู Result [แสดงข้อมูลคะแนน]
- I want to view as <???> sort by <???> detail <???> start time "???" --> เป็นลักษณะการแสดงผลต่างๆ ให้ทดลองดู
- I want to "download" as <???> sort by <???> detail <???> start time "???" --> download ตารางที่แสดงเห็นอยู่

คำสั่งในเมนู Grader [แสดงสถานะการตรวจของ grader]
- I want to "gradeone" as <???> --> สร้าง link คล้ายการ delete แต่จะใช้เพื่อทำการส่งรายการที่เลือกไปตรวจอีกครั้ง
- I want to "gradeall" as <???> --> ส่งรายการทั้งหมดที่เห็นอยู่ไปตรวจอีกครั้ง
- I want to "clear" as <???> --> clear queue ของรายการที่กำลังรอตรวจทั้งหมด
- I want to "download" as <???>*
*คล้ายกับเมนู Admin ของ super admin

คำสั่งในเมนู Config [config ระบบ]
- Problem content download [ON|OFF] --> เปิด/ปิด การแสดงผล file ข้อมูลโจทย์ที่หน้าเมนู Main
- Last "?" source code submission download [ON|OFF] --> เปิด/ปิด การ download code เก่าที่เคย submit ไว้ ที่หน้าเมนู Main โดยสามารถกำหนดจำนวนไฟล์ย้อนหลังได้
- Check source code header [ON|OFF] --> เปิด/ปิด การตรวจสอบ header ของ code ที่ส่งเข้ามาตรวจ (เหมือนที่ใช้ตอน sutoi)
- Submission avaliable (Gradding) [ON|OFF] --> เปิด/ปิด การส่ง grader
- Printer "????????????" usable [ON|OFF] --> เปิด/ปิด การใช้งาน printer (ต้องทำการ กำหนด path ของ printer ในเครื่องด้วยว่าอยู่ที่ไหน ให้ลองทำการทดสอบโดยใช้คำสั่ง print ใน cmd ของ window ดูเมื่อสำเร็จแล้วให้นำ path ที่ใช้มาใส่) 
- Problem link bottom [ON|OFF] --> เปิด/ปิด แถบแสดงผลคะแนนด้านล่างสุดของหน้าเมนู Main
- Check IP login [ON|OFF] --> เปิด/ปิด การตรวจ check IP ในการ login (การพยายาม login ซ้อนที่แสดงในหน้าเมนู Status)

เมนู >>Grader<< [download file grader-???.bat มาเพื่อให้ทำการ run เพื่อเปิดระบบ grader]
เมนู problem.zip [download file problem.zip ที่บรรจุข้อมูลของโจทย์ทั้งหมดที่มี]
เมนู source.zip [download file source.zip ที่บรรจุข้อมูลของ sourcecode ทั้งหมดของ user ทุกคน]

>>> ให้ทดลองเล่นดู (ข้อมูลใน folder ชื่อ data-test ที่ให้มาสามารถใช้ทดลองได้

=====================================================================
ส่วนของ user (การ login ต้องทำการเลือกรายวิชาที่เรียนให้ถูกด้วย)
คำสั่งในเมนู Main [เป็นเมนูที่ใช้ในการส่ง file มาตรวจ]
- ทดลองเล่น

คำสั่งในเมนู Result [แสดงข้อมูลคะแนน เรียงตามอันดับคะแนนและจะไม่บอกรายชื่อว่าเป็นใคร]

=====================================================================
ส่วนของ supervisor (การ login ต้องทำการเลือกรายวิชาที่มีสิทธิ์ให้ถูกด้วย)
คำสั่งในเมนู Main [แสดงผลการตรวจของ user ใน group เดียวกับตัวเองในมุมมองเดียวกับที่ user เห็น]
- ทดลองเล่น

คำสั่งในเมนู Result [แสดงข้อมูลคะแนนเหมือนของ admin แต่จะแสดงเฉพาะ user ใน group เดียวกับตัวเองเท่านั้น]
- I want to view as <???> sort by <???> detail <???> start time "???"*
- I want to "download" as <???> sort by <???> detail <???> start time "???"*
*คล้ายกับเมนู Result ของ admin


=====================================================================
หมายเหตุ
=====================================================================
- ไม่ควรตั้งชื่อ problem ยาวเกิน 30 ตัวอักษร (ส่วน name ไม่เกิน 100 ตัวอักษร)
- ไม่ควรให้ username ของทุกคนในระบบซ้ำกันเด็ดขาด
- database จะมีอยู่สอง ส่วนหลักคือ master จะมีหน้าที่เก็บ admin และรายวิชาทั้งหมด อีกส่วนจะเป็น database ของรายวิชานั้น
-หากมีการเปลี่ยน username password ของ phpmyadmin ให้ไปที่ AppServ/www/web-submission/z-config.php แล้วแก้ที่ MYSQL_USER และ  MYSQL_PASSWD

=====================================================================
Credit
=====================================================================
ระบบนี้พัฒนาต่อยอดมาจากระบบ fossil grader