マルチテナントスポーツ施設予約プラットフォーム

Web

概要

このリポジトリは、スポーツ施設向けのマルチテナント予約プラットフォーム(SaaS)を想定したサンプル実装です。WhatsAppで動作するAIボットが統合されており、音声入力の文字起こし(Whisper)と大型言語モデル(Gemini)を組み合わせた会話型インターフェースを通じて予約を補助します。リアルタイム更新はSocket.ioで実現し、決済はMercado Pagoをサポート。NestJS(API)、Next.js 14(フロント)、Redis+BullMQ(バックグラウンドジョブ)など、現代的なスタックで構成されたモノレポ形式の設計が読み取れます。(約300字)

GitHub

リポジトリの統計情報

  • スター数: 8
  • フォーク数: 0
  • ウォッチャー数: 8
  • コミット数: 4
  • ファイル数: 8
  • メインの言語: TypeScript

主な特徴

  • マルチテナント設計を想定したSaaS向けアーキテクチャ
  • WhatsApp連携のAIボット(Whisperで音声→文字、Geminiで会話/予約支援)
  • リアルタイム同期(Socket.io)とバックグラウンドジョブ処理(Redis + BullMQ)
  • フロントはNext.js 14+Tailwind+shadcn/ui、状態管理にZustand

技術的なポイント

このプロジェクトはモノレポ構成で「apps」以下に api(NestJS)、web(Next.js)、bot(ワーカー)を分離しており、関心事の分離が明確です。バックエンドはTypeScript/NestJSで型安全にAPIを提供し、永続化はPostgreSQL、キャッシュ・ジョブキューにRedisとBullMQを採用することでスケーラブルなジョブ処理とセッション管理を両立します。BotワーカーはWhisperで音声をテキスト化し、Geminiのような大規模言語モデルで会話や予約フローを生成する設計になっており、外部メッセージング(WhatsApp)経由でユーザー体験を自動化します。フロントはNext.js 14の最新機能とshadcn/uiでコンポーネント化、Zustandで軽量なクライアント状態管理を行い、Socket.ioで予約状況のリアルタイム反映を行います。決済はMercado Pago連携を想定しており、地域対応型の支払いフローを組み込める点が特徴です。現状はファイル数・コミット数が少なくプロトタイプ段階ですが、採用技術は実運用に向いた選択になっています。(約700字)

プロジェクトの構成

主要なファイルとディレクトリ:

  • .env.example: file
  • .gitignore: file
  • README.md: file
  • apps: dir
    • apps/api: NestJSバックエンド(API、認証、テナント処理を想定)
    • apps/web: Next.jsフロントエンド(UI、顧客向けページ)
    • apps/bot: ボットワーカー(WhatsApp連携、Whisper/Gemini処理)
  • package-lock.json: file

…他 3 ファイル

各アプリケーションが分離されているため、個別にビルド・デプロイやスケールが可能です。RedisはセッションキャッシュとBullMQのジョブキューに、PostgreSQLは予約データやテナント情報の永続化に使います。Socket.ioはフロントとAPI間の双方向通信を担い、予約の即時反映や管理者向けの通知を実現します。Botは外部AI(Gemini)と音声認識(Whisper)を経由してユーザーの問い合わせを処理し、必要に応じてバックエンドAPIをコールして予約を作成・更新します。決済フローはMercado Pagoを介して実装する計画で、地域決済の互換性が確保されます。

まとめ

モダンな技術選定でSaaS化を視野に入れたプロトタイプ。実運用には追加実装が必要。

リポジトリ情報:

READMEの抜粋:

Sports Booking SaaS

Multi-tenant sports facility booking platform with WhatsApp AI bot integration.

Tech Stack

  • Backend: NestJS + PostgreSQL + Redis + BullMQ
  • Frontend: Next.js 14 + Tailwind + shadcn/ui + Zustand
  • Bot: Separate worker with Gemini + Whisper
  • Real-time: Socket.io
  • Payments: Mercado Pago

Project Structure

sports-booking-saas/
├── apps/
│   ├── api/          # NestJS backend
│   ├── web/          # Next.js frontend
│   └── bot/          # Wh...