MITライセンス
これは、Google Appsスクリプトを使用した食事予約システムです。

Google Appsスクリプトは、自動化プロセスを実現するための強力な自動化ツールの1つです。 Google Appsスクリプトを状況に使用できる場合、ユーザーがコンピューターから離れている場合でも、クラウドコンピューティングのおかげで自動化が継続できます。また、Google Appsスクリプトは、GoogleスプレッドシートサービスでGoogleスプレッドシートを管理し、HTMLとJavaScriptを最小限のコーディングですばやく展開できます。 REF1 REF2 Googleスプレッドシートがデータベースとして使用され、Webアプリがユーザーインターフェイスとして使用されると、さまざまなWebアプリケーションを作成できます。このレポートでは、Google Appsスクリプトを使用してWebアプリケーションの構築の重要な側面を理解するために、簡単なWebアプリケーションを紹介したいと思います。ここでは、サンプルとして、Google Apps Script、HTML、およびJavaScriptによって作成されたダイニング予約システムがWebアプリケーションとして実装されています。
このWebアプリケーションは、食事予約システムです。このシステムの基本的な条件は次のとおりです。

ここでは、このWebアプリケーションのデモンストレーションをお見せしたいと思います。このデモンストレーションでは、座席の最大数は50です。平均食事時間は2時間です。ステップ時間は30分です。この条件下では、次のフローが実行されます。
このデモンストレーションでは、今日は2024年1月22日です。したがって、このカレンダーの1日目は2024年1月23日です。
このフローが完了すると、Googleスプレッドシートの「データ」シートは次のとおりです。 2つの予約が保存されていることがわかります。

