Skip to content
 
 

Latest commit

 

History

301 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Samurai Meet

日本国内で、短い空き時間に近くの日本人・外国人が交流相手を募集し、条件が合えばマッチングするアプリです。正式な実装契約は docs/README.md、Go APIの厳密な契約は backend/API_SPEC.md を参照してください。

現在の実装状態

領域 現在の状態
認証 Google OAuth、Passkey、session/refresh、Web Passkey handoffをGo APIと正式frontend/で実装。native Passkeyの実機E2Eは未完了
鍵・復旧 v2 client-owned root key、24語Recovery Phrase、端末proof、端末移行APIを実装。native hardware保護、完全な実機復旧、画像bulk再包みは未完了
募集・マッチング Go API、外国人/日本人の検索・募集・応募・承認/辞退導線を接続。募集管理・応募履歴・応募取り下げも実装。日時入力の初期パース問題はISO/JST化で解消済みだが、iOS実機の全通しE2Eは未完了
通知 通知の永続化、一覧、未読管理、応募/承認/辞退/暗号化チャット送信イベント、アプリ内通知画面を実装。OSのプッシュ通知は未実装
チャット acceptedマッチ向けの暗号化REST送信・履歴・既読・短命Chat Tokenを実装。QUIC/WebTransport/WebSocketのリアルタイム配送とチャット画面は未接続
プロフィール 取得・オンボーディング同期・Go更新APIを実装。プロフィール編集画面の完全同期は未完了

未完了項目の正本は 実装状態とバックログ です。仕様上の目標と現在の実装を混同しないでください。

接続先

  • iPhoneを含むネイティブクライアントの既定値: https://samurai-meet.disnana.com/api/v1
  • ローカルGo API: EXPO_PUBLIC_API_BASE_URL に端末から到達できるURLを明示した場合だけ使用
  • ローカル開発の標準例: http://127.0.0.1:8080/api/v1(同じPCのWeb確認用)。iPhoneからはLAN URLを明示しない限り本番ドメインを使用

API接続先を切り替えるとセッションとDB環境も切り替わるため、その環境で再ログインします。設定の詳細は フロントエンド開発 と フロントエンド接続 を参照してください。

日時の契約

募集の利用日は日本国内向けに Asia/Tokyo 固定です。available_date は YYYY-MM-DD、start_time / end_time は24時間制のHH:mmで入力し、timezone はAsia/Tokyo(空の場合もサーバーが同値へ正規化)だけを受け付けます。端末やサーバーのローカルタイムゾーンに依存しません。

DBの期限や監査用の絶対時刻はUTCのRFC3339で保存・返却しますが、募集の日付・時刻として扱う壁時計は常にJSTです。この契約は現行コードと自動テストで実装・検証済みです。iOS実機の日時pickerから公開・応募・承認/辞退・通知遷移までの全通しE2Eは未完了です。

Expo Go / Development Build

Expo SDK 54系で、通常の画面・API接続・Web Passkeyの開発確認はExpo Goを使えます。Expo GoではRecovery Phrase処理がJavaScript互換実装へフォールバックするため、ネイティブ実機ビルドより遅くなることがあります。

native Passkey、Secure Enclave/Android Keystore、hardware-backedな鍵保護、ネイティブQUIC transportはExpo Goの対象外です。これらはDevelopment Buildまたはストア相当ビルドと実機で確認します。詳細は frontend/README.md を参照してください。

開発・検証

cd backend
go test ./...
go vet ./...
go build ./cmd/server
go run ./cmd/server

cd ../frontend
bun install --frozen-lockfile
bun run typecheck
bun run lint
bun test

backend/migrations/*.sql は適用済みファイルを編集しません。migration runnerはschema_migrationsへ正規化SQLのSHA-256を記録し、checksum mismatch時は起動を停止します。変更は新しいmigrationとして追加してください。 ※コンフリクト注意

ドキュメントの入口

Releases

Packages

Contributors

Languages