LaravelでWebアプリを作ってみた

はじめに

ドットインストールからプログラミングをはじめ、PHP,Laravelを半年ほど勉強したので何か有益なものを作ってみたいという気持ちが生まれてきました。

 

以前作った有益でないもの。

  •  「Ohanatter」


http://ohanatter.herokuapp.com/login

遊び方はGithubのREADMEを見てください。
https://github.com/kk0055/Ohanatter


https://dry-journey-16818.herokuapp.com/

これらはこれらでかわいくて好きだったのですが、もう1段階有益なものを目指しました。


有益かどうかはわかりませんが、引っ越しを考えていたので「**そうだ、いらないものを人にあげるアプリを作ってみよう**」という考えです。

トータル3週間くらいで完成。

「Kasih」です。
https://kasihkasih.net/

 

 

#アプリの概要


不要なモノを投稿して、それを欲しい人がいたらチャットが送れる。そんなサービス。
メルカリ、ジモティー、Carousellなどを参考にしてつくりました。
AWS,Herokuは以前使ったことがあるので今回、サーバーはさくらのレンタルサーバーを使いました。初めてのレンタルサーバーはかなり詰まりましたね。。。

#機能

* 新規登録、ログイン
* TwitterOAuthログイン(今は止めてます)
* 投稿
* チャット
* チャットを受けとったときのメール通知
* ユーザーごとの商品画面
* カテゴリーごとの商品画面
* 登録なしでも閲覧は可能。投稿、チャットはログイン必須


#ER図
初めて書いたので難しかった。

f:id:shahalam1:20210127162606p:plain




#苦労した点

  • チャット機能

アイテムごとにチャット送れるした方がいいとは思ったのですが、同じ二人のユーザー同士なら一つのメッセージボックスの中で完結できるようにしました。
どちらがいいのかわからず迷って何度かやり直しをしました。
今後、必要だと思ったら修正していきます。※必要だと思う。

今となってはなぜうまくいかないのかわかるのですが、しっかりと理解できておらず苦労しました。ググるうちに少しずつ少しずつ理解しました。
この時どうしてもわからずteratailで質問したところ、あっさりとヒントをもらえて、これからは何日か考えてもわからないときは聞こうと決めましたね。
すぐに聞いたら、ググったりドキュメントを見ないのである程度は自分で調べる癖は持っておきたいと思います。

  • DBまわり

リレーションがなんとなくしかわかっていなかったことを痛感させられました。
モデルのインスタンスを取っているのか、コレクションをとっているのかという考えすらなくなんとなくで書いていたら上手くいかず。

これまでは書いて試してみるというスタイルだったのですが、やはり勘ではうまくいかない。理解してないと修正もできない。
ドキュメント、Stack Overflowを何回も何回も見て焦らず理解した上で心がけるようになりました。コードだけ流し見しがちですがしっかり説明を読むことが大事。

 

https://readouble.com/laravel/8.x/ja/eloquent.html

 

また、SQLをもう一度しっかり勉強しないといけないなとも感じました。
おそらくSQLを理解していればリレーションそんなに難しくないはず。

 

 

  •  フロントエンド

あまりCSSは勉強してこなかったので、主にTailwindをつかってデザインしました。Tailwindは使いやすくてすきなのですが細かい修正が難しいなと思います。
基本的にはググってよさげなデザインをコピペして、細かい部分を修正。

わりとすべてが謎。なぜサーバ会社は細かいドキュメントを持っていないのか?なぜ人のブログ記事ばかりなのか?書いてることもばらばらだし。
もう理解できたので次は上手くできると思います。
ざっくりと。

Laravelドキュメントのインストーレーションより
>Laravelをインストールできたら、Webサーバのドキュメント/Webルートがpublicディレクトリになるように設定してください。

 

Laravelのプロジェクトpublicのシンボリックリンクを公開フォルダ内に貼ればOK.
そして

コントロールパネル
ドメイン/SSL
ドメイン/SSL
→「WEB公開フォルダ」
をLaravelプロジェクト/publicに変更

 


#結論

なにか特定の教材を参考にするのではなくググりながら書くということを意識して今回作ってみましたが、めちゃくちゃ楽しいしかなり学べる事、吸収できることが多いなと思いました。**100倍くらい。**

チュートリアルをやるだけだと、学べることも多いのですが基本的にはエラーも出ずすんなり進んでいくのであまり記憶に定着しないなと思います。

苦しんで苦しんで考えてる時が一番成長につながるのかな。

 

「Kasih」です。
https://kasihkasih.net/