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

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

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

整體架構與核心模組

PHP
無框架頁面式架構
MySQL
PDO + Prepared Statement
Bootstrap 5
介面與元件系統
Docker 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

評測機制與回報狀態

解耦、擴充與保護

  • Judge 與 LMS 分離,Docker Node 可部署在不同伺服器
  • 循序/輪詢/依連線數與權重分配
  • 故障節點離線後改試其他節點,並保留本機備援
  • 支援 Python / PHP / C / C++ / Java

常見狀態

accepted wrong_answer runtime_error time_limit_exceeded security_violation

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

尖峰時可增加 Judge Node,降低大量編譯與執行工作拖慢教學網站的風險。

MAINTENANCE NOTES

維護與擴充前必看

資料庫一致性

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

設定與安全

  • 敏感設定(DB 憑證、API Token、OAuth 金鑰)已透過 .env 環境變數注入。
  • 持續維護 Docker Judge Image、健康監控、節點權重與容器隔離策略。

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

字體縮放
100%