FEATURE OVERVIEW

排課與調代課系統 · 功能總覽

目前最新版 v1.3.5(2026-10-21)已經具備的全部功能,依「一個學期的工作流程」整理。每項功能的操作步驟請見教學組長操作手冊;各版變更細節見 CHANGELOG。遇到問題或有建議,歡迎加入 LINE 社群、寫信或到 GitHub Issues 回報。

單校自架 · 資料不出校 開源免費(MIT) 國小/國中/普高/綜高/技高五種範本 全繁體中文 · 台灣教務用語

01角色與權限

登入後依角色顯示不同的選單。

角色負責什麼看得到的功能
系統管理員安裝、帳號、備份還原、SMTP 等系統層設定全部,含「系統管理」
教務主任綜覽與審核與教學組長幾乎相同(除系統管理)
教學組長日常主力:基礎資料、配課、排課、調代課基礎資料、排課作業、調代課
教師查自己的課表、自己請假、確認代課通知課表查詢(預設本人)、請假登記、我的代課鐘點
角色設定:教學組長、教務主任的帳號由系統管理員在「帳號管理」設定(v1.3.1);組長本身是教師時,同一個帳號加上「教學組長」即可。教師資料的「行政職稱」只影響減課與顯示。
帳號安全:首次登入強制改密碼;登入連續失敗 5 次鎖定 15 分鐘;使用者可自行改密碼,組長可替教師重設密碼、停用或啟用登入帳號;系統管理員忘了密碼時,可在主機上用指令產生臨時密碼(v1.3.2)。

02開始使用與基礎資料

功能說明版本
設定精靈全新系統第一次登入自動進入五步驟:學制範本 → 學年學期與起訖日期 → 節次表 → 匯入資料 → 完成。可中途離開、下次接續,系統管理可重新啟動。v1.0
一鍵示範資料全新系統可載入一所虛構國中(18 班、48 位教師、24 科、384 筆配課),兩分鐘內就能跑自動排課、請假、代課、匯出。已有學期時不出現,避免覆蓋正式資料。v1.2.0
學制範本國小、國中、普高、綜高、技高,自動帶入該學制的節次表與常見科目。v1.0
學期管理學年度、學期別、起訖日期(請假展開節次、看板、調代課都以此為準),可在「學期與節次表」編輯。v1.2.7
節次表編輯器每一天每一節的名稱、起訖時間、類型(一般課/早自習/午休/不排課),可新增節次列(例如第八節)。v1.0
多套節次表同學期多套作息(國中小、完全中學),班級各自指定。跨部老師以「實際時間是否重疊」判斷衝堂;兩部節數不同也正確處理,課表與通知單標出實際上課時間。v1.2.10–11
教師姓名、任教科目、基本鐘點、行政職與減課、Email/手機/LINE、在職狀態;可同時建立登入帳號。離職建議「設為非在職+停用帳號」,刪除前會列出會一併消失的紀錄。v1.0 / v1.2.8
教師時段規則每位教師每一節可設「不可排/盡量避開/偏好」。儲存不可排時段時,若那幾節已經有課會當場列出。v1.0 / v1.2.18
班級年級、班名(同學期不可重複)、學制、導師、群科、使用的節次表。v1.0
科目名稱、是否主科(自動排課會優先排上午)。v1.0
場地名稱、類型(一般/專科/實習工場/戶外)、容量、適用科目。v1.0
Excel 批次匯入科目、教師、班級、配課四種範本;錯誤會指出第幾列哪一欄。教師匯入可選「既有教師改為更新資料」,只覆蓋有填的欄位。v1.0 / v1.2.8
開新學期複製精靈從既有學期複製教師/班級/科目/場地/節次表,班級年級自動 +1,畢業年級提示移除;兩學期資料互不影響。v1.0

03配課

決定哪位老師、教哪個班、哪一科、每週幾節——排課的核心輸入。

