# ビジネス交流会サイト - Django実装ガイド

## プロジェクト概要
このプロジェクトは、ビジネス交流会のイベント集客・登録管理システムの Django実装です。

### 主な機能
- **エントランス認証**：パスワード入力による会員限定アクセス
- **LPページ**：イベント情報、セミナー、スポンサー等の一覧表示
- **参加申込**：参加者情報の入力・確認・登録
- **会員マイページ**：参加情報の確認・キャンセル機能
- **管理画面**：イベント・セミナー・参加者等の管理

---

## ディレクトリ構造

```
Django/
├── manage.py
├── db.sqlite3
├── myproject/                    # メインプロジェクト設定
│   ├── __init__.py
│   ├── settings.py              # Django設定ファイル
│   ├── urls.py                  # プロジェクトレベルのURL ルーティング
│   ├── asgi.py
│   └── wsgi.py
└── events/                       # eventsアプリケーション
    ├── migrations/              # マイグレーションファイル
    ├── templates/events/        # HTML テンプレート
    │   ├── base.html
    │   ├── entrance_login.html
    │   ├── lp_main.html
    │   ├── seminar_detail.html
    │   ├── registration_form.html
    │   ├── registration_confirm.html
    │   ├── registration_complete.html
    │   ├── mypage_login.html
    │   ├── mypage.html
    │   ├── cancellation_confirm.html
    │   ├── cancellation_complete.html
    │   └── email/
    │       └── registration_email.html
    ├── static/                  # CSS / JS等の静的ファイル
    ├── __init__.py
    ├── admin.py                 # Django Admin設定
    ├── apps.py                  # アプリケーション設定
    ├── forms.py                 # フォーム定義
    ├── models.py                # データモデル定義
    ├── urls.py                  # eventsアプリのURL ルーティング
    └── views.py                 # ビュー関数
```

---

## セットアップ手順

### 1. 必要なPythonパッケージのインストール
```bash
pip install django pillow
```

### 2. マイグレーションの作成と実行
```bash
# マイグレーションファイルを生成
python manage.py makemigrations events

# データベースに反映
python manage.py migrate
```

### 3. Django管理ユーザー（スーパーユーザー）の作成
```bash
python manage.py createsuperuser
```
プロンプトに従ってユーザー名、メールアドレス、パスワードを入力してください。

### 4. 開発サーバーの起動
```bash
python manage.py runserver
```

サーバーが起動したら、以下のURLにアクセスしてください：
- **ユーザー向けサイト**：http://localhost:8000/events/
- **管理画面**：http://localhost:8000/admin/

---

## 使用方法

### 管理画面でのデータ登録

1. http://localhost:8000/admin/ にアクセス
2. 作成したスーパーユーザーアカウントでログイン
3. 以下の順序でデータを登録：

#### 1）イベント情報の登録
- 「イベント情報」から新しいイベントを追加
- イベント名、開催日時、会場、パスワード等を入力
- **重要**：エントランスログインのパスワードを設定

#### 2）主催企業の登録
- 「主催企業」から企業情報を追加
- 企業ロゴ、URL等を設定

#### 3）スポンサーの登録（オプション）
- 「スポンサー」からスポンサー企業を登録
- スポンサーランク（プラチナ、ゴールド等）を指定

#### 4）セミナー情報の登録
- 「講習会（セミナー）」から講習会を登録
- タイトル、登壇者、企業ロゴ等を設定

#### 5）ニュース情報の登録
- 「お知らせ」でイベント関連のニュースを登録

#### 6）過去のイベント画像の登録
- 「過去のイベント画像」から画像をアップロード

### ユーザー向けサイトの操作フロー

1. **エントランスページ**
   - 事前に周知されたパスワードを入力
   - ログイン成功後、LPページに遷移

2. **LPページ（メインページ）**
   - イベント情報、セミナー一覧、スポンサー等を表示
   - カウントダウンタイマーが自動更新
   - 「参加申し込みフォーム」ボタンで申込画面へ

3. **参加申込フォーム**
   - 必須項目（会社名、氏名等）を入力
   - 「確認画面へ進む」をクリック

4. **確認画面**
   - 入力内容を確認
   - 「申し込み完了」をクリックして登録

5. **完了画面（サンクスページ）**
   - 確認メールが送信される
   - 会員番号が表示される

6. **マイページ**
   - 会員番号とメールアドレスでログイン
   - 参加情報の確認・キャンセル機能

---

## 設定ファイルの重要な項目

### settings.py

```python
# 言語と時間帯
LANGUAGE_CODE = 'ja'
TIME_ZONE = 'Asia/Tokyo'

# メディアファイル設定
MEDIA_URL = 'media/'
MEDIA_ROOT = BASE_DIR / 'media'

# メール送定
DEFAULT_FROM_EMAIL = 'noreply@business-exchange.com'
# 開発環境ではコンソール出力、本番環境では適切な設定に変更
EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'
```

---

## トラブルシューティング

### Q: マイグレーション時にエラーが出た
**A:** 以下を確認してください
```bash
# settings.pyでeventsアプリが INSTALLED_APPS に追加されているか確認
# その後、以下を実行
python manage.py makemigrations events --empty events --name fix_initial
python manage.py migrate
```

### Q: メールが送信されない
**A:** settings.py の EMAIL_BACKEND を確認
- 開発環境：`django.core.mail.backends.console.EmailBackend`（コンソール出力）
- 本番環境：SMTP設定に変更が必要

### Q: 画像がアップロードできない
**A:** media ディレクトリが存在し、書き込み権限があるか確認
```bash
mkdir -p media
chmod 755 media
```

---

## データベースリセット（開発環境のみ）

テストデータをクリアしたい場合：
```bash
# データベースを初期化
rm db.sqlite3
python manage.py migrate
python manage.py createsuperuser
```

---

## 本番環境へのデプロイメント

本番環境に展開する場合の注意事項：

1. **settings.py の調整**
   ```python
   DEBUG = False
   ALLOWED_HOSTS = ['yourdomain.com']
   SECRET_KEY = 'change-this-to-a-secure-key'
   ```

2. **メール設定**
   ```python
   EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
   EMAIL_HOST = 'your-smtp-server'
   EMAIL_PORT = 587
   EMAIL_USE_TLS = True
   EMAIL_HOST_USER = 'your-email@example.com'
   EMAIL_HOST_PASSWORD = 'your-password'
   ```

3. **静的ファイルの収集**
   ```bash
   python manage.py collectstatic --noinput
   ```

4. **セキュリティ設定**
   - HTTPS を有効化
   - CSRF Protection を設定
   - Session Security を設定

---

## サポート

ご不明な点やエラーが発生した場合は、以下をご確認ください：
- Django 公式ドキュメント：https://docs.djangoproject.com/
- 管理画面の各モデルの verbose_name で日本語の項目名を確認

---

## ライセンス
このプロジェクトは内部用です。

作成日：2024年4月21日
