LoginSignup
3
1

More than 3 years have passed since last update.

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

Posted at

はじめに

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

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

  • 「Ohanatter」

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

  • ペット掲示板

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

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

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

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

アプリの概要

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

機能

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

ER図

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

ER_trim.png

苦労した点

  • チャット機能

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

  • モデルバインディング

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

  • DBまわり

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

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

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

  • フロントエンド

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

  • レンタルサーバ

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

Laravelドキュメントのインストーレーションより

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

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

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

Screenshot (507).png

結論

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

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

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

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

3
1
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1