樽在庫
AIエージェントで構築
蒸留所樽在庫バックエンド

蒸留所樽在庫バックエンドテンプレート
プルーフログ、エンジェルシェアトラッキング、樽の履歴

Back4app 上の蒸留所樽在庫バックエンドは、プルーフログ、エンジェルシェアトラッキング、樽の履歴が含まれています。ERダイアグラム、データ辞書、JSONスキーマ、APIプレイグラウンド、迅速なブートストラップのためのAIエージェントプロンプトが含まれています。

主なポイント

このテンプレートは、証明ログ、天使の分け前追跡、および樽の履歴を持つ蒸留所樽在庫バックエンドを提供するため、マネージャーや現場スタッフが樽記録を整合させることができます。

  1. 監査可能な証明ログ特定の樽に結び付けられた読み取り時間、証明値、およびノートテキストを持つすべてのCaskProofLogを保存します。
  2. 樽ごとの天使の分け前追跡樽ごとのAngelShareReadingエントリーをキャッチし、収縮が時間とともに可視化されるようにします。
  3. 一つのビューでの樽履歴樽の移動、移転、検査にBarrelHistoryイベントを接続して、クリーンなタイムラインを作成します。
  4. ロール認識アクセスACLとCLPルールを使用して樽記録を保護しながら、コーディネーターと現場スタッフが適切なクラスを更新できるようにします。

蒸留所樽在庫テンプレートとは?

蒸留所の補充がReactの場合、常に遅れて注文しています。構造化された使用ログは、棚が空になる前に需要を可視化します。小さな遅れが重なります。このテンプレートは、デフォルトで追跡可能性が必要な蒸留所チームのために、組み込みの認証とBack4appに対するリアルタイムクエリを備えた蒸留所、樽、樽証明ログ、バレル履歴、エンジェルシェア読み取りをモデル化しています。スキーマは、ユーザー(ユーザー名、メール、パスワード)、蒸留所(名前、場所、タイムゾーン)、樽(蒸留所、樽番号、スピリットタイプ、充填日、充填証明、状態)、樽証明ログ(樽、記録者、証明値、読み取り日時、メモ)、バレル履歴(樽、イベントタイプ、イベント日時、発生場所、移動場所、メモ)、エンジェルシェア読み取り(樽、読み取り日時、蒸発ガロン、推定損失パーセント、天候メモ)を含み、認証と監査対応のトラッキングが組み込まれています。好みのフロントエンドを接続して、迅速に出荷しましょう。

最適:

蒸留所運営ダッシュボード樽在庫と追跡アプリ証明ログキャプチャツールエンジェルシェア監視システムバレルの履歴と移送ログBaaSを蒸留所のワークフローに選ぶチーム

蒸留所バックエンドの概要

信頼できる蒸留所の運営は、先週の火曜日に何が起こったかを説明できます。それが宝探しを必要とする場合、そのシステムはボトルネックです。

まず、Distillery、Cask、およびCaskProofLogをレビューし、次にSDK特有のノートや統合パターンを見るためにスタックカードを開いてください。

コア蒸留所カスク機能

このハブ内のすべての技術カードは、蒸留所、樽、樽証明ログ、樽履歴、およびAngelShareReadingを使用して同じ蒸留所樽在庫スキーマを使用しています。

蒸留所プロファイル管理

蒸留所は各サイトの名前、場所、タイムゾーンを保存します。

樽の登録とステータス

樽は蒸留所、樽番号、スピリットタイプ、充填日、充填度数、そしてステータスをリンクします。

度数ログキャプチャ

CaskProofLogは樽、ログ作成者、度数値、取得時、メモを記録します。

エンジェルシェアの監視

AngelShareReadingは、蒸発ガロン、推定損失パーセント、天候ノートを追跡します。

樽履歴のタイムライン

BarrelHistoryは、樽、イベントタイプ、イベント日時、発生場所、および移動先をリンクします。

Back4appで蒸留所の樽在庫バックエンドをなぜ構築するのか?

