Alive Talk

https://github.com/yomi4486/progate_lion_hackathon

GitHub

TypeScript

DynamoDB

Amplify

RDS

人とAIをライブで繋ぐサービス

wtnb

石原佳晴

推しアイデア

・「人とAIを配信で繋ぐ」という斬新なアイデア ・WebRTCによる低レイテンシー配信でより一体感のあるユーザー体験を提供

作った背景

動画やストリーミングに興味があり、AIと組み合わせたら面白そう!と思ったから。

推し技術

・CI/CDを組むことで開発サイクルを高速化した。 ・Web RTCによる通信で極限まで少ないレイテンシで通信ができている。

プロジェクト詳細

0. 概要

Alive Talk ~ 人とAIをライブで繋ぐサービス ~

[春季ver]Progateハッカソン powered by AWS 2025.03

1. 機能

  • Googleログイン、メールアドレスを用いたログイン
  • ユーザーは手軽に配信を開始、参加ができる
  • WebRTCによってユーザーと配信者の一体感のある配信を実現
  • フォロー・フォロワー機能
  • 配信にAIがコメントをしてくれる

2. 使用技術

使用技術

フロントエンド

  • Expo(React Native)を用いたモバイルアプリケーションとして開発
  • 明確なフォルダ構成や命名規則、linter/formater、非同期の安定した読み込みを実装。安定した動作に仕上げた。
  • 頻出するUIコンポーネントのラッパーのようなものを自作することでコードの可読性を上げつつ、UIに統一性を持たせた。

バックエンド

  • HonoRPCを使用してフロントエンドと型共有をした
  • 基本はRDSで実装し、高速な読み込みが必要なコメントはDynamoDBを使用してパフォーマンス向上を図った
  • テストファイルを作って様々なケースを想定したテストを書いた

インフラ

  • CI/CDを組んで開発サイクルを高速化
  • 認証基盤はAWS Cognitoを使用
  • 予め高負荷が予想される機能にはCroudFrontを導入し、CDNの構築やキャッシュを行っている。

3. 構成図

構成図

image

4. 実行手順

リポジトリをクローン

git clone https://github.com/yomi4486/progate_lion_hackathon.git cd progate_lion_hackathon

フロントエンドの起動

ios

cd frontend && make ios

web

cd frontend && make web

バックエンドの起動

cd backend yarn install yarn run dev yarn run migrate

5. 振り返り

5.1 よかった点

  • 初日でCIパイプラインやブランチルールの定義を行ってことで管理しやすい開発環境の構築ができた。
  • 初日でアイデア、構成、言語を決めることができたため開発に充てれる時間を十分に確保できた。
  • 初めて触る技術領域(リアルタイム系、EKS、Dynamo GSI、CloudFront)がたくさんあったが、適切に理解し、スムーズに開発を進めることができた。

5.2 苦労した点

  • AWSをあまり利用したことがなく、使ったことのないサービスを初めて使った点
  • パフォーマンスを意識した技術選定をした点。
  • 人が減ったため1人あたりの負担が増えた
  • クラウド経験者はいたものの、普段からAWSを触ってる人がいなかった
  • Expoのエコシステムがマジでわからなかった点
  • チームメンバーの両方のPCのリソースが不足して余計なところに時間がかかってしまった点

5.3 成長できた点

  • AWSやGitOps、CI/CD、負荷分散などのインフラ周りの知識が体系的ではあるものの深まった点
  • 人数が減ってもフレキシブルにタスクの割り振りができた点

wtnb

@1e570ba1e23c348d