WENHUA HIGH SCHOOL
Coding Tutor
系統功能簡報版

以目前程式碼版本整理的教學平台說明,涵蓋角色功能、教學流程、線上評測、維護重點。

Admin / Teacher / Student 課程章節 + 小測驗 Python / PHP / C / C++ / Java 牛刀小試
SYSTEM OVERVIEW

整體架構與核心模組

PHP
無框架頁面式架構
MySQL
PDO + Prepared Statement
Bootstrap 5
介面與元件系統
Judge
沙箱執行 + 測資比對

資料主幹

  • courseschapters(父子層級)
  • chapter_questions 綁題庫題目
  • chapter_challenges 綁程式挑戰
  • quiz_results / challenge_submissions 記錄學習歷程

主要入口

  • 前台:index.php / course_view.php / chapter_view.php
  • 挑戰:solve_challenge.php
  • 教師:/teacher/*
  • 管理員:/admin/*
ROLES

三種角色的實際功能

學生端

  • 加入公開/自由選課課程
  • 閱讀章節與下載附件
  • 作答填充、單選、多選
  • 章節內牛刀小試即時執行
  • 進入挑戰頁提交程式碼

教師端

  • 建立課程、章節、小節
  • 綁定題庫題目(含牛刀小試)與程式挑戰
  • 管理公開/隱藏測資
  • 查學生挑戰狀態矩陣

管理員端

  • 系統儀表板與統計
  • 使用者 CRUD
  • CSV 批次匯入學生
  • 全站權限存取
TEACHING FLOW

典型教學流程(6步)

1
教師建立課程,設定 public / free_enroll / manual_enroll 與日期區間。
2
教師建立章節內容並綁定題庫與程式挑戰。
3
學生進課前,系統先做日期檢查與選課資格檢查。
4
章節頁進行小測驗,AJAX 立即回傳正誤並記錄作答。
5
挑戰頁提交程式碼,Judge 逐測資執行與比對。
6
教師在課程管理頁追蹤每位學生的挑戰進度與最新狀態。
ONLINE JUDGE

評測機制與回報狀態

雙層保護

  • Python:python3 -I + sandbox_runner.py
  • PHP:disable_functions 限制高風險函式
  • 新增:C / C++ / Java 編譯與執行評測
  • OS:ulimit + timeout 控制資源

常見狀態

accepted wrong_answer runtime_error time_limit_exceeded

每次提交會寫入 challenge_submissions,包含通過測資數、總測資數、實際輸出。

MAINTENANCE NOTES

維護與擴充前必看

資料庫一致性

  • schema.mdinit.php 有版本落差。
  • 部署新環境時要補 migration(題庫分類/附件相關表)。

設定與安全

  • DB 與上傳路徑設定為硬編碼,需環境化。
  • Judge 為應用層沙箱,建議逐步走向容器隔離。

以上簡報內容可直接投影展示,或作為新成員 onboarding 簡報底稿。

字體縮放
100%