Amazon Web Services ブログ

Amazon Honeycode で学校の安全な開校を支援

(この記事は、 Helping schools open safely with Amazon Honeycode を翻訳したものです。)

2020年は物理的に人を集めなければならない組織、特に学校にとっては困難な時期でした。教師と生徒が安全に集まれるようにするための一般的なアプローチは、毎日子供が登校する前に保護者に情報提供を求めることです。この記事では米国ボストンの St Johns Nursery School で使用されている毎日の健康状態を確認するためのアプリを構築するにあたっての検討内容と手順を紹介します。

この記事を読めば、 Amazon Honeycode を使って同様のアプリケーションを作ることができます。Honeycodeの紹介については このブログ記事 をご覧ください。次のアプリケーションを構築する際に使用された主要な機能のいくつかをご紹介しています。

 

紙を用いた健康調査の改善

米国の地方自治体では学校に子どもを送り届ける前に、子供の健康調査に伴う紙の調査票を保護者が記入することを義務付けています。サマーキャンプも同様に多くの用紙に記入しなければなりません。それぞれの用紙に手作業で署名、チェックし、州の規制当局の監査証跡として提出しなければなりません。これは保護者にとって不便で時間のかかる作業であり、学校への送り迎えの時間を延ばす原因にもなります。

アマゾンではお客様のニーズから逆算し、お客様の問題を解決します。私たちはお客様のためにソリューションを発明することに挑戦します。アマゾンの文化の重要な部分は Our Leadership Principles に記されています。

すでにモバイルデバイスを使って授業のスケジュールや通知表、宿題などの情報を学校から受け取っており、初めて入力用紙を使ったときに改善の可能性として、調査票の提出にも使えるのではないかと感じました。調査票のウェブアプリは入力用紙よりも提出、チェック、保存が簡単にできるかもしれません。一元化されたデータベースにより報告と監査が可能になり、保護者がモバイルデバイスから調査票を提出できるようになります。

ソリューションの構築に Honeycode を選択

学校長から調査票のアプリとして利用できるサービスの推薦を依頼され検討しましたが、必要な質問をするようにカスタマイズできるものはありませんでした。

学校やその他の小さな組織では独自のモバイルアプリケーションやウェブアプリケーションを構築するための技術的な専門知識が不足していることがよくあります。React、JavaScript、モバイルID管理など、学ぶべき技術はたくさんあります。初歩的なアプリケーションを書くのに数ヶ月かかることもあります。

幸いなことに Honeycode はコードを書かずに強力なモバイルおよびWebアプリケーションを構築するのに役立ちます。ビジュアルアプリケーションビルダーは、非常にインタラクティブなWebおよびモバイルアプリケーションを作成するために使用できます。また、データの入力やチェックなどの作業を行うためにAWSで構築された強力なデータベースが用意されています。データはスプレッドシートのようにアクセス可能なデータベーステーブルに保存され、データの保存、フォーマット、レポート作成が容易になります。

Honeycode を使って健康調査用のモバイルアプリを作りました。Honeycode を選んだ理由はすぐに始めることができたからです。モバイルアプリの開発、ユーザー認証、データベースなどの知識は必要ありません。ソリューションで扱うデータとユーザーエクスペリエンスに注力できました。Honeycode はモバイルアプリケーションを構築する際に通常必要とされる技術的なスキルを必要とせず、インターフェイスとデータモデルに集中できます。

Honeycode はグラフィカルユーザーインターフェイス (GUI) をアプリケーションのデータに直接接続することを可能にします。つまりWebブラウザやモバイルデバイス、GUIフレームワーク、データベースなどの複雑な仕組みを意識する必要がありません。真っ白なキャンバスにGUIをドラッグ&ドロップするだけで、テーブルに直接接続することができます。GUIコンポーネントはデータベーステーブルのデータを表示または編集する場合に利用可能であり、調査アプリケーションなどに役立ちます。

