こころハレッド

https://github.com/Hana2538/ElmoProject

Swift

Go

GitHub

Docker

PostgreSQL

人とのつながりで「言葉にならない悩み」を自分の言葉にするサービス

Takuya Hasegawa

Shuto Sawaki

Hana Yoshimura

推しアイデア

君の一言に「それな!」ボタン。些細な共感も大切に。 最後に祝杯も!?

作った背景

「言葉にならない感情」にもやもやした経験をすることって意外と多いのに、気軽の相談するのは難しい。

推し技術

「それな!」ボタンが押されるほどたまるジュースがあって。。。。最後にお楽しみがある!? 爽快ボタン。どうやら特殊ボイスが....!?

プロジェクト詳細

はじめに

「友達と話していて、ふと心がザワつく。何が原因かわからないのにイラッとして、そんな自分が嫌になる…」 「Discordの通話でみんなが抜けた後、一人取り残されたような、あの何とも言えない寂しさ…」

皆さんにも、そんな風に**「言葉にならない感情」**にもやもやした経験はありませんか?

はじめまして! 私たちは、テーマカラー「レッド」を担当する開発チーム**「エルモ」**です。

今回が初めてのチーム開発となる1回生の「はせたく」「はなやん」と、頼れるパイセン「しゅーとさん」の3人で、悩みや不安の「言語化」という難しいテーマに挑みました。

何を隠そう、私たち自身が先ほど挙げたような「言葉にならない感情」の正体がわからず、もどかしい思いを抱えていた当事者だったのです。

この課題に本気で向き合うため、私たちは4回のミーティングのうち3回を、アイデア出しと方針決めに費やしました。Notionを多用することで夏の時間の会う日を探すのが’大変な時期でも、互いに作業を円滑に進めることができたと思います。

image

上のFigmaボードも利用し、私生活で感じる些細な悩みを付箋に書き出しては、「どうすればこの『もやもや』を解決できるだろう?」と、何度も何度も議論を重ねました。

この記事では、そんな私たちのリアルな悩みから生まれた、新しい悩み相談アプリ「(ここにアプリ名)」についてお話しします。

私たちがこのプロダクトに込めた思い、丁寧に進めてきた開発の裏側、そしてこだわり抜いた機能のすべてを、この記事を通してお伝えしていきたいです。 そして、少しでも多くの方に**「このアプリ、ぜひ使ってみたい!」**と思っていただけたら、これ以上嬉しいことはありません。

プロダクトに込めた思い

~ただ「わかるよ」が欲しいわけじゃない。私たちが"本当の対話"にこだわる理~

「このモヤモヤ、誰かに話したい。でも、一体誰に…?」

悩みの原因が一番近しい友人や家族だったりすると、かえって本人には相談しづらい。 かといって別の人に話しても、「きっとこう思われるんだろうな」と、相手の答えがなんとなく想像できてしまったり…。

優しい共感の言葉は嬉しいけど、本当に欲しいのはそれだけじゃない。心のどこかで、自分の考えを整理してくれるような、新しい視点が欲しかったりする。 そんな、相談相手探しの袋小路に迷い込んでしまった経験はありませんか?

私たちは、話し合いの中で、このジレンマの正体に気づきました。 きっと多くの人が、ただ悩みを安心して話せる**「安全な場所」と、自分の考えを深めてくれる「新しい発見」**の両方を、同時に探しているのではないか、と。

だからこそ、私たちはこのアプリを通じて、ユーザーにこんな体験を届けたいと強く思っています。

それは、**「ああ、私のこの感情は、こう言葉にできるんだ!」**と、自分の心にもやもやと浮かんでいた雲に名前がつくような、発見の体験。 そして、納得できる答えのかけらを一つでも見つけ、今日一日を晴れやかな心で過ごせるようになる、そんな小さな成功体験です。

