Box Platformの使用
この演習では、実際の問題を取り上げ、Box Platformを使用して解決する方法を見ていきます。ここでは、UI Elements、ファイルとフォルダ、タスク、Sign APIを使用して、ダイビングセンターにおける処理を自動化します。
使用するウェブアプリケーション全体は、こちらのリポジトリで確認できます。
ストーリー
ダイビングはとても楽しいアクティビティです。水中の生態系を発見したり、自然の生息環境で種を観察したりできるほか、難破船に飛び込めば水中考古学者のような気分になることもできます。
楽しくないのは事務処理です。
ただボートに乗ってダイビングに出発できればよいのですが、ダイビングセンターでは、ダイビング証明書と保険証を確認し、従来の同意書に署名するために、いつも早朝に長い待ち時間が発生します。
前もって証明書や保険証を送信したり、ダイビングセンターに到着する前に同意書に署名したりしてもよいのではないでしょうか。
Boxを使用する
この架空のダイビングセンターには非常にシンプルなウェブサイトがあり、そこで予約に対応しています。ホスティングプロバイダには、ファイルストレージの制限 (サイズと価格両方) があります。証明書や保険証は個人を特定できる情報 (PII/GDPRを考慮) のため、これらのファイルの保護をホスティングプロバイダで保証されているよりも多少強化したいと考えています。セキュリティは重要です。
これが1つ目の問題です。
このダイビングセンターでは、ダイビングサイトに予約された各ダイバーの事務処理を各ダイブマスターが担当します。私たちは、新しいドキュメントがアップロードされたときにダイブマスターに通知し、ダイブマスターがそのドキュメントに対して簡単に承認/拒否を行えるようにする方法を見つける必要があります。
これが2つ目の問題です。
同意書は必要な法的義務であり、時間と紙を節約したいと考えています (ペンと紙が海水と合わないのは言うまでもありません)。
これが3つ目の問題です。
問題1: ファイルのホスト、アップロード、プレビュー、操作
まず、アップローダーUI Elementを使用して、ユーザーが自分のダイビング証明書と保険証をアップロードできるようにします。
BoxのUI Elementsの詳細については、こちらを参照してください。
最初に、システムでは、すべてのファイルが最終的に適切な場所に配置されるように、予約に基づいたフォルダの作成を処理します。各ダイブマスターは1つのダイブサイトを担当しており、フォルダ構造は/bookings/<ダイブサイト>/<日付>/<ダイバー>のようになっています。
次に、アップローダーをインスタンス化する際に、適切なフォルダを指します。また、アップロードされた時点でファイルを処理するようにイベント「一式」を実装します。
これで、ダイバーのフォルダ構造では、ファイルがダイブサイトの予約日にアップロードされます。
また、プレビューアーで使用できるように、file_idがデータベースに格納されます。
もう1つのUI Elementであるプレビューアーにより、アプリでファイルを表示できます。
問題2: ダイブマスターへの通知とドキュメントの確認
この問題には、BoxタスクAPIを使用します。このAPIにより、ドキュメントがアップロードされるたびに、ダイブマスターがドキュメントを承認/拒否するためのタスクが作成されます。
ダイブマスターは、ドキュメントを承認または拒否するためのタスクを受け取ります。
問題3: 同意書への署名
ここでは、Box Sign APIを使用して、テンプレートに基づいた署名リクエストを生成します。Boxは、メール通知の送信からドキュメントへの署名と署名ログの作成まで、フローのすべての側面を処理します。