功能說明版本
基本配課班級 × 科目 × 任課教師 × 每週節數。班級、科目、教師、跑班群組、單雙週組、場地的下拉選單都可打字搜尋。v1.0 / v1.3.4
連堂設定連堂長度(2~4 節)與每週次數,例如實習 3 節連上每週 2 次;連堂不跨午休。v1.0
場地需求指定特定場地,或只指定場地類型由自動排課挑選。v1.0
協同教學同一筆配課多位教師(第一位為主教),所有教師同時被占用。v1.0
跑班群組多個班級組成群組,群組內的多筆配課同一節一起上(多元選修、英數分組、社團)。成員班級須同一套節次表、各筆節數與連堂結構一致;同一位教師在群組內只能有一筆(v1.2.15 起會擋下)。v1.0 / v1.2.15
單雙週組同一節單週、雙週輪流上兩門課(例:701 週一三四節單週生科、雙週資科;702 反過來)。一組一個班,單週、雙週各一筆,節數與連堂相同。學期第一週為單週、之後固定輪流;隔週的課鐘點算一半。v1.3.0
即時鐘點側欄每位教師「配課節數 vs 應授鐘點」,超鐘點紅字標示(如 +2)。v1.0
超鐘點上限配課超過「應授 + N 節」時擋下並指名(N 預設 8,0 表示不限制;沒填基本鐘點的教師不受限)。v1.2.0
班級負荷警告某班每週配課總節數超過可排節次時警告。v1.0

04手動排課工作台

功能說明版本
拖拉排課左側未排課務清單(附剩餘節數)拖進週課表;拖回清單即移除。清單很長時課表固定、清單自己捲動。v1.0 / v1.2.6
即時衝突檢查可放顯示綠框、衝突顯示紅框並用人話說明原因(教師/班級/場地衝堂、教師不可排、非上課節次、每日上限…);跨節次表以實際時間判斷。v1.0
三視角同步班級/教師/場地三種角度檢視同一份課表,彼此即時同步。v1.0
鎖定格位鎖定後自動排課不會移動(第八節課後輔導、社團都靠這招)。v1.0
復原/重做、自動儲存Ctrl+Z 復原;編輯過程自動存草稿。v1.0
跑班群組連動群組內任一門課放入、移動、刪除、鎖定,整組一起動。v1.0
單雙週單雙週組合成一張卡片,拖一次放入單週、雙週兩堂(可連堂);衝堂判斷分單雙週,單週在 701、雙週在 702 不算衝堂。格子上下列出「單/雙」兩堂。v1.3.0

05自動排課

功能說明版本
排課引擎以 Google OR-Tools(CP-SAT)求解;在背景工作排程執行,不影響匯出等其他工作。結果另存新草稿「來源名 自排結果」,來源草稿不受影響。v1.0
硬性規則班級、教師、場地同一節只能一堂課(跨節次表看實際時間);教師不可排時段;只排一般課節次;連堂連續且不跨午休;跑班群組同時段;每週節數守恆;鎖定格位不動;同班同科目每日上限(預設 2 節);場地類型符合。v1.0
軟性偏好(S1–S8)教師偏好/避開時段、同科分散在不同天、教師每日節數上限、空堂集中、主科排上午、教師連續授課上限、導師的課優先排自己班第一節、全校教師偏好達成的公平性。排完附各項達成度報告。v1.0
排課前檢查先檢查資料是否可能排得出來(教師配課超過可排格數、班級超量、場地不足、連堂放不下、跑班群組節數不一致或同一教師重複…),逐項說明。v1.0 / v1.2.15
進度與提前結束即時顯示已找到幾個解、目前目標值、經過時間;可設時間上限,找到解後可提前結束取當前最佳解。v1.0
衝突定位排不出來時指出是哪幾件事湊在一起、附數字與建議(例如「301 國文 12 節單節,但每日上限 2 × 5 天 = 10」),可一鍵照建議放寬後重試。v1.0
部分排課盡量排,把真的排不下的課列成未排清單並說明原因;可勾選放寬每日上限、教師不可排時段、鎖定格位;發布後仍查得到原因。v1.1

