旅行Webサービス「Trabum」構想

現在、夏季休暇で小田原に行っていて、その間にWebサービスを作ろうと言うことで、色々と頭を悩ませている。
今回作ろうと思っているのは、旅行記を書いて公開したり、他の人の旅行記を呼んだりするためのWebサービス。名前は旅行の「Travel」とアルバムの「Album」を合わせた「Trabum」(トラバムと読む)。

機能面としては、大雑把にこんな感じ。
・ユーザプロフィール(User)
・旅行記(タグ、いいね、コメント機能)(Travel, Travel_tag, Travel_like, Travel_comment)
・チェックポイント(タグ、いいね、コメント機能、写真)(Checkpoint, Checkpoint_tag, Checkpoint_like, Checkpoint_photo)
・観光地(Spot)
イメージとしては、ユーザがまず旅行記を投稿する。旅行記としては、例えばこんなイメージ。
タイトル:2017-18 年末年始北海道旅行 開始日:2017年12月29日 終了日:2018年1月4日 タグ:北海道、18きっぷ、スキー、グルメ メモ:長いので略
次に、その旅行記に対して具体的な行った場所をチェックポイントとして投稿する。
場所:北海道函館市 到着日:2017年12月29日 出発日:2017年12月30日 タグ:五稜郭、イカ飯、函館山、夜景 メモ:長いので略
場所については後述の観光地と結びついているイメージ。さらに、チェックポイントには写真を入れることが出来る。
旅行記、チェックポイントに対して他のユーザはいいねとコメントが出来る。
観光地については、1つのチェックポイントに対して1つの観光地が結びついていて、ユーザがチェックポイントを投稿するときすでにその観光地があればそれを選択して、なければ新規の観光地を追加する。観光地には地名、位置(Google Maps APIを使うことを検討)、紹介文などが入る。また、ユーザが観光地について書かれたチェックポイントの一覧を見ることが出来る。

次に、使用する技術要素としてはこんな感じか。
・PHP(7.2)
・Laravel(5.6)
・JavaScript
・Vue.js, Vuex(Vue-router,Vuetifyは使うかどうか未定)
・MariaDB
・Apache
・Valet
今回はMacのローカル環境で開発するのでValetを使おうかと。Dockerも使いたかったけど、今の低スペックマシンだとどうも微妙なので。
実際に一般公開するとなったらAWSを使おうと思っている。将来的にはスマホアプリでも投稿や閲覧が出来るようにしたいと思う。

まだ作り始めたばかりだけど、何とか今年中に一般公開できればいいなと思う。

PHPフレームワーク Laravel入門

今のところ、書店でよく売られているLaravelについて書かれた本はそんなに多くなく(どちらかというとCakePHPの方がよく売っている印象)、かつ現時点では知っている限りでは一番新しい本ではないかと思う。
本の印象としては、Laravelの基本的なことがコンパクトにまとめられていて、全体的に読みやすいと思う。個人的にはLaravelのミドルウェアについて理解が浅かったころChapter4の「リクエスト・レスポンスを補完する」を読んで理解が深まった気がする。
欲を言えば、最後のChapter7がいろいろな内容(セッション、ページネーションなど)があっさりとすまされているので、その辺りをもう少し増強してほしかったという気もする。
ちなみに、この本はLaravel5.4(2018年7月30日時点最新は5.6)を前提に書かれているので、それ以外のバージョンを使う場合は日本語版Laravelドキュメントも参考にしつつ(英語が得意な方は公式サイトでいいかと)、手を動かしながら使っていくことでLaravelへの理解が深まるのではないかと思う。

技術ブログ始めました

今日からWebプログラミングを中心とした技術ブログを始めてみました。主に以下のテーマでブログを書いていこうと思います。
・PHP
・JavaScript
・MySQL
・Laravel
・Vue.js
・インフラ技術(サーバ周り、ネットワーク、セキュリティなど、後はDockerとか)
他にも余裕があればスマホアプリ開発や機械学習などについても少しは書ければいいなと。
後、個人的に旅行に関するWebサービスを作ろうと思っているので、それの開発記録も書いていこうかと。

技術とは関係ない個人のブログはこちら。合わせてよろしくお願いします。