値を加重配分する Web ユーティリティ
Portion-Flow は、合計値をメンバーのウェイト比に従って整数配分するツールです。
1人1回あたりの上限(デフォルト 0〜120)を設定でき、上限を超える場合は複数回に分割した内訳を自動表示します。
| 機能 | 説明 |
|---|---|
| 加重配分 | ハミルトン方式(最大剰余法)で端数なく整数配分 |
| 固定値 | 特定メンバーに固定値を割り当て、残りを比例配分 |
| グループ | メンバーをグループ化し、グループウェイトで一括管理 |
| ドラッグ移動 | カードをグループ間またはグループ外へドラッグ&ドロップ |
| 制限設定 | 1人1回あたりの割り当て上限を設定(複数回の内訳を表示) |
| テーマ切替 | Standard / シニア向け / こども向けの3テーマ |
| エクスポート/インポート | JSON 形式で状態を保存・読み込み |
| コピー | 配分結果をクリップボードにコピー |
| URL共有 | 状態を URL に圧縮エンコード、ブラウザ間で共有可能 |
- 合計値 を入力する
- メンバー を追加し、名前とウェイトを設定する
- 必要に応じて グループ を作成してメンバーを割り当てる
- 配分結果を確認し、コピー または エクスポート で共有する
- 「1人1回あたりの割り当て値を制限する」をオンにすると有効化
- デフォルト: 最小 0 〜 最大 120
- 上限を超えるメンバーにはカード上で複数回の内訳を表示
- React 19 + TypeScript + Vite
- 状態管理:
useState+useCallback - URL シリアライズ:
lz-string - テスト:
vitest+fast-check(プロパティベーステスト) - デプロイ: GitHub Pages (GitHub Actions)
npm install
npm run dev # 開発サーバー起動
npm run build # プロダクションビルド
npm test # テスト実行MIT