このシステムは、レストランチェーンのモックデータを生成し、従業員の詳細やロケーション情報をカスタマイズすることができます。
![スクリーンショット 2024-06-10 21 46 53](https://private-user-images.githubusercontent.com/83809409/338193913-3382de14-064b-4c6f-9e8a-52030820e16c.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjQzOTI5NzYsIm5iZiI6MTcyNDM5MjY3NiwicGF0aCI6Ii84MzgwOTQwOS8zMzgxOTM5MTMtMzM4MmRlMTQtMDY0Yi00YzZmLTllOGEtNTIwMzA4MjBlMTZjLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA4MjMlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwODIzVDA1NTc1NlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTViNWY4MzlhZDE5ZTYxNjFjYjgxNmY2YWY5MGE1YmZmMmZiMTYzN2M0NDE4ZTQ3ODlhZjcwMjM4NmYxZGNhYzQmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.mJ_uPbNpNGEF1qIcUdz3gg4fXh8hOQJIcm-ahFCUZIM)
- Docker がインストールされていること
- Composer がインストールされていること
-
Docker コンテナを起動する:
docker compose up -d
これにより、PHP、MySQL、Nginx のコンテナが起動します。
-
リポジトリをクローンする:
git clone https://github.com/yourusername/restaurant-chain-management.git cd restaurant-chain-management
-
docker 内で
faker
をインストールする:
-
Composer がインストールされていることを確認し、以下のコマンドを実行します:
docker compose exec app bash cd /var/www/html composer require fakerphp/faker
![スクリーンショット 2024-06-10 21 58 01](https://private-user-images.githubusercontent.com/83809409/338194505-e283af3c-7a61-4f82-8c16-ce47dce86e0b.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjQzOTI5NzYsIm5iZiI6MTcyNDM5MjY3NiwicGF0aCI6Ii84MzgwOTQwOS8zMzgxOTQ1MDUtZTI4M2FmM2MtN2E2MS00ZjgyLThjMTYtY2U0N2RjZTg2ZTBiLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA4MjMlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwODIzVDA1NTc1NlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTBlMmM2MzYzNzdlMGUyNzMxNmQ5NjdmY2NlOTYzNzlhZDEwZmJmMWI1MGUyMWVhNWYzMWIzNTFjNzNmMDlkMmImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.SwoKxNlb33IPCP3AZhvdYAvuOXeI4LI4eHf4M17lQeU)
- ブラウザで
index.php
ファイルを開きます。 - 「View Random Restaurant Chains」ボタンをクリックして、
displayAll.php
ページに移動します。 displayAll.php
ページでは、ランダムに生成されたレストランチェーンのリストが表示されます。- 各レストランチェーンの「View Details」ボタンをクリックすると、詳細がモーダルウィンドウに表示されます。
![スクリーンショット 2024-06-10 21 47 04](https://private-user-images.githubusercontent.com/83809409/338194344-a2570688-f4ec-4db5-9557-10dd37c2d47b.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjQzOTI5NzYsIm5iZiI6MTcyNDM5MjY3NiwicGF0aCI6Ii84MzgwOTQwOS8zMzgxOTQzNDQtYTI1NzA2ODgtZjRlYy00ZGI1LTk1NTctMTBkZDM3YzJkNDdiLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA4MjMlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwODIzVDA1NTc1NlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWMxMzg0ZGFkMDlhY2YwOTVlOWM0ODdkMjMxYjJiYTJkMWE4ZTFjOWU4YmY0M2Q0ZTIxM2M2NmMzMGQyMjE4ZDQmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.OWcKGlWvlP-oKTslaVWCVwmPeVLBDuguosDqLzoYnGE)
- ブラウザで
index.php
ファイルを開きます。 - 「Generate Restaurant Chain Data」ボタンをクリックして、データ生成フォームに移動します。
- フォームに入力します:
- 各ロケーションの従業員数:
- この項目では、各レストランロケーションに何人の従業員がいるかを指定します。
- 入力した従業員数に基づいて、指定された人数分の従業員データが各ロケーションに生成されます。
- 従業員の給与範囲: 従業員の給与範囲を入力します(例:30000-60000)。
- この項目では、従業員の給与の範囲を指定します(例:30000-60000)。
- 指定された給与範囲内で、従業員の給与がランダムに生成されます。
- ロケーションの数: ロケーションの数を入力します。
- この項目では、レストランチェーンに属するロケーションの数を指定します。
- 指定された数のレストランロケーションが生成され、それぞれに指定された従業員数と給与範囲のデータが適用されます。
- 郵便番号の範囲: ロケーションの郵便番号の範囲を入力します(例:10000-99999)。
- この項目では、各ロケーションの郵便番号の範囲を指定します(例:10000-99999)。
- 指定された範囲内で、各ロケーションの郵便番号がランダムに生成されます。
- ファイル形式を選択: 生成するデータのファイル形式を選択します(HTML、JSON、TXT、Markdown)。
- この項目では、生成するデータのファイル形式を選択します。選択肢には以下が含まれます:
- HTML: データを HTML 形式で生成し、ブラウザで読みやすい形式で表示します。
- JSON: データを JSON 形式で生成し、他のアプリケーションとのデータ交換や API レスポンスとして利用できます。
- TXT: データをテキスト形式で生成し、簡単に読み取れるプレーンテキストで提供します。
- Markdown: データを Markdown 形式で生成し、Markdown 対応のエディタやビューアで見やすく表示できます。
- この項目では、生成するデータのファイル形式を選択します。選択肢には以下が含まれます:
- 各ロケーションの従業員数:
- 「Generate File」ボタンをクリックして、フォームを送信し、ファイルを生成します。
フォームに必要な情報を入力し、「Generate File」ボタンをクリックすると、指定された条件に基づいてレストランチェーンのモックデータが生成されます。その後、選択したファイル形式(HTML、JSON、TXT、Markdown)に基づいて、生成されたデータファイルが自動的にダウンロードされます。
例えば、各ロケーションに 10 人の従業員を設定し、給与範囲を 30000 から 60000、ロケーション数を 5、郵便番号範囲を 10000 から 99999 に設定し、ファイル形式として JSON を選択した場合、以下のようなデータが生成されます:
- 各ロケーションには 10 人の従業員データが含まれる。
- 各従業員の給与は 30000 から 60000 の範囲内でランダムに決定される。
- 5 つのロケーションが生成され、それぞれのロケーションに従業員データが割り当てられる。
- 各ロケーションの郵便番号は 10000 から 99999 の範囲内でランダムに決定される。
- 生成されたデータは JSON 形式でファイルに保存され、自動的にダウンロードされる。
このように、ユーザーが指定した条件に基づいてカスタマイズされたレストランチェーンのデータを生成し、希望の形式でダウンロードすることができます。
レストランチェーン管理システムは、レストランチェーンデータを簡単に管理およびカスタマイズできるシステムです。このシステムは、テストやデモンストレーションのためのモックデータを生成するのに役立ちます。
- PHP
- Composer
- Faker(ランダムデータ生成用)
- Docker(必要に応じてコンテナ化)
project_root/
├── vendor/
│ └── autoload.php
├── src/
│ ├── Helpers/
│ │ └── RandomGenerator.php
│ ├── Interfaces/
│ │ └── FileConvertible.php
│ ├── Models/
│ │ ├── Companies/
│ │ │ ├── Company.php
│ │ │ └── RestaurantChain.php
│ │ ├── Locations/
│ │ │ └── RestaurantLocation.php
│ │ └── User/
│ │ ├── Employee.php
│ │ └── User.php
├── index.php
├── generate.php
├── displayAll.php
├── download.php
├── composer.json
└── composer.lock