シェフとレストランをつなぐマッチングプラットフォーム
ChefNextは、シェフとレストランを効果的にマッチングするためのプラットフォームです。Web版とモバイル版(今後実装予定)の両方を提供し、pnpm workspace + TurboRepoによるモノレポ構成で開発されています。
- Go 1.25+
- Node.js 20+
- pnpm 9.12.3+
- Docker Desktop
- Make
# 1. リポジトリのクローン
git clone https://github.com/your-org/ChefNext-1.git
cd ChefNext-1
# 2. 依存関係のインストール
pnpm install
# 3. 環境変数の設定
cp apps/api/.env.example apps/api/.env
# .env ファイルを編集してください
# 4. Docker Desktop を起動してから、依存サービスを起動
make infra-up
# 5. データベースマイグレーション
make db-migrate
# 6. 開発サーバーの起動
# ターミナル1: API サーバー
pnpm dev:api
# ターミナル2: Web サーバー
pnpm dev:web- Web UI: http://localhost:3001
- API: http://localhost:8080
- MailPit: http://localhost:8025
- MinIO Console: http://localhost:9001
詳細なセットアップ手順は 開発環境セットアップガイド を参照してください。
ChefNext-1/
├── apps/
│ ├── api/ # Go バックエンド (Connect-RPC)
│ │ ├── cmd/ # エントリーポイント
│ │ ├── internal/ # 内部パッケージ
│ │ ├── proto/ # Protocol Buffers 定義
│ │ └── db/ # マイグレーション・クエリ
│ ├── web/ # React フロントエンド (Vite)
│ └── mobile/ # Expo モバイルアプリ(予定)
├── packages/
│ ├── api-client/ # Connect-RPC クライアント
│ ├── ui/ # 共通UIコンポーネント
│ ├── features/ # 機能単位のコンポーネント(予定)
│ └── lint-config/ # ESLint 設定(予定)
├── infra/
│ ├── docker/ # Docker Compose 設定
│ └── terraform/ # Terraform 定義(予定)
├── ops/
│ ├── ci/ # GitHub Actions 設定
│ └── scripts/ # 運用スクリプト
└── docs/ # ドキュメント
- Go 1.25
- Connect-RPC (Protocol Buffers)
- PostgreSQL 15
- Redis 7
- JWT 認証
- sqlc (型安全なSQLコード生成)
- goose (マイグレーション)
- React 18.3
- TypeScript
- Vite 6.3
- Tailwind CSS 4.x
- Radix UI
- React Hook Form
- Docker Compose (ローカル開発)
- MinIO (S3互換ストレージ)
- MailPit (メール送信テスト)
- pnpm workspace
- TurboRepo
詳細は 技術スタック全体像 を参照してください。
- 開発環境セットアップガイド - 開発環境の構築手順
- 技術スタック全体像 - 使用技術の体系的なまとめ
- 機能別技術スタック - 機能ごとの技術詳細
- マイルストーン 1.1 - プロジェクトロードマップ
- ✅ Milestone 0: モノレポ開発環境構築
- ✅ Milestone 1: 認証基盤(JWT, bcrypt, Redis)
- 🔄 Milestone 2: プロフィール管理(Chef / Restaurant)
- ⬜ Milestone 3: 求人・応募 + フロント共通化基盤
- ⬜ Milestone 4: ポートフォリオ画像アップロード
- ⬜ Milestone 5: Expo モバイルアプリ PoC
- ⬜ Milestone 6: チャット・通知 + 簡易レビュー
- ⬜ Milestone 7: 本番デプロイ + 品質保証 + ストア申請
make dev # 依存サービス起動 + API 起動
make infra-up # 依存サービスのみ起動
make infra-stop # コンテナを停止
make infra-clean # コンテナとボリュームを削除
make db-migrate # データベースマイグレーション実行
make logs # コンテナログを表示pnpm dev # すべてのワークスペースを並行起動
pnpm dev:web # Web サーバーのみ起動
pnpm dev:api # API サーバーのみ起動
pnpm build # すべてのワークスペースをビルド- Protocol Buffers を編集:
apps/api/proto/**/*.proto - コード生成:
cd apps/api && buf generate - ハンドラーを実装:
apps/api/internal/handler/ - Air が自動的に再起動
- マイグレーション作成:
cd apps/api && goose create add_feature sql - マイグレーション編集:
apps/api/db/migrations/ - 実行:
make db-migrate - クエリ追加:
apps/api/db/queries/ - sqlc 生成:
cd apps/api && sqlc generate
- コンポーネント編集:
apps/web/src/components/ - Vite が自動的に Hot Module Replacement で更新
# Docker Desktop を起動してから
docker ps# Docker Compose を再起動
docker compose -f infra/docker/docker-compose.yml restart
# サービスの状態を確認
docker compose -f infra/docker/docker-compose.yml ps# ポート使用状況を確認
lsof -i :8080 # API
lsof -i :3001 # Web詳細は 開発環境セットアップガイド を参照してください。
# ユニットテスト
pnpm test
# E2Eテスト(Milestone 7)
pnpm test:e2e
# 負荷試験(Milestone 7)
cd apps/api && k6 run tests/load/basic.jsTBD
開発チームメンバーのみ。貢献ガイドラインは今後追加予定。
問題が発生した場合は、開発チームに連絡してください。
ChefNext - シェフとレストランをつなぐ未来