CONBINI CHRONICLE

https://github.com/dreadnoughtB3/progate-aws-hackathon-202603

Next.js

TypeScript

AWS

DynamoDB

Python

コンビニのレシートが君の武器になる。日常をゲーム化する戦略TCG

tfull

Chika Yoshida

Kizuki Aiki

ホルス

推しアイデア

レシートを撮影すると商品がゲーム内アイテムに!日常の買い物をゲーム化する新体験。

作った背景

捨ててしまうレシートに価値を持たせたい、日常の行動をエンタメにしたいという思いから作成しました。

推し技術

Amazon Textractを使ったレシートOCR処理とDynamoDBによる高速データ管理

プロジェクト詳細

レシートが強力なアイテムに変わる。日常をハックするコンビニ抗争ゲーム『CONBINI CHRONICLE』。 CONBINI CHRONICLEは、日常的に捨てられている「コンビニのレシート」に価値を与えるゲームアプリです。 プレイヤーはコンビニで買い物をしたレシートをアプリで撮影するだけ。AIがレシートを多角的に解析し、ゲーム内のキャラクター育成アイテムや、戦略バトルで使うカード(デッキ素材)に変換されます。 いつもの買い物が無駄にならず、そのまま推し陣営(ローソン、ファミマ、セブンイレブン)の強化やバトル準備に直結。 技術面では、Next.js、AppSync、Cognito、Step Functions、Bedrock、Textract、Rekognition、DynamoDBをはじめとした15以上のAWSサービスを組み合わせた、フルサーバーレスアーキテクチャで構築されています。 日常の行動データに「遊び」という新しい価値を与える、新感覚の体験を提供します。

🔍 推し技術

  1. AI多層レシート解析パイプライン(Step Functions × 5つのAIサービス) レシート1枚の撮影から、アイテム獲得に至るまでのフローは、Step Functionsが統括するAI多層パイプラインです。OCR → 偽造検知 → 位置検証 → 商品マッチング → アイテム付与の5段階を、Express Workflowが自動でオーケストレーションします。
    • OCR解析: Textract AnalyzeExpenseがレシート画像から店舗名・日付・商品名・金額を構造的に抽出します。
    • 偽造検知: Rekognition DetectLabels/DetectTextが、撮影画像の不正(スクリーンショット転用・加工レシート等)を検出し、不正なスキャンを水際でブロックします。
    • 位置検証: Amazon Location Serviceが、ユーザーの現在地と最寄り店舗の距離を照合し、実際の来店を裏付けます。
    • 商品マッチング: DynamoDBのマスターデータと独自のインメモリアルゴリズム(完全一致・エイリアス一致・部分一致の5段階スコアリング)を組み合わせ、表記ゆれや略称を柔軟に吸収するテキストマッチングを行います。(※将来の拡張としてOpenSearch Serverlessを用いたベクトル検索のインフラ基盤も準備済みです)
    • 動的アイテム生成: Bedrock(Nova Pro)が、廃墟世界観に基づくフレーバーテキスト・レアリティ・ステータスをJSON形式で生成。AI生成結果は即座にゲームアイテムとしてDynamoDBに永続化されます。
    • 重複防止: Valkey上のBloom Filterと2段階ハッシュ(画像ETag+セマンティックハッシュ)により、同一レシートの多重スキャンをTextract呼び出し前にブロックし、コスト効率を最適化しています。
  2. サーバーレスイベント駆動型アーキテクチャ (EDA) バックエンドは完全にLambdaとEventBridgeを中心としたEDAで構成されています。DynamoDB Streams → outbox_forwarder → EventBridge という経路で「at-least-once + 冪等」なTransactional Outboxパターンを実現し、データの不整合を完全に排除した非同期処理を行っています。
  3. AppSync Events API(WebSocket)でのリアルタイム通知 バトルターン結果、マッチング成立、アイテム獲得通知をLambdaから直接Publishするチャンネルアーキテクチャです。クライアントはPollingなしでリアルタイム更新を受け取ります。

🌐 アーキテクチャ image

🛠 使用している主なAWS技術一覧

認証・認可(セキュリティ) ・Amazon Cognito: ユーザーのサインアップ・ログイン管理を担当します。 ・Amazon Verified Permissions: 「どの陣営がどのアイテムを使えるか」といった複雑な権限を、外部から宣言的に制御します。

API・リアルタイム通信 ・AWS AppSync: フロントエンドとバックエンドを繋ぐ窓口です。GraphQLによる柔軟なデータ取得と、WebSocketによるリアルタイムな対戦同期を実現します。

計算・ロジック(サーバーレス) ・AWS Lambda: サーバーの管理不要で、必要な時だけ実行されるプログラムの実行基盤です。 ・AWS Step Functions: レシート解析の5段階パイプライン(OCR → 偽造検知 → 位置検証 → 商品マッチング → アイテム付与)を、Express Workflowで自動オーケストレーションします。

AI・機械学習 ・Amazon Bedrock (Nova Pro): 合成アイテムの物語(フレーバーテキスト)やステータスを自動生成する最新のAIです。 ・Amazon Textract: レシート画像から店舗名・商品名・金額を構造的に読み取る高精度なOCRサービスです。 ・Amazon Rekognition: 撮影画像の偽造(スクリーンショット転用・加工等)を検出し、不正スキャンを防止します。 ・Amazon OpenSearch Serverless: 将来的な高精度商品マッチング(ベクトル検索)を見据え、インフラ基盤として準備・構築しています。

位置情報 ・Amazon Location Service: ユーザーの現在地と最寄り店舗の距離を照合し、実際の来店を検証します。

データベース・ストレージ ・Amazon DynamoDB: メインのデータベースです。スケーラビリティに優れ、膨大なレシートデータやユーザー情報を高速に処理します。 ・Amazon S3: 撮影したレシート画像などを安全に保存するストレージです。 ・Amazon ElastiCache Serverless for Valkey: 対戦中の分散ロック・マッチングキュー・Bloom Filterによるレシート重複防止を担う、超高速なキャッシュデータベースです。

配信・保護 ・Amazon CloudFront: フロントエンドの静的アセットを世界中のエッジから高速配信するCDNです。 ・AWS WAF: CloudFrontと連携し、レートリミットや脅威からアプリケーションを保護します。

イベント連携・メッセージング ・Amazon EventBridge: 各サービス間で「何かが起きた」というイベントをやり取りし、処理を連鎖させる司令塔です。 ・Amazon SQS: 大量の処理待ちデータを一時的に溜めておき、システムがパンクするのを防ぐバッファの役割を果たします。

tfull

@100cbf6f000c1ae5