Skip to content

Latest commit

 

History

20 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

🎓 クラス配属システム

必修科目のクラス配属を自動化するローカル動作の Web アプリです。
Microsoft Forms の希望調査データを読み込み、抽選アルゴリズムに従ってクラスを割り当てます。

特徴

  • 完全ローカル動作 — 入力データは外部に送信されません
  • xlsx 入出力 — Forms の出力ファイルをそのまま使用可能
  • バリデーション — 対象外学生・重複回答を自動検出
  • 未回答学生の自動補完 — 希望調査に回答しなかった学生もランダムに配属
  • 再現性のある抽選 — シード値を固定することで同じ結果を再現可能
  • インストール不要 — ブラウザで HTML ファイルを開くだけで動作

操作の流れ

① 対象学生リストをアップロード

配属対象者の名簿(学籍番号・メールアドレス・氏名)を xlsx でアップロードします。
「📄 リストのテンプレDL」でサンプルファイルを取得できます。

DUET出席簿(xlsx形式)をそのまま利用できます。

列名 内容 例
学生ID 学生ID XXXXYYZ001
メールアドレス メールアドレス(一意の識別子) [email protected]
氏名 氏名 山田 太郎

アップロードすると、配属対象人数とクラス定員が自動更新されます。

② 希望調査データをアップロード

Microsoft Forms のエクスポートファイル、または手動作成の xlsx をアップロードします。
「📄 希望調査テンプレDL」でサンプルファイルを取得できます。

対応している列名の形式:

項目 通常形式 Microsoft Forms 形式
識別子 学籍番号 メール
氏名 氏名 名前
第1希望 第1希望 第1希望のクラスを選んでください。
第2希望 第2希望 第2希望のクラスを選んでください。
第3希望 第3希望 第3希望のクラスを選んでください。

クラス名は クラス2:英語講読 のようなコロン付き形式にも対応しています(コロン以降は無視)。

アップロード時に以下のバリデーションが自動で実行されます。

チェック内容 表示
対象学生リストに存在しないメールアドレス 🔴 赤パネル「対象外の学生」+行番号
同一メールアドレスの複数回提出 🟡 黄パネル「重複提出」+初出行番号
問題なし 🟢 緑パネル「バリデーション通過」

③ 設定を確認

  • クラス数と各クラスの定員をサイドバーで調整
  • シード値を固定すると抽選結果を後から再現できます(空欄の場合は実行のたびにランダム)

④ 配属を実行

「▶ 配属を実行」を押すと即座に結果が表示されます。

⑤ 結果をダウンロード

「⬇ 結果をxlsxでDL」で以下のシートを含む xlsx ファイルを取得できます。

シート名 内容
配属結果一覧 全学生の学籍番号・メール・氏名・配属クラス・配属方法
クラス別集計 クラスごとの人数・希望別内訳
クラス1〜N クラスごとの名簿

配属アルゴリズム

1. 回答済み学生を第1希望のクラスに仮配属する

2. 定員内であれば確定し、定員を超過したクラスでは抽選を実施
   → 当選:第1希望に確定
   → 落選:次のステップへ

3. 落選した学生を第2希望のクラスに仮配属する

4. 定員内であれば確定し、定員を超過したクラスでは抽選を実施(抽選対象は仮配属のみ)
   → 当選:第2希望に確定
   → 落選:次のステップへ

5. 第3希望についても同様に仮配属と抽選をおこなう

4. 第3希望まで決まらなかった学生と、希望調査に未回答だった学生を
   空きのあるクラスにランダムで配属

配属方法は結果ファイルの「配属方法」列に記録されます。

配属方法 意味
第1希望 第1希望のクラスに配属(定員内)
第1希望(抽選) 定員超過クラスの抽選に当選
第2希望 第1希望に落選、第2希望に配属(定員内)
第2希望(抽選) 第1希望に落選、第2希望で定員超過、抽選に当選
第3希望 第1~2希望に落選、第3希望に配属(定員内)
第3希望(抽選) 第1~2希望に落選、第3希望で定員超過、抽選に当選
ランダム 第3希望まで決まらなかったためランダムに配属
未回答 希望調査に回答しなかったためランダムに配属

動作環境

モダンブラウザ(Chrome / Firefox / Edge / Safari)で動作します。
インターネット接続は Google Fonts の読み込みにのみ使用されます(オフライン時はフォントが変わりますが機能します)。

使用ライブラリ

ライブラリ バージョン ライセンス 用途
SheetJS 0.18.5 Apache 2.0 xlsx の読み書き
Google Fonts (Noto Sans JP, DM Mono) — SIL OFL 1.1 フォント

ライセンス

MIT License

About

クラス配属システム

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors