This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
Oreore.meは、Identity Provider(IdP)として機能するSSOシステムです。GoバックエンドとNext.jsフロントエンドで構成されています。
ローカル開発環境立ち上げ:
docker compose up
# http://localhost:3000 (ユーザー向け)
# http://localhost:3002 (管理者向け)Goテスト実行:
./scripts/docker-compose-db.sh up -d # DBを先に起動
go mod download
./scripts/test.shフロントエンドの開発:
pnpm i
pnpm lint # TypeScriptとESLintチェック
pnpm fix # 自動修正
pnpm storybook # http://localhost:6006データベース操作:
./scripts/sql.sh # MySQLコンソールに接続ローカル開発環境:
backend_app(Go): ポート8080frontend_app(Next.js): ポート3001nginx(プロキシ): ポート3000, 3002db(MySQL): ポート3306gcs(オブジェクトストレージ): ポート4443
バックエンドアーキテクチャ:
- エントリーポイント:
main.go - ソースコード:
src/ディレクトリ - フレームワーク: Echo (ルーティング)
- ORM: SQLBoiler
- 認証: WebAuthn + JWT
- テスト: Go標準のtestingパッケージ + go-snaps (スナップショットテスト)
- ホットリロード: Air(
.air.toml設定)
フロントエンドアーキテクチャ:
- フレームワーク: Next.js 13 (App Router)
- UIライブラリ: Chakra UI
- 状態管理: Jotai
- データフェッチング: SWR
- フォーム: React Hook Form + Zod
- 認証: WebAuthn
- テスト: Storybook
- リンター: GTS (Google TypeScript Style)
ディレクトリ構造:
src/: Goバックエンドソースコードapp/: Next.js App Routerのページcomponents/: 再利用可能なReactコンポーネントstories/: Storybookストーリー(機能別に分類)utils/: 共通ユーティリティ関数db/: データベーススキーマとマイグレーションscripts/: 開発用スクリプトtemplates/: Go HTMLテンプレートdocker/: Docker設定ファイル
db/schema.sqlを編集./scripts/setup_migrate.sh [マイグレーション名]でマイグレーションファイル生成./scripts/migrate.sh upでマイグレーション実行./scripts/sqlboiler.shでSQLBoilerモデル再生成
バックエンド設定: src/config.go
フロントエンド設定: utils/config.ts
開発時は多くの環境変数は空でも動作します(reCAPTCHA、Mailgun、Fastlyなど)。
Goテスト:
./scripts/test.shでバックエンドテスト実行- SQLBoilerを使用したDBテスト
- HTTPテスト用の
go-http-easy-test - スナップショットテストで出力検証
フロントエンドテスト:
- Storybookでコンポーネントの動作確認
pnpm lintでコード品質チェック
- 管理画面アクセスはローカル環境のみ
admin@local.testを使用 - パスワード再設定URLはDEBUGログに出力される
- WebAuthnを使用しているため、HTTPS環境で認証テストが必要
- SQLBoilerのモデルは自動生成のため手動編集禁止
- Air設定でGoファイル変更時の自動ビルド・再起動