チャットアプリケーションの開発

2025年10月30日

みなさん、おはようございます。ただいまAM1:53。寝たのは8時で起きたのが23時。仕事開始は24時。0時ともいう。

人が寝静まった時間というものは、それだけでワクワクします。

人と違うことに価値がある。AIと共に生きる石井です。

さて、ここでは、チャットアプリケーション開発の中身をみていきましょう。

構成としては、

Reactフロントエンド(UI Compornent、axios通信、localStorage)

Laravel API(Controller, Model, CORS対応、CSRF無効)

MySQL DB(diagnosis_sessions, diagnosis_logs)

Reactは、JavaScript拡張ではありますが、フロントエンドに特化して、コンポーネント開発ができるというところに価値があります。

フロントというのは、一般の利用者側のスマフォとかPCとかの画面側で見ているところになります。

その部分を分離することと、サーバサイドから切り離してクライアント側で実行することには非常に大きな意味と意義があります。

JavaScriptはもともとクライアント側のリソースを使って動作します。もちろんこのReactでつくったアプリもクライアント側で動作するようにしてあります。(サーバサイドでレンダリングしたいという目的の場合は別途)

ReactからサーバへのやりとりはすべてAPIをつくってやりとりしますので、DBへ直接アクセスなどはしません。

テーブルを設計してマイグレーションしてしまえば、そのテーブルへのインターフェイスをAPI、具体的にはコントローラのメソッドとしてつくることは非常にシンプルです。

そして、そのAPIを呼び出すのは axiosで通信してJSONで結果を返すようにしておくと扱いしやすいです。

フェーズAPI関数エンドポイント内容
Phase0postStart()/api/diagnosis/startセッション開始
Phase0〜2postLog()/api/diagnosis/log発言・回答ログ保存
Phase0/ResultpostComplete()/api/diagnosis/complete診断完了・ユーザー情報保存
EntrypostEntry()/api/diagnosis/entry特典申込登録
Result/CompletegetComplete()/api/diagnosis/{token}診断結果取得

🧭 React診断チャット:完全UXフロー(Start → Complete)

診断をおこなうさい、開始ページでセッションを初期化します。セッション自体はLaravel側で生成したセッショントークンを保管して使いまわします。初期情報収集では名前やメールアドレスなどの質問に答えた情報を保管し、フェーズ1,フェーズ2ではそれぞれ用意した質問に対応した回答結果を保存します。診断結果を表示して、申し込みフォームへと誘導します。フォーム入力してもらい送信したら、最後にもう一度診断結果を表示しておわりです。

フロントエンドの開発はレイアウトの決定、スタイルCSSの決定など見栄えの部分で決めておかないと、あとからの影響が大きいです。

特に、スマフォ側のブラウザキャッシュが強力なので、その影響により変更が反映されないなどの混乱になる原因になります。

ほんとフレームワーク、ブラウザ、ありとあらゆる点でキャッシュは開発上での最優先チェックポイントです。

🧭 StartPage:診断導入フェーズの構成

🔹 主な責務

  • YouTube動画の埋め込み再生(IFrame API)
  • 再生終了後に /diagnosis へ自動遷移
  • セッション初期化(postStart())を強制実行し、localStorage に保存

🔹 技術ポイント

機能実装内容
セッション初期化postStart() を呼び出し、diagnosis_session_tokenlocalStorage に保存
動画再生YT.PlayerplayerRef に格納し、終了イベントで navigate("/diagnosis")
再生完了表示isEnded によりメッセージ切り替え

本当は、自動再生させたかったのですが、無音動画でないと自動再生はAPIでできないYoutubeの仕様制約があります。まあ、ここはユーザの意思で再生するで問題ないです。

手帳學 簡易診断アプリケーション

最新のお知らせ

thumb
2026年2月26日
なぜDDDは「オニオン」や「クリーン」とセットで語られるのか?現場で役立つ5つの本質的教訓

1. はじめに:私たちはなぜ「DDD難民」になってしまうのか...

thumb
2026年2月26日
UNIXとC言語の誕生

1969年に、デニスリッチーはケン・トンプソンと共に、ベル研究...

No Image
2026年2月25日
2026 AI企業のこれからを予測してみよう

2026年、AI企業は「技術の凄さ」を競う段階から、「社会のイン...

thumb
2026年2月24日
DeepSeek、Moonshot AI、MiniMaxの3社が偽アカウント2.4万超を作って、Claude1600万回以上不正使用

いや、本当にえぐいニュースですよね。巨額の資金と時間を...

thumb
2026年2月24日
プログラミング・パラダイムシフト

プログラム、プログラミングという世界は10年に1度くらいでパラ...

thumb
2026年2月23日
ヨハン・セバスチャン・バッハ の世界

ヨハン・セバスチャン・バッハ の世界 SUNOでクラシカル...

thumb
2026年2月17日
【SaaS全滅】時価総額160兆円が消失したSaaSapocalypseの全貌と市場構造の激変

SaaSapocalypse サース・アポカプリス さーす・あぽかぷりす...

No Image
2026年2月13日
ダーツについて調べてまとめてみました

久しぶりに知っている営業から電話があったので、キーワードを...

thumb
2026年2月12日
AIエージェントの「USB-C」:Model Context Protocol(MCP)が変える未来

AI活用の新標準:MCP解説 1. イントロダクション:...

thumb
2026年2月11日
2026年版:ローカルコンテナの中に、自分だけのAI環境を構築したい

ローカルコンテナ(Docker)を使って自分だけのAI環境を構...