06發布與全校查詢

功能說明版本
多份草稿同學期多份草稿並存,可複製、改名、刪除;已發布/已封存為唯讀快照。v1.0
檢查課表課務有沒有排完,以及衝堂、排在不可排時段、超過每日上限、連堂或節數與配課不符等衝突(多半來自排好後又改了資料)。草稿、已發布皆可檢查。v1.2.18
發布有未排完或衝突時先列清單,確認後才可強制發布;同學期至多一份已發布,舊版自動封存。重新發布時提醒有多少日後的調代課是依舊課表安排的。v1.0 / v1.2.18
全校課表查詢唯讀,依班級/教師/場地查詢已發布課表,手機版面可用;教師登入預設顯示本人課表。v1.0

07請假與調代課處理

功能說明版本
請假登記教師自登或組長代登;假別有公假、事假、病假、婚假、喪假、產假、進修等;可整天、半天(指定時段)、多天、跨週。依已發布課表自動展開每一節受影響的課;單雙週的課只列那一週真的有上的。v1.0 / v1.3.0
銷假未上的節次自動取消並通知代課老師;已上完的課照常計鐘點。v1.0
五種處置代課(計鐘點)、調課(兩人互換,不計)、併班(預設不計,可改)、自習、不處理;已處置的節次寫出「怎麼處置」,可撤回。併班列出這一節正在上課的老師與班級,同年級優先(v1.3.5)。v1.0 / v1.2.4 / v1.3.5
代課推薦列出當節有空的老師,同科、當天已在校者優先,附理由與本月已代節數;排很滿的老師自動排後面;無人可代時提示改併班或自習。v1.0
計費方式公費代課、自費代課、日薪代課、課務自理、不支鐘點,也可自行輸入;預設依假別(事假自費、其餘公費)。印在代課通知單上。v1.2.5 / v1.2.19
整批指派代課整張假單或其中一天一次派給同一位老師;代課老師自己有課的節次跳過並說明原因,已處理的不動。v1.2.19
調課列出可對調的節次:預設請假當週到下週,可放寬到往後 3 或 4 週;每個選項都已檢查雙方有空、沒有請假、沒被換過。預設列「也教這個班」的老師,可指定其他老師;支援連堂中的其中一節。研習可先登公假再調課。v1.2.1
通知與確認站內鈴鐺通知(含未讀數),設定 SMTP 時同步寄 Email;老師一鍵「確認收到」;調課雙方都收到通知,撤回也會通知。v1.0
通知確認看板每一筆的確認狀態,對未確認者一鍵再次提醒。v1.0

08看板、紀錄與各式通知單

功能說明版本
今日調代課看板選一天,列出全部異動(代課、調課、併班、自習、教室變動);調課在請假日與補課日兩天都列出。可列印 A4 公告單。v1.0 / v1.2.1
調代課紀錄依教師、日期區間、假別篩選;查一位老師時,他「缺的課」和「代的課」都會出現。v1.0
調課通知單照學校紙本格式的教師單與班級單(A4 直式週課表),可印一節、一張假單或篩選出的一週;跨週調課印成兩頁。v1.2.2
代課通知單教師單與班級單(含計費方式),併班標「[併]」;同一位代課老師多節合併成一張。v1.2.5

09代課鐘點統計

功能說明版本
月結報表依教師彙總代課節數與計費節數(併班、自習不計),附逐節明細;跨月的假單依每一節的日期自動分月;可匯出 Excel(彙總+明細)。v1.0
日薪代課計費方式為日薪的節次不計入鐘點,改列「日薪天數」(同一天算 1 天,註明共幾節);同一位請假教師同一天由兩位以上日薪代課分擔時,各算 1 天並標示「分擔」。v1.2.19
教師個人查詢教師可查自己每月代課的明細。v1.0
只提供節數與天數,不計算金額(各縣市、各學制的單價與規定不同)。