Honeycode によってアプリの構築が容易になると、アプリの改善も容易になります。コードを使わずにアプリを構築することで、同じように段階的に機能を追加することも容易になります。

この学校では毎日最新バージョンのアプリをテストし、その結果に基づいた機能追加を行い、時には数分で新しいバージョンを公開できました。アプリの初期バージョンでは新しく記入した調査の合否結果が表示されていませんでした。教師からは保護者がいつでも調査の結果を確認できるようにすべきだと提案され、数分で新しい画面を作成してアプリに配置し、関連するGUIコンポーネントにメインデータテーブルを表示しました。

結果

このアプリは現在45人の学校関係者や保護者が使用しています。生徒が毎日学校に通う度に保護者はモバイルデバイスで健康調査に回答し、学校に到着すると調査結果画面を教師に見せます。この画面には教師が確認しやすいように「合格・不合格」の表示がされています。物理的な紙が必要ないので保護者と教師の接触が不要になりました。このアプリは調査票をデータベースに保存し、子どもたちがスクリーニングを受けていることを示す監査証跡を提供するもので、学校の認可機関からも承認されています。

この学校では生徒たちの報告状況を体系的に記録することが容易になりました。保護者、教師、そして州の規制当局は教室の環境が可能な限り安全であることを確信することができます。

"Amazon Honeycode によって紙の書類を使った場合と比べて子どもたちのスクリーニングが非常に簡単になりました。また認可機関に提供が必要な情報の保存も簡単になりました。登校前に子供たちが適切にスクリーニングされたことをすぐに示すことができます。"

St Johns Nursery School ディレクター Kris Blue氏

ユーザー体験から始める検討 (Working Backwards)

アプリケーションの開発に先立ち教師や他の保護者たちと話をしていると、望ましい体験とは次のようなものだと気づきました。

  1. ユーザーが同意しなければならない、法的な文言を含むウェルカムスクリーンを用意する。
  2. ユーザーが子供のための健康調査をすぐに入力できること。
  3. 健康調査結果画面をすぐに開けるようにする。

これを実現するために、3つの画面を持つアプリを作りました。

1) Content box オブジェクトを使用して任意のテキストを表示するスタートページまたはスクリーン。Content box はGUIコンポーネントを配置する部品で、学校の名前やアプリの目的を表示することができます。I Agree ボタンは次の画面に移動するための Automations を使用しています (Automations については後述します)。

2) データ入力画面ではユーザーが健康調査の情報を入力します。この例ではいくつかのドロップダウンボックスが用意されており、ユーザーが YesNo の 2 つのオプションを選択できるようになっています。ユーザーが Submit Survey ボタンをクリックすると、Automations がまず SurveyHistory テーブルに新たなデータを書き込み、その後に確認画面へ移動します。

Data Entry

3) 確認画面では Column list オブジェクトを使用して、登録した健康調査結果を表示します。Column list オブジェクトは、Honeycode テーブルの1つまたは複数のデータに接続されたGUIコンポーネントです。

Confirmation Screen

データ構造

優れたデザインのアプリケーションの中核となるのは考え抜かれたデザインのデータモデルです。Honeycode では親、子、質問、回答、およびそれらの関係など、健康調査に関わるすべての重要なエンティティを表すデータモデルをすばやく構築することができます。Honeycode では、データの保存にスプレッドシートのようなテーブルを使用します。この図はアプリケーションデータとして、これらの4つのエンティティを格納するために使用したテーブルを示しています。

Honeycode Schema

­­­

Honeycode にはテーブル間の関連付けを作成するため、VLOOKUP を強化した Rowlink という概念があります。Rowlink は単一の値を返すのではなくデータの行全体を返すため、テーブルの参照や接続に最適です。マッピングテーブルに Rowlink を使用して、親 (Parents) と子 (Child) の多対多の関係を表しています。これにより、強力な参照整合性を持つデータモデルが実現しました。

Rowlink によるフォームの入力制限