さらに、私たちはこのアプリが、友人との関係をギクシャクさせるのではなく、むしろ**「雨降って地固まる」ような、絆を深めるきっかけ**になってほしいと本気で願っています。 普段は話しにくいデリケートな話題も、本音で、でもお互いを傷つけない優しい形で話し合えたなら。それはきっと、二人の関係をより強く、かけがえのないものにしてくれるはずです。

その理想を実現するための私たちの答えが、 信頼できる**「親しい友人」とだけ話せるクローズドな環境と、 その大切な対話を見守り、そっと導いてくれる、おせっかいで賢い「AIファシリテーター」**の存在です。

プロダクト開発のこだわり

~コンセプトは「元気の赤」。私たちの挑戦と、譲れないこだわり~

私たちが目指す「優しい対話体験」というコンセプト。それは、フワフワとした理想論ではありません。私たちは、その「優しさ」をデザインとテクノロジーの力で実現するために、細部まで徹底的にこだわりました。

こだわり①:心に寄り添う、温かいデザイン 悩みを話すとき、どうしても気持ちは少し暗くなりがちです。だからこそ私たちは、アプリを開いた瞬間に少しでも心が明るくなるように、UI全体にチームのテーマカラーでもある**「明るい赤」**を採用しました。(チームのテーマも赤ですしね👍) また、画面が単調で寂しくならないよう、適度に図形やグラデーションを配置し、視覚的な温かみを追求しています。

そして、私たちのちょっと変わったこだわりが、リアクションボタンを****「それな」の1種類****に絞ったことです。

これは、ただ機能をシンプルにしたかったわけではありません。「それな」と心から共感するには、相手の話をしっかり聞く必要がありますよね? 私たちはこのボタン一つで、参加者同士がより深く対話し、少しでも明るい雰囲気で会話に集中できる「きっかけ」を作りたかったのです。

こだわり②:見えない部分での、徹底した安心設計 このアプリでは、会話内容が記録され、テキストとしてコメント欄に表示されます。だからこそ、ユーザーのプライバシーを守ることは私たちの絶対的な使命です。

会話データは、コメント欄に出力される前に、AIによる要約と、約2分間の時間のラグを設けています。私たちはその工程の裏側で、個人情報に関わる可能性のある言葉をフィルタリングする仕組みを構築。ユーザーが心から安心して、自分の悩みを打ち明けられる環境を技術的にサポートしています。

こだわり③:「AIファシリテーター」で実現したい、究極の優しさ 最後に、私たちの最大の挑戦である「AIファシリテーター」についてお話しします。

これはまだ開発の途上ですが、今後、声が小さく、主張が弱くなってしまった人には、「いいんだよ、もっと自分の考えを遠慮なく言って」と優しく背中を押してあげたり、時間内に他の人よりあまり話せなかった参加者に、追加の時間を与えてあげたりなどの機能ができたらなと考えています。

アプリの機能紹介

機能①:部屋IDで繋がる、秘密の「オンライン相談部屋」 このアプリの基本は、あなたが本当に信頼できる友人や家族とだけ繋がれる、完全にクローズドな「相談部屋」を作るところから始まります。

(ここに、部屋を作成したり、IDを入力したりする画面のスクリーンショットを挿入)

部屋を作ると自動的に専用の「部屋ID」が発行されるので、参加してほしい友達にだけそのIDを教えてあげてください。参加者はIDを入力するだけで、すぐにあなたの部屋に入ることができます。(推奨人数は3~5人。じっくりと本音で話すのに、ちょうどいい人数です。)

不特定多数の誰かに会話を聞かれる心配は一切ありません。あなたのことを本当に大切に思ってくれる人たちと、心ゆくまで対話を楽しんでください。

機能②:世界一おせっかいで優しい進行役「AIファシリテーター」 そして、このアプリの最大の特徴が、私たちのこだわりが詰まった「AIファシリテーター」です。

(ここに、AIファシリテーターが会話に介入している様子のスクリーンショットを挿入)