Back4appは、カスク、プルーフ、および履歴のプリミティブを提供するため、チームはカスタムAPIの維持ではなく、在庫の正確さに集中できます。

  • カスクと証明構造: Caskクラスは充填証明、ステータス、および蒸留所のリンクを固定し、CaskProofLogは各読み取りを保存します。
  • エンジェルシェアの可視性: AngelShareReadingは、各樽記録に付随する蒸発および損失の推定、天候のメモを保持します。
  • リアルタイム + APIの柔軟性: すべてのクライアントのためにRESTとGraphQLを利用可能にしながら、樽の履歴変更にLive Queriesを使用します。

すべてのプラットフォームで1つのバックエンド契約を介してカスク在庫ワークフローを迅速に構築および反復します。

コアの利点

証明、損失、履歴データを簡単に照会・確認できる蒸留所のバックエンド。

迅速な樽設定

すべてのフィールドをゼロから設計するのではなく、完全な蒸留所と樽のスキーマから始めます。

可読性のある証明トレイル

CaskProofLogレコードを使用して、誰が証明を記録したか、いつ記録したか、どの値を入力したかを表示します。

常に可視の損失追跡

AngelShareReading値を保存し、蒸発と推定損失が各樽に結び付けられるようにします。

明確な樽の動きの履歴

BarrelHistoryを使用して、各樽の移動、転送、および検査イベントを保存します。

クエリ可能な在庫データ

バレル番号、ステータス、および読み取り日でフィルタリングして、スプレッドシートに蒸留所のワークフローを平坦化することなく。

AIブートストラップワークフロー

1つの構造化されたプロンプトで迅速にバックエンドの骨組みと統合ガイダンスを生成します。

在庫アプリを立ち上げる準備はできていますか?

Back4app AIエージェントに蒸留所のバレル在庫バックエンドを構築させ、1つのプロンプトから証明書ログ、エンジェルシェア、およびバレル履歴のフローを生成します。

スタートは無料 — 50 AIエージェントのプロンプト/月、クレジットカードは不要

技術スタック

このディスティラリー樽在庫バックエンドテンプレートに含まれるすべて。

フロントエンド
13+ テクノロジー
バックエンド
Back4app
データベース
MongoDB
認証
組み込みの認証 + セッション
API
REST と GraphQL
リアルタイム
Live Queries

ER図

蒸留所の樽在庫スキーマのエンティティ関係モデル。