10巡堂表

功能說明版本
巡堂紀錄已發布課表+當天調代課疊起來的真實樣貌。A4 橫式,班級為欄、節次為列,上午、下午各一張(早自習、午休不列);代課、調課、併班、自習、停課、請假待處理都會標示;超過 12 班自動分頁。可印當天或整週。v1.2.12
分組巡堂單同一節 4 組以上的跑班群組(社團、多元選修)另列清單,一列一組,編號固定依配課建立順序。v1.2.12–13
匯出 Excel內容同列印頁,每天上午、下午各一分頁,分組單另成頁;已設 A4 橫向一頁寬,可先改再印。v1.2.14
儀表板即時概況現在這一節各班實際在上什麼課、誰在上(同巡堂表,已套用當天的調代課,有異動的班級標色);下課、早自習、午休時列下一節;每分鐘自動更新。兩部作息分開判斷。限組長、主任、管理員。v1.3.3
記錄說明自訂表格下方「授課情形、學生學習」的代碼說明可在系統管理改成各校寫法。v1.2.12

11匯出課表

功能說明版本
單一課表班級、教師或場地課表,Excel、PDF(內嵌中文字型)、PNG 三選一;所有登入者都能匯出。v1.0
全校總表一個 Excel,每班或每位教師一個分頁(教學組長以上)。v1.0 / v1.2.9
批次打包每班或每位教師一個 Excel,打包成 zip;在職教師全部列入(沒排課也有空白課表)。v1.0 / v1.2.9

12系統管理

功能說明版本
版本與新版提醒顯示目前版本與 GitHub 上的最新正式版,有新版時附更新內容與升級指南連結;只提醒、不自動升級,每天最多查一次,可關閉。選單底部隨時顯示版本。v1.2.3
帳號管理新增行政帳號、設定教學組長/教務主任/系統管理員身分(教師帳號可同時加上組長身分)、重設密碼、停用與啟用;至少保留一個啟用中的系統管理員。v1.3.1
學校資訊校名(顯示在介面、匯出課表、通知信、公告單),改完立即生效。v1.2.0
排課設定超鐘點上限(應授 + N 節)。v1.2.0
巡堂表設定記錄說明的代碼文字。v1.2.12
備份與還原每日凌晨自動備份、保留 30 份;立即備份;下載異地保存、上傳還原;還原前自動先備份現狀,還原後所有人重新登入。v1.0
Email 通知(SMTP)選填;可寄測試信驗證。未設定時只有站內通知。v1.0
重新啟動設定精靈限系統管理員。v1.0

13部署、升級與備份

Docker 一鍵部署六個容器(網頁、API、排課工作、匯出/備份工作、PostgreSQL、Redis);官方映像 amd64+arm64 雙架構,免建置直接拉取。
升級改 .env 的 IMAGE_TAG 後 pull、up;資料庫遷移自動執行。1.2.x 各版都沒有資料表結構變更;v1.3.0 首次變更,升級前務必備份,退回需還原備份。
HTTPS設定網域即自動申請憑證(Caddy);未設定時為校內 HTTP。
資料不出校單校自架,不連任何雲端服務;唯一的對外連線是每天一次的版本查詢,可關閉。
每一版發布前都經過:後端 692 項、前端 35 項、端對端 54 項自動測試(對真實 Docker 全棧),合併與標籤兩輪 CI,以及用正式映像在全新環境的實測。

14目前的限制

已知、尚未處理的部分。多數有變通做法(見手冊 FAQ)。

