https://github.com/renorari/open-sekigae
Open Sékigae is an open-source seating assignment tool that makes it easy to determine seating positions in classrooms and event spaces.
https://github.com/renorari/open-sekigae
app mui school waku web
Last synced: 19 days ago
JSON representation
Open Sékigae is an open-source seating assignment tool that makes it easy to determine seating positions in classrooms and event spaces.
- Host: GitHub
- URL: https://github.com/renorari/open-sekigae
- Owner: renorari
- License: gpl-3.0
- Created: 2025-05-29T06:04:02.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-12-11T06:17:40.000Z (6 months ago)
- Last Synced: 2025-12-12T02:05:15.576Z (6 months ago)
- Topics: app, mui, school, waku, web
- Language: TypeScript
- Homepage: https://sekigae.renorari.net
- Size: 719 KB
- Stars: 1
- Watchers: 0
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# 

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