図のソースを表示
Mermaid
erDiagram
    User ||--o{ Cask : "assignedTo"
    User ||--o{ ProofLog : "loggedBy"
    User ||--o{ BarrelHistory : "recordedBy"
    User ||--o{ AngelShareEntry : "loggedBy"
    Cask ||--o{ ProofLog : "cask"
    Cask ||--o{ BarrelHistory : "cask"
    Cask ||--o{ AngelShareEntry : "cask"

    User {
        String objectId PK
        String username
        String email
        String password
        String role
        Date createdAt
        Date updatedAt
    }

    Cask {
        String objectId PK
        String caskCode
        String distillateType
        Date fillDate
        Number fillProof
        String location
        String status
        String assignedToId FK
        Date createdAt
        Date updatedAt
    }

    ProofLog {
        String objectId PK
        String caskId FK
        String loggedById FK
        Date sampleDate
        Number sampleProof
        Number volumeGallons
        String notes
        Date createdAt
        Date updatedAt
    }

    BarrelHistory {
        String objectId PK
        String caskId FK
        String eventType
        Date eventDate
        String recordedById FK
        String fromLocation
        String toLocation
        String details
        Date createdAt
        Date updatedAt
    }

    AngelShareEntry {
        String objectId PK
        String caskId FK
        String loggedById FK
        Date measuredOn
        Number expectedGallons
        Number actualGallons
        Number lossGallons
        String environment
        Date createdAt
        Date updatedAt
    }

統合フロー

認証、樽の検索、証明の記録、樽の履歴の更新、エンジェルシェアの読み取りの典型的な実行フロー。

図のソースを表示
Mermaid
sequenceDiagram
  participant User
  participant App as Distillery Cask Inventory App
  participant Back4app as Back4app Cloud

  User->>App: Sign in to the inventory console
  App->>Back4app: POST /login
  Back4app-->>App: Session token

  User->>App: Review cask list
  App->>Back4app: GET /classes/Cask?include=assignedTo&order=-updatedAt
  Back4app-->>App: Cask records

  User->>App: Add a proof reading
  App->>Back4app: POST /classes/ProofLog
  Back4app-->>App: ProofLog objectId

  User->>App: Record angel's share and barrel movement
  App->>Back4app: POST /classes/AngelShareEntry
  App->>Back4app: POST /classes/BarrelHistory
  Back4app-->>App: Updated cask history

  App->>Back4app: Live query for cask status changes
  Back4app-->>App: Change event

データ辞書

蒸留所樽スキーマ内の各クラスに対するフルフィールドレベルのリファレンス。

フィールドタイプ説明必須
objectIdStringAuto-generated unique identifier自動
usernameStringUser login name
emailStringUser email address
passwordStringHashed password (write-only)
roleStringRole of the user (e.g., manager, coordinator, field_staff)
createdAtDateAuto-generated creation timestamp自動
updatedAtDateAuto-generated last-update timestamp自動

7 フィールド User

セキュリティおよび権限

ACL と CLP 戦略が樽、証明ログ、樽の履歴、およびエンジェルシェアの読み取りをどのように保護するか。

ユーザーの所有権ルール

割り当てられたスタッフユーザーのみが自分のプロフィールを更新できます; 身元記録は樽の操作とは別に保持されます。

カスク記録の整合性

承認されたロールのみがカスク記録を作成または閉じ、監査安全な履歴エントリを追加できるようにCloud Codeを使用します。

スコープログアクセス

マネージャーが蒸留所全体のデータを確認できるように読み取りと書き込みを制限し、現場スタッフは自分に割り当てられたカスクのみを扱います。

スキーマ(JSON)

コピーしてBack4appに貼り付けるか、実装リファレンスとして使用できる生のJSONスキーマ定義。

JSON
{
  "classes": [
    {
      "className": "User",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "username": {
          "type": "String",
          "required": true
        },
        "email": {
          "type": "String",
          "required": true
        },
        "password": {
          "type": "String",
          "required": true
        },
        "role": {
          "type": "String",
          "required": true
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "Cask",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "caskCode": {
          "type": "String",
          "required": true
        },
        "distillateType": {
          "type": "String",
          "required": true
        },
        "fillDate": {
          "type": "Date",
          "required": true
        },
        "fillProof": {
          "type": "Number",
          "required": true
        },
        "location": {
          "type": "String",
          "required": true
        },
        "status": {
          "type": "String",
          "required": true
        },
        "assignedTo": {
          "type": "Pointer",
          "required": true,
          "targetClass": "User"
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "ProofLog",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "cask": {
          "type": "Pointer",
          "required": true,
          "targetClass": "Cask"
        },
        "loggedBy": {
          "type": "Pointer",
          "required": true,
          "targetClass": "User"
        },
        "sampleDate": {
          "type": "Date",
          "required": true
        },
        "sampleProof": {
          "type": "Number",
          "required": true
        },
        "volumeGallons": {
          "type": "Number",
          "required": true
        },
        "notes": {
          "type": "String",
          "required": false
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "BarrelHistory",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "cask": {
          "type": "Pointer",
          "required": true,
          "targetClass": "Cask"
        },
        "eventType": {
          "type": "String",
          "required": true
        },
        "eventDate": {
          "type": "Date",
          "required": true
        },
        "recordedBy": {
          "type": "Pointer",
          "required": true,
          "targetClass": "User"
        },
        "fromLocation": {
          "type": "String",
          "required": false
        },
        "toLocation": {
          "type": "String",
          "required": false
        },
        "details": {
          "type": "String",
          "required": false
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "AngelShareEntry",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "cask": {
          "type": "Pointer",
          "required": true,
          "targetClass": "Cask"
        },
        "loggedBy": {
          "type": "Pointer",
          "required": true,
          "targetClass": "User"
        },
        "measuredOn": {
          "type": "Date",
          "required": true
        },
        "expectedGallons": {
          "type": "Number",
          "required": true
        },
        "actualGallons": {
          "type": "Number",
          "required": true
        },
        "lossGallons": {
          "type": "Number",
          "required": true
        },
        "environment": {
          "type": "String",
          "required": false
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    }
  ]
}

AIエージェントで構築

Back4app AIエージェントを使用して、このテンプレートから実際の蒸留所カスク在庫アプリを生成します。フロントエンド、バックエンド、認証、証明書ログ、樽の履歴、エンジェルシェアフローを含みます。

Back4app AIエージェント
構築する準備はできました
Back4app上にこの正確なスキーマと動作で蒸留所樽在庫アプリバックエンドを作成します。

スキーマ:
1. ユーザー(Back4app 内蔵使用):ユーザー名、メール、パスワード;objectId、createdAt、updatedAt(システム)。
2. 蒸留所:名前(文字列、必須)、場所(文字列、必須)、タイムゾーン(文字列、必須);objectId、createdAt、updatedAt(システム)。
3. 樽:蒸留所(蒸留所へのポインタ、必須)、樽番号(文字列、必須、ユニーク)、精神タイプ(文字列、必須)、充填日(日時、必須)、充填証明(数字、必須)、ステータス(文字列、必須);objectId、createdAt、updatedAt(システム)。
4. 樽証明ログ:樽(樽へのポインタ、必須)、記録者(ユーザーへのポインタ、必須)、証明値(数字、必須)、読取日時(日時、必須)、ノート(文字列);objectId、createdAt、updatedAt(システム)。
5. 樽履歴:樽(樽へのポインタ、必須)、イベントタイプ(文字列、必須)、イベント日時(日時、必須)、出発地(文字列)、到着地(文字列)、ノート(文字列);objectId、createdAt、updatedAt(システム)。
6. エンジェルシェア読取:樽(樽へのポインタ、必須)、読取日時(日時、必須)、蒸発ガロン(数字、必須)、推定損失率(数字、必須)、天候ノート(文字列);objectId、createdAt、updatedAt(システム)。

セキュリティ:
- 割り当てられたスタッフユーザーのみが自分のプロフィールを更新できます。クラウドコードとACL/CLPを使用して樽記録と監査フィールドを保護してください。

認証:
- サインアップ、ログイン、ログアウト。

動作:
- 樽をリスト、証明ログを追加、エンジェルシェア読取を記録、樽履歴イベントを追加します。

配信:
- スキーマ、ACL、CLPを持つBack4appアプリ;蒸留所プロフィール、樽在庫、証明ログ、樽履歴、エンジェルシェア読取のフロントエンド。

以下のボタンを押して、このテンプレートプロンプトで事前に入力されたエージェントを開いてください。

これは、テクノロジーのサフィックスなしの基本プロンプトです。その後、生成されたフロントエンドスタックを適応できます。

数分でデプロイ月に50回の無料プロンプトクレジットカードは不要です

APIプレイグラウンド

蒸留所の樽在庫スキーマに対して、RESTとGraphQLエンドポイントを試してください。レスポンスにはモックデータが使用され、Back4appアカウントは必要ありません。

プレイグラウンドを読み込んでいます…

このテンプレートと同じスキーマを使用しています。

技術を選択してください

各カードを展開して、選択したスタックとDistillery、Cask、CaskProofLogを統合する方法を確認してください。

Flutter蒸留所の樽バックエンド

React蒸留所の樽バックエンド

React ネイティブ蒸留所の樽バックエンド

Next.js蒸留所の樽バックエンド

JavaScript蒸留所の樽バックエンド

Android蒸留所の樽バックエンド

iOS蒸留所の樽バックエンド

Vue蒸留所の樽バックエンド

Angular蒸留所の樽バックエンド

GraphQL蒸留所の樽バックエンド

REST API蒸留所の樽バックエンド

PHP蒸留所の樽バックエンド

.NET蒸留所の樽バックエンド

各技術で得られるもの

すべてのスタックは同じ蒸留所カスク在庫スキーマとAPI契約を使用します。

統一された蒸留所データ構造

カスク、証明書ログ、樽の履歴、エンジェルシェアの読み取り値を1つのスキーマに保持します。

蒸留所用の証明書ログキャプチャ

各CaskProofLogのproofValueとreadingAtを記録して、新しいバックエンドを作成しない。

蒸留所の天使の分け前の追跡

各樽の経過時間に対してevaporationGallonsとestimatedLossPercentを測定する。

蒸留所の樽の履歴

各樽の動きについてeventType、fromLocation、およびtoLocationを追跡する。

蒸留所用のREST/GraphQL APIs

柔軟なAPIを通じて在庫画面、監査、およびオペレーションツールを統合する。

蒸留所のための拡張可能なアーキテクチャ

モデルを破棄することなく、後で樽のメモ、テイスティングログ、または倉庫クラスを追加する。

蒸留所樽フレームワーク比較

サポートされているすべての技術にわたるセットアップ速度、SDKスタイル、AIサポートを比較します。

フレームワークセットアップ時間蒸留所の利点SDKタイプAIサポート
約5分モバイルとウェブ用の蒸留所樽在庫の単一コードベース。タイプ済みSDKフル
5分未満樽在庫のための高速ウェブダッシュボード。タイプ済みSDKフル
約3~7分証明書ログと樽の履歴のためのクロスプラットフォームモバイルアプリ。タイプ済みSDKフル
迅速な(5分)セットアップ蒸留所業務のためのサーバーレンダリングウェブアプリ。タイプされたSDKフル
約3~5分樽追跡のための軽量ウェブ統合。タイプされたSDKフル
約5分倉庫の証明チェック用のネイティブAndroidアプリ。タイプされたSDKフル
5分未満セラースタッフ向けのネイティブiPhoneアプリ。タイプされたSDKフル
約3〜7分React用の樽在庫管理のウェブUI。型付けSDKフル
迅速な(5分)セットアップ蒸留所の運営のためのエンタープライズウェブアプリ。型付けSDKフル
2分未満樽とプルーフログクエリ用の柔軟なGraphQL API。GraphQL APIフル
迅速なセットアップ(2分)在庫ワークフローのためのREST API統合。REST APIフル
約3分蒸留所ツールのためのサーバーサイドPHPバックエンド。REST APIフル
約3〜7分樽の在庫操作のための.NETバックエンド。タイプ付きSDKフル

セットアップ時間は、このテンプレートスキーマを使用してプロジェクトのブートストラップから最初の樽または証明ログクエリまでの期待される期間を反映しています。

よくある質問

このテンプレートを使用して蒸留所の樽在庫バックエンドを構築する際の一般的な質問。

監査人があなたの在庫システムに対して瞬時に回答すべき蒸留所に関する質問はどれですか?
蒸留所のワークフローはどのように物理アイテムを責任ある所有者にリンクさせますか?
このモデルはスキャナーやERPフィードなどの蒸留所統合には十分柔軟ですか?
どのようにして Flutter で樽と証明書のログをクエリできますか?
どのようにして Next.js Server Actions で蒸留所のアクセスを管理できますか?
React Native は樽の在庫をオフラインでキャッシュできますか?
不正な証明書の変更を防ぐ方法はありますか?
Android で樽の履歴を表示する最良の方法は何ですか?
樽追跡フローはエンドツーエンドでどのように機能しますか?
この蒸留所の樽在庫テンプレートを支えているクラスは何ですか?

世界中の開発者に信頼されています。

Back4app テンプレートを使用して、蒸留所の樽在庫商品をより早く出荷するチームに参加しましょう

G2 Users Love Us Badge

蒸留所の樽在庫アプリを作る準備はできましたか?

数分で蒸留所の樽在庫プロジェクトを開始できます。クレジットカードは不要です。