「一人の人ばかり話しているな」と判断すれば他の人に話を振ってくれたり、「会話が少し盛り下がってきたな」と感じれば新しい話題のヒントをくれたり…。 まるで、その場にいる気配り上手な友人のように、誰もが平等に、そして心地よく話せる対話空間を創り出します。

機能③:新しい"気づき"に出会える「お助けコメント機能」 親しい友人との対話はとても大切ですが、時には「全く関係ない人からの、客観的な意見が欲しい…」と思うこともありますよね。

そんな時は、部屋を作るときに「コメント欄を公開する」というスイッチをONにしてみてください。

(ここに、「コメント欄を公開する」スイッチや、公開されたコメント欄の様子のスクリーンショットを挿入)

すると、あなたの部屋の会話そのものは非公開のまま、テキスト化されたコメント欄だけが、ホーム画面を通じて他のユーザーにも見えるようになります。そして、あなたの悩みを見た他のユーザーが、アドバイスや意見をコメントしてくれるのです。

あなたのコミュニティの安心感はそのままに、自分たちだけでは得られなかった新しい視点や、悩みを解決する意外なヒントが見つかるかもしれません。

技術選定

バックエンド:パフォーマンスと挑戦、そしてGo言語 このアプリのバックエンド、つまりユーザーの目には見えないけれど最も重要な部分には、Go言語を採用しました。

一番の理由は、パフォーマンスです。 このアプリの核は、複数人によるリアルタイムな会話体験。ユーザーの小さな心の動きを捉えるためには、遅延のない高速なレスポンスが絶対に必要だと考えました。Go言語なら、その要求に応えられると確信したのです。 また、私自身がPython以外の言語に挑戦する良い機会だと考えたことも、大きな決め手の一つです。

■ 開発途中の決断:Ginフレームワークの導入

実は、開発当初はフレームワークを使わずに開発を進めていました。しかし、実装を進めるうち、一つの処理に必要なコード(ハンドラ)が当初の予想の30倍近くに膨れ上がってしまったのです。コードは長くなり、デバッグは困難を極め、チームの開発効率は明らかに落ちていました。

そこで私たちは、開発途中ではありましたが、Webフレームワーク**「Gin」**の導入を決断しました。Go初心者だった私にも分かりやすく、複雑な処理をきれいに整理できると勧められたGinは、まさに救世主でした。この決断が、その後の開発スピードを大きく向上させてくれたのです。

■ なぜWebSocketを使わなかったのか?

「リアルタイム」と聞いて、WebSocketを思い浮かべる方もいるかもしれません。もちろん私たちも検討しましたが、今回はあえて採用を見送りました。理由は二つあります。一つは、短い開発期間の中で実装するには難易度が高すぎたこと。そしてもう一つは、データベースへのアクセス数が増え、将来的な金銭的コストを圧迫する可能性があったことです。理想を追い求めるだけでなく、現実的な制約の中で最善の選択をすること。これも、私たちが開発を通じて学んだ大切なことでした。

データベース:PostgreSQL ユーザーのデリケートな悩みを預かるデータベースには、**「PostgreSQL」**を採用しました。 ユーザー情報や部屋情報など、データ同士が密接に関係しあうこのアプリの構造上、信頼性の高いリレーショナルデータベースが必要でした。中でもPostgreSQLは、堅牢で厳重なデータ管理に定評があり、「安心」を第一に考える私たちの思想と最もマッチしていました。

AI: ■ 会話要約:Google AI Studioの活用 まず、会話内容をテキスト化し要約する機能は、Google AI Studioの無料APIを利用して実装しています。これにより、コストを抑えつつ、精度の高い要約機能をスピーディーにユーザーへ届けることが可能になりました。

■ AIファシリテーター: 「AIファシリテーター」は、まだ未来への挑戦として残されています。会話の終始を完全に把握し、文脈に沿った繊細な介入をするには、現状のAPI利用では少し不安が残るためです。

Takuya Hasegawa

@63122597e9729f48