項目現況與變通
跑班群組+單雙週未做單雙週組只支援一個班的兩門課;「單週社團、雙週班會」這類整個群組隔週輪流尚未支援。
匯入配課的單雙週未做Excel 匯入配課還不能設定單雙週,請匯入後在畫面上組成單雙週組。
兼課、輔導費月結待討論月結只有代課;超鐘點(兼課)與課後輔導「當月實際上了幾節」需要學校停課日資料,尚未提供。
鐘點費金額不做系統只算節數與天數,金額由學校依規定計算。
跑班格子的顯示限制班級課表與匯出的同一格若是跑班群組(多門課同時),只顯示其中一門。
配課清單的場地欄限制指定了特定場地的配課,清單的「場地」欄仍只顯示類型需求。
跑班群組只能單節放入限制手動放入群組一律是單節;連上兩節的社團請「節數 2、不設連堂、拖兩次再鎖定」。
分組巡堂單順序限制固定依配課建立的順序,無法手動調整。
課表格子的違規標記未做衝突在「檢查課表」與發布時列出,課表格子上沒有常駐標記。
排課參數沒有設定畫面限制同班同科目每日上限(2 節)、教師每日節數與連續授課上限、偏好權重都使用預設值,畫面上沒有地方修改;排不出來時可在「部分排課」勾選放寬每日上限。
兩部之間的移動時間跨部老師不考慮移動時間;需要的話用教師不可排時段保留。

15規劃中

項目內容預定
匯入配課支援單雙週Excel 範本加上單週/雙週與配對欄位,並與舊範本相容。v1.3.x
工程改善API 映像拆掉排課引擎(約 674MB → 200MB)、前端按需載入、科目匯入支援主科欄、配課當下擋群組節數不一致、還原上傳改串流。之後

16版本沿革

版本日期重點
v1.0.02026-07-12首次公開發行:基礎資料、配課、手動與自動排課、發布、調代課、匯出、備份全流程
v1.1.0–1.1.22026-07-14加固:排課不堵匯出、部分排課、班名不重複
v1.2.02026-08-02一鍵示範資料、校名可在系統內設定、超鐘點上限
v1.2.1–1.2.52026-09-17~26調課、調課通知單、版本提醒、處置寫清楚、代課通知單與計費方式
v1.2.6–1.2.92026-10-01~02外部使用者回報修正、學期起訖可編輯、教師批次更新與帳號停用、全校教師課表匯出
v1.2.10–1.2.112026-10-04國中小、完全中學:跨部老師的實際上課時間與節數不同
v1.2.12–1.2.142026-10-06巡堂表列印、分組巡堂單、匯出 Excel
v1.2.15–1.2.162026-10-07跑班群組:重複教師檢查、每日節數算法
v1.2.17–1.2.182026-10-08登入重複送出修正、檢查課表
v1.2.192026-10-09日薪代課、整批指派代課
v1.3.02026-10-18單雙週課程(首次資料表結構變更)、升級前自動備份
v1.3.12026-10-20帳號管理(設定教學組長、教務主任)
v1.3.22026-10-20重設管理員密碼指令;安裝說明補上 .env 密碼的注意事項
v1.3.32026-10-21儀表板即時概況(Issue #50)
v1.3.42026-10-21下拉選單打字搜尋(跑班群組、導師、任教科目等)
v1.3.52026-10-21併班可以選老師;調課單記號說明

17意見回報

這一版的多數改進都來自老師們的回報。遇到問題、學校有特別的做法,或想要什麼功能,都歡迎告訴我們。三種方式擇一即可:

💬 LINE 社群「排課與調代課系統|使用者交流」
點此加入或用手機掃描:
LINE 社群 QR Code
可用暱稱加入。直接提問、和其他學校交流,新版發布也會在群組公告。
✉️ 寫信不需要任何帳號,直接寄到
begin0808@gmail.com(李佳恩老師)
🐞 GitHub Issuesgithub.com/begin0808/Course_Scheduling_System/issues
按「New issue」留言(需要免費的 GitHub 帳號),其他學校也看得到討論與處理進度。
回報問題時附上系統版本(選單底部)、操作步驟和畫面截圖,會更快找到原因;截圖請先遮住老師姓名等個人資料。