8000 GitHub - b13o/sakana-office: 🐟 Real-time chat. In the virtual aquarium office.
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

b13o/sakana-office

Repository files navigation

スクリーンショット

リアルタイムチャットアプリ

概要

このプロジェクトでは、Gather や Ovice などのバーチャルオフィスアプリのような、リアルタイムチャットアプリを構築します。

現在参加しているメンバーのみが、リアルタイムにチャットを送信・閲覧できるように実装します!

学習目標

Socket.IO を使用したリアルタイム通信の実装について、学習します。 React コンポーネントとサーバー間の双方向通信、イベント駆動型アーキテクチャの設計について確認してください。

推奨技術

このプロジェクトの難易度と趣旨を踏まえて、以下の使用をお勧めします。

  • Next.js を用いたフロントエンド&バックエンド統合環境
  • Socket.IO を使用したリアルタイム通信の実装
  • TypeScript による型チェック
  • Tailwind CSS を用いたスタイリング
  • shadcn/ui を用いたコンポーネントの使用

🎯 お題

  • 「ユーザーストーリー」を全て満たすアプリを構築してください。
  • 必要に応じて、スクリーンショットやデモサイトの URL を参照してください。
  • スタイルは、あなた自身で独自にカスタマイズすることが可能です。

必須機能

  1. ユーザー登録
    • チャットに参加するユーザー名を入力し、登録する。
  2. メッセージ送信
    • テキストメッセージを入力し、リアルタイムで全参加者に送信する。
  3. メッセージ表示
    • 送信されたメッセージを時系列順に表示し、送信者の名前を表示する。
  4. 接続状態管理
    • ユーザーの接続/切断をリアルタイムで検知し、表示する。

ユーザーストーリー

  • ユーザーがサイトにアクセスすると、ユーザー名を入力できるフォームが表示されている。
  • ユーザー名を入力して「参加する」ボタンをクリックすると、チャットルームに入室できる。
  • チャットルームでは、メッセージ入力欄とメッセージ履歴を表示する。
  • メッセージを入力して送信すると、自分を含む全参加者のメッセージ履歴に即座に表示される。
  • 各メッセージには、送信者の名前と送信時刻が表示される。
  • 新しいユーザーが参加したとき、チャットルーム内に通知が表示される。
  • ユーザーが退出したとき、チャットルーム内に通知が表示される。
  • タブ切り替えで、チャットと現在接続中のユーザー一覧が表示できる。
  • メッセージ入力中は、他のユーザーに「○○ さんが入力中...」と表示される。
  • チャットページ左側には、ビジュアルマップを表示する。
  • ビジュアルマップには、現在接続中のユーザーが表示される。
  • ビジュアルマップの、自分のユーザーアイコンはドラッグ&ドロップで移動できる。

Releases

No releases published

Packages

No packages published
0