現在、夏季休暇で小田原に行っていて、その間に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を使おうと思っている。将来的にはスマホアプリでも投稿や閲覧が出来るようにしたいと思う。
まだ作り始めたばかりだけど、何とか今年中に一般公開できればいいなと思う。