アプリでは健康調査の質問に対するユーザーの回答を Yes もしくは No のいずれかに制限する必要があります。 Rowlink を使用することでユーザーが入力できる値を制限できます。健康調査項目にあたる SurveyResponses テーブルの各列 では質問事項への回答として Yes または No の値を格納する必要があるため、Responses_YesNo というテーブルを作成して SurveyResponses と関連付けを行います。

Example responses

具体的には、SurveyResponses テーブルの各質問事項の列を Responses_YesNo テーブルを Source とする Rowlink 型と定義します。

Source を Responses_YesNo テーブルとすることで、入力可能なデータが Responses_YesNo テーブルに登録された値に制限されることに加え、ドロップダウンボックスの選択肢として設定されます。これらの列は Responses_YesNo テーブルへの Rowlink であり、各ドロップダウンには、ユーザーが選択できるように Yes と No のオプションが表示されます。

Automations の役割

こちらは健康調査の入力画面の全景です

この画面には、主に 2 種類のコンポーネントがあります。

1) 入力フィールドはすべての健康調査回答を保存する SurveyHistory テーブルの列に直接マッピングされます。

2) Submit Servey ボタンは クリック時に Automations を呼び出します。Automations はテーブルへのデータの追加や更新、通知の送信、別の画面への遷移、現在の画面や対象の画面での変数の設定などに使用できます。ここでは Automations を使用して SurveyHistory テーブルにデータを追加、または更新します。

テーブルの特定データの更新

ユーザーが健康調査を送信する場合、SurveyHistory テーブルに新たなデータを追加するか、テーブルの特定のデータを更新する必要があります。このアプリケーションでは特定の生徒の現在の日付に対する調査データが対象です。操作対象データの特定は単一の Block オブジェクトの中にすべての入力フィールドを配置することで実現します。Block オブジェクトは他のオブジェクトを格納する容器のようなものです。

Block オブジェクトは1つのデータセット (テーブルの単一または複数のデータ) に接続できます。Block オブジェクトに配置された Content box などのオブジェクトは、Block オブジェクトの Source に設定されたテーブルに接続されます。

以下は Block オブジェクトを SurveyHistory テーブルに接続した例です。

データソースの式ではパラメータとして渡された、対象の生徒と日付の調査データが選択されます。この式の結果、Block オブジェクト上に配置された入力および表示フィールドは Source に指定された SurveyHistory テーブルの単一の調査データのみを表示または変更します。

登校可否判定画面の作成

生徒の状態を保護者や教師が判断するのではなく、このアプリに組み込まれたルールが健康調査の質問に対する回答をもとに、生徒の登校可否を評価します。

Honeycode ではボタンをクリックすると テーブルにデータを登録もしくは更新する Automations を追加できます。また複雑な式の結果をテーブルの列に書き込むこともできます。このアプリケーションでは Pass/Fail という新しい列を作成し、健康調査を送信する際の Automations に「報告された症状がすべて False の場合は Pass」と評価される式を入力しました。

次期バージョンでの改善

多くの成功したアプリのように、ユーザーの変化するニーズを満たすための継続的な改善が鍵となります。このアプリを試用した後、さらに2つの重要な要件を発見しました。

1) 職員は仕事を始める前に健康調査に回答しなければならないという政府の要求があること。

2) 保護者がアプリを使えない場合に備えて、職員が子供の健康調査を提出できること。

Honeycode のおかげで、これらの新機能をすぐに追加してテストすることができました。

まとめ

Amazon Honeycode を使用すると、チームや組織の効果と効率を高めるのに役立つアプリをすばやく簡単に作成できます。この例では学校が子供や教師を保護しやすくなりました。Honeycode はコーディングの経験を求めることなく、 学校や職場向けに同様のアプリを作成するための助けとなります。

今日から独自のアプリケーションの構築を開始するには、Amazon Honeycode にアクセスしてください。

翻訳はソリューションアーキテクトの酒井 賢が担当しました。原文はこちら です。