checkin status tool
This commit is contained in:
204
EVENT_REGISTRATION_README.md
Normal file
204
EVENT_REGISTRATION_README.md
Normal file
@ -0,0 +1,204 @@
|
||||
# イベントユーザー登録システム
|
||||
|
||||
外部システムAPI仕様書.mdを前提に、ユーザーデータCSVから各ユーザーごとにユーザー登録、チーム登録、エントリー登録、イベント参加を行うPythonスクリプトです。
|
||||
|
||||
## 概要
|
||||
|
||||
このシステムは以下の処理を自動化します:
|
||||
|
||||
1. **カスタムユーザー登録 API**
|
||||
- メールアドレスをキーに既存ユーザーを取得
|
||||
- 検索がヒットしなければ、ユーザー登録
|
||||
- 検索がヒットすれば、パスワードを更新
|
||||
- event_codeに指定event_codeを設定
|
||||
- zekken_number にゼッケン番号を入力
|
||||
- team_name にチーム名を入力
|
||||
|
||||
2. **チーム登録、メンバー登録**
|
||||
- 部門・時間・チーム名でチーム登録
|
||||
- メンバーを1名ずつ7名まで登録
|
||||
- それぞれダミーメールアドレスと名前と生年月日でメンバー登録
|
||||
|
||||
3. **エントリー登録**
|
||||
- 指定されたイベントにチームを登録
|
||||
|
||||
4. **イベント参加**
|
||||
- 登録したエントリーでイベント参加
|
||||
|
||||
## CSVファイル形式
|
||||
|
||||
CSVファイル(`CPLIST/input/team2025.csv`)は以下の項目を持ちます:
|
||||
|
||||
```
|
||||
部門別数,時間,部門,チーム名,メール,パスワード,電話番号,氏名1,誕生日1,氏名2,誕生日2,氏名3,誕生日3,氏名4,誕生日4,氏名5,誕生日5,氏名6,誕生日6,氏名7,誕生日7,,
|
||||
```
|
||||
|
||||
### 項目説明
|
||||
|
||||
- **部門別数**: 部門の番号
|
||||
- **時間**: 競技時間
|
||||
- **部門**: 競技部門名
|
||||
- **チーム名**: チーム名
|
||||
- **メール**: 代表者メールアドレス
|
||||
- **パスワード**: パスワード
|
||||
- **電話番号**: 代表者電話番号
|
||||
- **氏名1〜7**: チームメンバーの氏名(最大7名)
|
||||
- **誕生日1〜7**: チームメンバーの生年月日(YYYY/MM/DD形式)
|
||||
|
||||
## 使用方法
|
||||
|
||||
### 1. 基本的な実行
|
||||
|
||||
```bash
|
||||
# デフォルトイベントコード(大垣2509)で実行
|
||||
./run_event_registration.sh
|
||||
|
||||
# 指定したイベントコードで実行
|
||||
./run_event_registration.sh "大垣2509"
|
||||
```
|
||||
|
||||
### 2. テスト実行(DRY RUN)
|
||||
|
||||
実際のAPI呼び出しを行わずに処理の流れを確認:
|
||||
|
||||
```bash
|
||||
./run_event_registration.sh "大垣2509" --dry-run
|
||||
```
|
||||
|
||||
### 3. カスタムCSVファイルを使用
|
||||
|
||||
```bash
|
||||
./run_event_registration.sh "大垣2509" --csv-file CPLIST/input/custom_teams.csv
|
||||
```
|
||||
|
||||
### 4. カスタムAPI URLを指定
|
||||
|
||||
```bash
|
||||
./run_event_registration.sh "大垣2509" --base-url http://production-server:8000
|
||||
```
|
||||
|
||||
### 5. Pythonスクリプトを直接実行
|
||||
|
||||
```bash
|
||||
python register_event_users.py --event_code "大垣2509" --csv_file CPLIST/input/team2025.csv --dry_run
|
||||
```
|
||||
|
||||
## Docker Composeでの実行
|
||||
|
||||
### 環境変数設定
|
||||
|
||||
```bash
|
||||
export EVENT_CODE="大垣2509"
|
||||
export CSV_FILE="CPLIST/input/team2025.csv"
|
||||
export BASE_URL="http://web:8000"
|
||||
export DRY_RUN="true" # テスト実行の場合
|
||||
```
|
||||
|
||||
### 実行
|
||||
|
||||
```bash
|
||||
docker-compose -f docker-compose.event-registration.yml up --build
|
||||
```
|
||||
|
||||
## オプション
|
||||
|
||||
| オプション | 説明 | デフォルト値 |
|
||||
|-----------|------|-------------|
|
||||
| `--event_code` | イベントコード | 必須 |
|
||||
| `--csv_file` | CSVファイルパス | `CPLIST/input/team2025.csv` |
|
||||
| `--base_url` | APIベースURL | `http://localhost:8000` |
|
||||
| `--dry_run` | テスト実行フラグ | False |
|
||||
|
||||
## ログ
|
||||
|
||||
- 実行ログは `logs/register_event_users.log` に出力されます
|
||||
- コンソールにも同時出力されます
|
||||
|
||||
## 処理統計
|
||||
|
||||
処理完了後、以下の統計情報が表示されます:
|
||||
|
||||
- 処理完了チーム数
|
||||
- 作成ユーザー数
|
||||
- 更新ユーザー数
|
||||
- 登録チーム数
|
||||
- 作成エントリー数
|
||||
- 参加登録数
|
||||
- エラー数とその詳細
|
||||
|
||||
## 注意事項
|
||||
|
||||
1. **API認証**: システムが稼働していることを確認してください
|
||||
2. **CSVファイル**: 必要な項目が正しく入力されていることを確認してください
|
||||
3. **重複処理**: 同じデータを複数回実行すると重複エラーが発生する可能性があります
|
||||
4. **メール認証**: 新規ユーザー登録時はメール認証が必要な場合があります
|
||||
|
||||
## トラブルシューティング
|
||||
|
||||
### よくあるエラー
|
||||
|
||||
1. **CSVファイルが見つからない**
|
||||
```
|
||||
エラー: CSVファイルが見つかりません: CPLIST/input/team2025.csv
|
||||
```
|
||||
→ CSVファイルのパスを確認してください
|
||||
|
||||
2. **API接続エラー**
|
||||
```
|
||||
エラー: APIサーバーに接続できません
|
||||
```
|
||||
→ BASE_URLが正しいか、サーバーが稼働しているか確認してください
|
||||
|
||||
3. **重複ゼッケン番号エラー**
|
||||
```
|
||||
チーム登録エラー: このゼッケン番号は既に使用されています
|
||||
```
|
||||
→ 既に登録済みのデータを再実行しようとしています
|
||||
|
||||
### ログの確認
|
||||
|
||||
```bash
|
||||
# リアルタイムでログを確認
|
||||
tail -f logs/register_event_users.log
|
||||
|
||||
# エラーのみを確認
|
||||
grep ERROR logs/register_event_users.log
|
||||
```
|
||||
|
||||
## 開発者向け情報
|
||||
|
||||
### ファイル構成
|
||||
|
||||
```
|
||||
rogaining_srv/
|
||||
├── register_event_users.py # メインスクリプト
|
||||
├── run_event_registration.sh # 実行スクリプト
|
||||
├── docker-compose.event-registration.yml # Docker Compose設定
|
||||
├── Dockerfile.event_registration # Dockerfile
|
||||
├── CPLIST/input/team2025.csv # CSVデータファイル
|
||||
└── logs/register_event_users.log # ログファイル
|
||||
```
|
||||
|
||||
### API エンドポイント
|
||||
|
||||
使用するAPIエンドポイント:
|
||||
|
||||
- `POST /api/register/` - ユーザー仮登録
|
||||
- `POST /api/login/` - ログイン
|
||||
- `POST /api/register_team` - チーム登録
|
||||
- `POST /api/teams/{team_id}/members/` - メンバー追加
|
||||
- `POST /api/entry/` - エントリー登録
|
||||
- `POST /api/start_from_rogapp` - イベント参加
|
||||
|
||||
### カスタマイズ
|
||||
|
||||
処理をカスタマイズする場合は、`register_event_users.py`の以下のメソッドを編集してください:
|
||||
|
||||
- `get_or_create_user()` - ユーザー登録ロジック
|
||||
- `register_team_and_members()` - チーム登録ロジック
|
||||
- `create_event_entry()` - エントリー登録ロジック
|
||||
- `participate_in_event()` - イベント参加ロジック
|
||||
|
||||
## ライセンス
|
||||
|
||||
このプロジェクトはロゲイニングシステムの一部です。
|
||||
Reference in New Issue
Block a user