Open Sékigaeは、教室やイベント会場での座席配置を簡単に決めることができるオープンソースの席替えツールです。
- 🎲 自動抽選機能: ワンクリックで公平な座席抽選
- 🎯 前寄り指定: 前方の席を優先的に割り当て
- ⚙️ 柔軟な座席設定: 行数・列数・座席間隔を自由に設定
- 🎨 直感的なUI: 分かりやすいインターフェースで簡単操作
- 💾 データの永続化: ブラウザのローカルストレージに自動保存
- 📊 エクスポート機能: CSV形式での出力と印刷対応
- 🔊 音声フィードバック: 抽選時の効果音(ON/OFF可能)
- メンバー登録: 参加者の名前と読み方を入力
- 座席設定: 教室に合わせて座席の配置を調整
- 抽選実行: 自動または手動で座席を決定
- 結果確認: 座席表を確認・調整
- 結果保存: CSV出力または印刷で結果を保存
- Node.js 22以上
- npm
- モダンブラウザ(Chrome、Firefox、Safari、Edge)
# リポジトリをクローン
git clone https://github.com/renorari/open-sekigae.git
cd open-sekigae
# 依存関係のインストール
npm install
# 開発サーバーの起動
npm run dev開発サーバーが起動したら、ブラウザで http://localhost:3000 にアクセスしてください。
# プロダクション用ビルド
npm run build
# プロダクションサーバーの起動
npm run start- フロントエンド: React 19
- UIライブラリ: MUI Joy
- フレームワーク: Waku
- スタイリング: CSS-in-JS (Emotion), Vanilla CSS
- コード品質: ESLint, TypeScript
- ビルドツール: Waku(Vite)
貢献を歓迎します! バグ報告、機能リクエスト、プルリクエストなど、どんな形でも構いません。
- このリポジトリをフォークする
- 機能ブランチを作成する (
git checkout -b jane/amazing-feature) - 変更をコミットする (
git commit -m '✨ add: add some amazing feature') - ブランチにプッシュする (
git push origin jane/amazing-feature) - プルリクエストを開く
コミットメッセージは以下の形式に従ってください:
<絵文字> <type>: <説明>
Type一覧:
✨ add: 新機能の追加🐛 fix: バグ修正📝 docs: ドキュメントの更新♻️ refactor: リファクタリング💄 style: コードの見た目の変更(スペース、フォーマット等)⚡ perf: パフォーマンスの改善✅ test: テストの追加・修正🔧 chore: ビルドプロセスやツールの変更
例:
✨ add: implement automatic seat lottery animation
🐛 fix: resolve seat assignment conflict in manual mode
📝 docs: update installation instructions
ブランチ名は以下の形式にしてください:
<ユーザー名>/<機能名>
例:
jane/lottery-animationjohn/responsive-designalex/export-feature
<ユーザー名>/<機能名>
- タイトル: 変更内容を簡潔に表現
- 説明: 以下の項目を含める
- 変更の目的・背景
- 実装した機能の詳細
- テスト方法
- 関連するIssue番号(あれば)
- スクリーンショット(UI変更の場合)
- ESLintのルールに従ってください
- TypeScriptの型チェックを通してください
- 可読性の高いコードを心がけてください
- 適切なコメントを記述してください
このプロジェクトでは、以下のカスタムESLintルールを使用しています:
@renorari/no-unquoted-keys: オブジェクトのキーに引用符の使用を強制
このプロジェクトは GNU General Public License v3.0 の下で公開されています。
- 開発者ホームページ: renorari
- プロジェクトリンク: https://github.com/renorari/open-sekigae