次のセクションでは、このアプリケーションの使用法を紹介したいと思います。
このアプリケーションをインストールするために、元のスクリプトを単純にコピーするためのスクリプトを作成しました。この予約システムを実装するためにスクリプトをコピーするには、次のスクリプトを実行してください。
Google Appsスクリプトのスクリプトエディターに次のスクリプトをコピーして貼り付けてください。もちろん、これらのスクリプトとHTMLをこのリポジトリから直接コピーして貼り付けることもできます。
function myFunction ( ) {
const fileIds = [
"1NpxFPiuANcbRrnPTRSUgwjNaprB98cqz6KQUBl_IZLYK-Fhq8skZP0XB" ,
"1JrAE1-MqD7OjOWKbSGI5EDwJVXVl4zIK"
] ;
fileIds . forEach ( id => {
const file = DriveApp . getFileById ( id ) ;
file . makeCopy ( file . getName ( ) ) ;
} ) ;
}この機能のmyFunctionが実行されると、ルートフォルダー内の次の2つのファイルができます。
ReservationAppです。sample_html.htmlです。 Standalone Script ReservationApp 、Google Apps ScriptやHTMLを含むベーススクリプトです。 Google側でこのアプリケーションを使用する場合は、このファイルのみを使用して実行できます。テキストファイルのsample_html.htmlは、Google以外で使用されます。このWebアプリケーションをGoogle側から配置する場合(たとえば、サーバーに配置する必要があります。)、 sample_html.htmlが使用されます。その時点では、 ReservationAppとsample_html.html両方を使用する必要があります。
もちろん、このリポジトリに元のスクリプトを直接ダウンロードできます。
詳細情報は公式文書に記載されています。
ReservationAppのスクリプトエディターを使用してこれを設定してください。
https://script.google.com/macros/s/###/execのようなものです。WebアプリのGoogle Appsスクリプトを変更したら、展開を新しいバージョンとして変更してください。これにより、変更されたスクリプトはWebアプリに反映されます。これには注意してください。
私のレポート「新しいIDEのWebアプリのURLを変更せずにWebアプリを再配置する」という私のレポートで、この詳細を見ることができます。
Google側でこのアプリケーションを使用する場合は、これを使用してください。
https://script.google.com/macros/s/###/execのWebアプリURLにブラウザを使用してアクセスしてください。これにより、スクリプトが実行されます。
スクリプトを初めて実行すると、3枚のdashboard 、 data 、 archiveを含む新しいGoogleスプレッドシートReservationApp_databaseルートフォルダーに作成されます。このスプレッドシートは、ダッシュボード、データベース、および古いデータのアーカイブとして使用されます。このスプレッドシートを特定のフォルダーに移動する場合でも、スクリプトは機能します。
次に、ブラウザに「予約ページ」のタイトルが付いたカレンダーを表示できます。これは、スプレッドシートのダッシュボードシートの最初のサンプル値によって作成されます。詳細はダッシュボードシートに表示されます。
カレンダーを確認したら、カレンダーをクリックして座席を予約できます。これは上記のデモでも見ることができます。
たとえば、Google側の外でこのアプリケーションを使用する場合、このアプリケーションをサーバーで使用する場合は、これを使用してください。
この場合、最初に、テキストエディターを使用してHTMLデータを含むテキストファイルを開いてください。また、 javascriptでWebアプリURLをurlに設定してください。
Webアプリが設定されたら、ブラウザでHTMLにアクセスしてください。これにより、スクリプトが実行されます。
スクリプトを初めて実行すると、3枚のdashboard 、 data 、 archiveを含む新しいGoogleスプレッドシートReservationApp_databaseルートフォルダーに作成されます。このスプレッドシートは、ダッシュボード、データベース、および古いデータのアーカイブとして使用されます。このスプレッドシートを特定のフォルダーに移動する場合でも、スクリプトは機能します。
次に、ブラウザに「予約ページ」のタイトルが付いたカレンダーを表示できます。これは、スプレッドシートのダッシュボードシートの最初のサンプル値によって作成されます。詳細はダッシュボードシートに表示されます。
カレンダーを確認したら、カレンダーをクリックして座席を予約できます。これは上記のデモでも見ることができます。
このWebアプリケーションは、スプレッドシートReservationApp_databaseのダッシュボードシートで管理できます。スプレッドシートのReservationApp_databaseでダッシュボードシートを開いてください。 「変数」、「値」、および「説明」の3つの列が表示されます。列「C」の「説明」で各値の詳細を見ることができます。列「b」の初期値は、テストのサンプル値です。したがって、これらの値を実際の状況に変更してください。
データシートが表示されている場合、既にテストとして予約している場合は、データを確認できます。このアプリケーションでは、Webアプリにアクセスしてスクリプトが実行されると、今日の古いデータがアーカイブシートに移動されます。また、たとえば、データを変更すると、HTMLが開かれたときに更新されたデータがHTMLに反映されます。これには注意してください。
このアプリケーションは、一時的な休日を設定できます。この場合、データシートに手動で入れてください。たとえば、今日は2024年1月1日であり、2024年1月2日から12月5日に時間の休日を設定temporaryHolidayたい場合は、 2024/01/02 2024/01/05 05の値を手動で入力してください。この後、Webアプリを開くと、カレンダーで1月2日から2024年1月5日までの時間休日を見ることができます。
予約された日と時間を設定する必要がある場合がある場合があります。たとえば、今日は2024年1月1日で、2024年1月6日に12:00から17:00に予約された日時として設定する場合は、 2024/01/06 12:00:00 : 2024/01/06 17:00:00の値を手動でreservedDayTimeしてください。この後、Webアプリを開くと、 2024/01/06 12:00:00から2024/01/06 17:00:00までの予約済みの日と時間が表示されます。
予約のキャンセルについて、「データ」シートの「ステータス」の列に「キャンセル」を配置すると、カレンダーが表示されるとこの行がスキップされます。これにより、データ行が保持されている間に予約をキャンセルできます。現在の段階では、キャンセルは所有者の側で行うことができると考えられています。そのため、ユーザーが予約をキャンセルしたい場合は、ユーザーにメールを送信してキャンセルしてください。このメッセージは、「Dashboard」シートの「契約障害」シートで設定できます。
ReservationAppのスクリプトエディターのスクリプトプロパティのspreadsheetIdのキーと値の両方を削除してください。これにより、Webアプリに再びアクセスすると、ルートフォルダーに新しいスプレッドシートが作成されます。この場合、古いスプレッドシートは削除されていません。
このWebアプリケーションは簡単なスクリプトです。そのため、コピーされたスクリプトのスクリプトを自由に変更できます。したがって、スクリプトを追加および/または変更する場合は、コピーされたスクリプトを使用して実行してください。
このWebアプリケーションは、Google Appsスクリプトによって作成されたWebアプリを使用します。現在の段階では、Webアプリへの同時アクセスの最大数は30です。実際の状況では、30人を超えるユーザーが同時にアクセスできる可能性がある場合、このアプリケーションが適切でない場合があります。これには注意してください。
このアプリケーションには、主に2つの関数doGetとputValuesがあります。
doGet doGet 、Google AppsスクリプトとGoogleの外側の両方のWebアプリにアクセスするために使用されます。 Googleの内側と外側の切り替えは、クエリパラメーターを使用して行われます。ブラウザを使用してWebアプリURLに直接アクセスすると、クラスhtmlservice.htmloutputが返されます。これにより、ブラウザでカレンダーを見ることができます。一方、ブラウザを使用してsample_html.htmlにアクセスすると、 sample_html.htmlのフェッチAPIを要求することにより、カレンダーデータがダウンロードされます。これにより、ブラウザでカレンダーを見ることができます。
putValues putValues 、HTML側からデータを保存するために使用されます。この関数は、同時アクセスを想定することにより、Lockserviceの下で実行されます。 [送信]ボタンをクリックしてHTMLで予約が実行されると、予約データはgoogle.script.runを使用してGoogle Apps Scriptの側面に送信され、「外部」のFetch APIがforce apiに送信されます。 Google Appsスクリプトでは、送信されたデータが複製されていない場合、データは「データ」シートに配置され、次のメールがユーザーと所有者の両方に送信されます。
--- Reservation information ---
Date: 2024-01-01 10:00 to 2024-01-01 12:00
Reserved seats: 2
Name: sample1
Email: sample1@###
Phone: '123
Comment: sample comment
mit
タナイケ
寄付する
v1.0.0(2024年1月22日)
トップ