こんにちは!
スマレジ・テックファームのWebエンジニアやまてと申します。
はじめに
絵本読み聞かせ記録のWebアプリを作成しました。【Laravel / Docker / AWS / CircleCI】 [PHP] on #Qiita https://t.co/pqX4XJz5Tk
— やまて|Webエンジニア2年目 (@r_yamate) 2021年8月4日
初めてのWebアプリを公開してちょうど1年くらいが経ちました。(現在は公開停止しています)
今回は、Web業界実務未経験での転職活動用にポートフォリオの一つとして開発したWebアプリについて、ローカル環境で起動させる手順をまとめたいと思います。
絵本の読み聞かせの記録・管理を、家族と共有できる Web アプリケーションです。
ちなみに、バックエンドの学習期間が2020年8月〜で、アプリの開発期間は2021年2月〜7月です。
記事を書く目的
今回の記事を書く目的としては、以下のとおりです。
自身の学習の振り返りのため
作成当時、独学なのでフィードバックなし、完成させることを最優先にしたこともあり、自分が作成したWebアプリであるにもかかわらず、技術的な理解が浅い部分があることが課題としてあります。
スマレジの面接のときに、Webアプリの出来については褒めていただいたものの、Webアプリについての技術的質問で「いいね機能について説明してみてください。」というような理解を問う質問に対しては、全く上手く答えられず、
「口頭で説明できるということも仕事では必要なシーンがありますので、その点は今後意識していくといいと思います。」
というアドバイスをいただきました。
「口頭で説明できる」ということは「理解している」状態と言えそうなので、振り返ることで「口頭で説明できる」レベルになることを目指します。
昨日の面接は、いろんな角度から質問をいただいて、自分自身多くの気づきがあった。プロの方々にポートフォリオ褒めていただいたのは本当に嬉しかった。現状の技術的な課題や今後の学習についてのヒントもいただいて感謝🙏
— やまて|Webエンジニア2年目 (@r_yamate) 2021年10月2日
Webアプリに今後も機能追加などをすることで、学習の材料にする準備のため
また、振り返りに加え、機能追加や、今学習しているセキュリティの観点でチェックしてみたり、当時はごく一部しか書いていないテストコードを書いてみるなど、アウトプットの場として活用したいと考えています。
見ていただく方にとっての参考になるよう共有したいため
現在、Webへの公開は停止していますので、動いているアプリを見ていただくところはWeb上にはないです。
ただ、これから異業種からWebエンジニアへの転職を目指されている方などで興味を持っていただいた方には、アプリが動いているところも気軽に見ていただきたいという思いがありました。
そのため、ローカルでアプリを開くまでの手順を整理しようと思いました。
INDEX
前提
実行環境
$ git --version git version 2.28.0 $ docker --version Docker version 20.10.14, build a224086 $ docker compose version Docker Compose version v2.4.1
1. コマンド実行
Dockerアプリが起動していることを確認し、ターミナルを開き、任意のディレクトリ(Document ディレクトリ以下など)で、以下のコマンドを実行します。(下記の5行をまとめてコピペで実行しても、1行ずつ実行しても構いません)
git clone https://github.com/ryamate/yonde-web-app.git cd yonde-web-app make init docker compose exec web npm install docker compose exec web npm run dev
ブラウザで、下記にアクセスすると、トップページが開きます。
http://localhost/
絵本の検索や、登録など、機能を試していただけますと幸いです。
※ Googleアカウントでのユーザー登録・ログイン機能については、Google側の設定とGoogleから発行される「クライアント ID」と「クライアント シークレット」を .env ファイルに設定しないと機能しません。
2. 実行したコマンドの説明
「1. コマンド実行」で実行したコマンドの説明です。
GitHubからのクローン
以下のコマンドを実行し、GitHubからクローンします。
$ git clone https://github.com/ryamate/yonde-web-app.git
ディレクトリの移動
以下のコマンドを実行し、クローンしたディレクトリの階層に移動します。
$ cd yonde-web-app
Dockerの起動、ライブラリのインストール など
下記のmakeコマンドを実行し、Dockerの起動などを行います。
$ make init
make
コマンドについては、下記の記事をもとにDockerを使ったLaravel開発環境を構築しており、作者の方が用意してくださっている Makefile
から実行しています。
docker compose
コマンドは入力するには長く、プロジェクト毎にエイリアス設定するのはとても面倒です。Makefile
を用意することで、短いコマンドでコマンドが実行できるようになります。
make init
と入力するだけで、上記の7つのコマンドを実行してくれています。
# Dockerの起動 $ docker-compose up -d --build # appコンテナに必要なライブラリをインストール $ docker-compose exec app composer install # .env.example を ファイル名 .env でコピー $ docker-compose exec app cp .env.example .env # Laravel のアプリケーションキーの生成 $ docker-compose exec app php artisan key:generate # シンボリックリンクの作成 $ docker-compose exec app php artisan storage:link # Web サーバが書き込みエラーにならないようにアクセス権限を変更 $ docker-compose exec app chmod -R 777 storage bootstrap/cache # データベースのマイグレーション $ docker-compose exec app php artisan migrate:fresh --seed
docker-compose
コマンドを使用していますが、Webアプリを作成してから1年経って、 docker compose
のように、 docker
のサブコマンドとして取り込まれていますので、読み替えていただくようお願いします。
npm での JavaScript の各種パッケージのインストール
Vue.jsなどのJavaScriptの各種パッケージをインストールします。
$ docker-compose exec web npm install
アプリではVue.jsなどを使用しているため、Vue.jsなどのJavaScriptの各種パッケージをインストールする必要があります。
JavaScriptのトランスパイル
開発用のビルドコマンドを実行します。
$ docker-compose exec web npm run dev
アプリのJavaScriptは、そのまま各ブラウザで動かすことができません。コマンドを実行することで、各ブラウザで動かせる形式に変換(トランスパイル)されます。
3. 開発ツールの確認
phpMyAdmin でのデータベースのテーブルの確認
起動時に作成されたデータベースのテーブルを確認できます。
ブラウザで、下記にアクセスするとページを開くことができます。
http://localhost:40080/
絵本についてのダミーデータも入れておきたいところ…
MailHog でのメール受信テストの確認
MailHogは、開発者向けの電子メールテストツールです。
https://github.com/mailhog/MailHog
ブラウザで、下記にアクセスするとページを開くことができます。
http://localhost:8025/
メール送信機能を使って実装した機能(本アプリでは、メール認証、家族招待の機能)のテストができます。
補足. ローカル環境からのアプリの削除
「1. コマンド実行」で作成されたファイルやデータを全て削除する場合は、以下のコマンドを実行します。
docker-compose down --rmi all --volumes --remove-orphans cd .. rm -rf yonde-web-app/
おわりに
今回の記事は以上です!
今後も「はじめてのWebアプリ開発を振り返る 」関連の記事を書いていこうと思います。
ありがとうございました。