Crystal Resort
初めに
プログラミング学習の成果物として今回のポートフォリオを制作いたしました。
採用面接およびアウトプットとしてこちらに投稿します。
経緯
Gitのブランチやmaster周りの考え方やコミット、プルなどの基本的な挙動の理解を深めるために作業開始。
E-R図や1対多、多対一、多対多などのリレーションの理解を深める目的。
ポートフォリオについて
共同制作(4人)により作成をした。
当方は、以下の内容に従事。
- 管理者としてログイン機能の実装
- 部屋種別、部屋管理ページを作成
- 各人に対して、進捗確認
開発環境
- PHP 8.2.4
- Laravel 10.10
- Bootstrap 4.5
- MySQL
- Github
- Visual Studio Code
実装機能
| No | 機能 | 機能について |
| 1 | 新規登録機能 | 利用者を新規登録することができる |
| 2 | 更新機能 | 利用者情報を更新することができる |
| 3 | 削除機能 | 利用者情報を削除することができる |
| 4 | 削除した情報の復元機能 | ソフトデリートにより、削除した情報の復元も可能 |
| 5 | 表示機能 | DBに保存された内容を表示 外部キーを利用することで、別DBの情報を取得 |
| 6 | 空室検索機能 | ダブルブッキングをしないように、予約時に空室検索をする |
| 7 | ログイン機能 | 管理者としてログイン機能を搭載 ログインしないと表示されないページ有 |
DB設計


ER図
セキュリティ対策
クロスサイトリクエストフォージェリ (CSRF)
今回はPHPフレームワークのLaravelを使用しました。
Laravelは、アプリケーションによって管理されているアクティブなユーザーセッションごとにCSRF「トークン」を自動的に生成します。このトークンは、認証済みユーザーが実際にアプリケーションへリクエストを行っているユーザーであることを確認するために使用されます。このトークンはユーザーのセッションに保存され、セッションが再生成されるたびに変更されるため、悪意のあるアプリケーションはこのトークンへアクセスできません。
と、Laravelの公式ページに記載があるので、
@CSRFのBladeディレクティブを使用して、非表示のトークン入力フィールドを生成しました。
デプロイ
エックスサーバーを使用してデプロイしております。
手順として以下のことを実施しました。
- SSHでレンタルサーバーと紐づける
セキュリティを考慮し、公開鍵を生成 - レンタルサーバー内のPHPバージョンの設定
- 生成した公開鍵をGithubに登録
- mysqlの追加およびアクセス権の追加処理
- gitよりcloneを実施
- .envファイルの設定
- 本番環境へ各種ファイルを配置
- URL到達時の初期読み込み場所を指定する
シンボリックリンクの扱いがわからなかったため、index.php内の記述を変更 - .htaccessの設定
- BREEZEインストールに伴い、nodeとnpmをインストール
- VITEを利用可能にする。
工夫した点
- BREEZEの導入に伴い、nodeやnpmの環境を見直す必要があった点
ポートフォリオの課題点
- マルチログインに対応させたかった。
まとめ
Laravel6をこれまで取り扱っていたが、Laravel10を初めて扱った。コントローラやモデル、ルーティング周りの記載方法が少々異なる点が良い気付きとなった。

