Project Detail
( 05 )
心の天気 - 感情記録プラットフォーム
心の天気は、LLMベースの感情分析および心理相談機能を導入した日記型Webアプリケーションです。 ユーザーが日々の感情を記録し、心理的なサポートを得られるよう支援するものであり、カレンダー・ハッシュタグ・日記検索機能を通じて、記録した日記を便利に管理することができます。 AIによって分析された感情とハッシュタグをもとに、ユーザーは自身の感情状態をより深く認識し、適切に表現できるようになります。
本プロジェクトは現在、デプロイ環境が終了しておりサービスはご利用いただけませんが、主要機能・構造・スクリーンショット等はGitHubにてご確認いただけます。
本ページでは、開発の背景、課題解決の過程、学んだ点を中心にまとめています。
Motive
忙しい現代社会において、メンタルヘルスの維持が難しくなっており、感情を表現し振り返る日記の重要性が一層高まっています。しかし、既存の日記アプリには感情状態の認識を支援したりフィードバックを提供する機能が不足しており、ユーザー自身が感情を整理・理解するには限界がありました。 この課題を解決するため、感情分析と心理カウンセリングのフィードバックを提供するスマート日記プラットフォームを企画しました。 LLMを基盤に感情キーワードやパターンを分析し、感情をより深く理解し管理できる構造として設計したことが、本プロジェクトの出発点です。
Problem Solving
1か月前に学習したReactを初めて実戦のチーム開発プロジェクトに適用し、RESTful API連携やバックエンドのデータ処理に多くの課題がありました。 Node.jsベースのバックエンドに対してGET・POST方式に応じたリクエストを構成し、取得したレスポンスデータを適切に加工してレンダリングするプロセスを繰り返す中で、実践的な感覚を身につけました。 開発初期にはCORSエラーや404エラーなど様々な問題に直面しましたが、チームメンバーと協力して原因を分析し解決する過程で、バックエンド連携の経験を積むことができました。 また、Seremeetyプロジェクトで使用したFirebase Phone Authを再利用して認証を実装し、Firebase UIDをユーザーテーブルのPrimary Keyとして活用する形でバックエンド構造を設計しました。 Propsのみで渡していた日記データやハッシュタグ情報の管理においてProps Drillingによる複雑性が増したため、改善策としてDiaryContextとTagContextをそれぞれ設計しました。両ContextともuseReducerをベースに構成し、日記およびタグデータをグローバルに効率的に管理できるようにしました。これによりコンポーネント間の状態共有が簡潔になり、ユーザー体験の一貫性と保守性も向上しました。
Learned
以前のSeremeetyプロジェクトではReactとFirebaseを用いたWebアプリを完成させた経験がありましたが、本プロジェクトを通じてRESTful API連携を中心とした、より構造的なWeb開発手法を習得することができました。RESTful構造はバックエンドとの明確な役割分担や効率的なデータフロー管理に有利であることを実感しました。 OpenAI APIおよびOpenWeather APIの連携を通じて、外部API呼び出し時に発生しうるレスポンス遅延、エラー処理、結果のレンダリングなどに対するフロントエンド側の対応方法を実戦で学びました。 さらに、GitHubを活用して機能単位でBranchを作成し、Pull RequestやMergeを経てコンフリクト解消、Git Flow戦略などを適用する実務的な協働プロセスを経験しました。 単なる技術実装にとどまらず、チームメンバーとのコミュニケーションを通じて問題を迅速に解決し、役割を理解しながら共に完成へと導く協働能力も向上させることができました。
