質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Google フォーム

Google フォームは、 Google社が提供しているアンケートフォーム作成および集計ができる無料のツール。Googleアカウントがあれば利用が可能です。集計データは、スプレッドシートに収集され、データ分析もできます。

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

意見交換

クローズ

6回答

1128閲覧

gasを利用した予約サイトの設計について相談です

testtesttest11.

総合スコア4

Google フォーム

Google フォームは、 Google社が提供しているアンケートフォーム作成および集計ができる無料のツール。Googleアカウントがあれば利用が可能です。集計データは、スプレッドシートに収集され、データ分析もできます。

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

0グッド

1クリップ

投稿2023/03/26 13:29

編集2023/03/26 14:37

0

1

テーマ、知りたいこと

プログラミングの質問ではないため、こちらで意見を募っています
予約サイトを構築しています。
どのように構築をしていくか設計について相談に乗っていただきたいです
理想形はあるのですが、googleフォームの制限が多く、gasやgoogleフォームの機能に詳しくないため困っております。

背景、状況

予約の項目は大きく
・日付(一か月先まで予約可能)
・人数_大人(日にち毎に上限あり、1グループあたり5人までの上限もあり)
・人数_子供(大人1人につき2名まで)
です
予約はスプレッドシート(予約)に連携、自動でメール送信を行いたいです

上限人数はスプレッドシート(人数管理)で管理しています
管理項目は以下です
日付|上限数|予約数_大人|予約可能枠

予約数_大人はsum関数でスプレッドシート(予約)の人数を日付毎にカウントしています
予約可能枠は上限ー予約数_大人の関数を組んでいます

予約ルールとして
人数変更・日付の変更は可能としています
キャンセルも可能です
予約開始時間のみアクセスが集中する可能性があります。そのため人数チェックについては厳しくいきたいです

相関チェックなどのエラーチェックはJSですべて完成しています

以下のようなアイディアを考えたのですがどれもうまく実現できず、アイディアをいただきたいです。
また、考えいる中でだんだん複雑なアイディアになっていき、初心者ではプログラミングでは実現が難しくなっていっています

①googleフォームで単純に作成

人数選択時OR送信時に選択した日付に対しての上限を超えていないかチェックを行う

→NG
相関チェックができない:送信時にクライアント側での処理が走らないため(質問して判明)GASに記載したエラーチェック意味をなさない
スプレッドシートに問答無用でデータが保存されてしまう

せめてスプレッドシートに登録前に人数を超えているかいないかで処理が変えられたら・・・

②gasでHTML作成→変更時に動作しない

②ー1
エラーチェックが行えないので、gasでHTMLを作成し、googleフォームに連携、スプレッドシートにデータを格納

onchange OR submit前にエラーチェックは可能

→NG
予約を変更する際(回答の編集)にメールに飛んだURLではgas作成のHTMLにとべない
gas作成のHTMLでなく、googleフォームでの回答となるため相関エラーチェックなどが行えない

②ー2
回答の編集時にgas作成のHTMLにとべないので、
スプレッドシート(仮予約)を作成
日付と人数を別ページで選択し、スプレッドシート(仮予約)に登録後、googleフォームの画面に飛ばす
スプレッドシート(人数管理)に仮予約状況を反映
googleフォーム側では日付と人数は編集不可とする
送信時にスプレッドシート(仮予約)の人数を削除、
予約しなかった人を想定してスプレッドシート(仮予約)のデータを定期的に削除

→NG
回答編集時にも編集(日付の変更や人数変更)できなくなる
編集時にgoogleフォームでの回答となるためNG相関チェックができない

②ー3
②ー2をもとにgoogleフォームに項目を追加
新規、編集のフラグを立てる(非表示)
編集の時は日付と人数を編集可能とする

→NG
編集時にgoogleフォームでの回答となるためNG相関チェックができない

③いったん予約は受けて、定期的にバッチ処理をして予約完了か不可か連絡する

多分いけそう?

残課題

削除(=キャンセル)をどのように実現するか検討がついていません。
チェックボックスで削除を作成し、キャンセルの場合はチェックを入れてもらう
チェックが入っているときは該当のレコードをスプレッドシートから消すもしくは、マイナス人数で登録するくらいしか思いつかないのですが、
フォームで回答の削除は難しいのでしょうか。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

回答6

#1

mike2mike4

総合スコア894

投稿2023/03/26 14:02

一点だけ。

予約開始時間に予約が集中するのであれば、もはや無料のGoogleフォームでは対応出来ないのではないかと。以前入ったプロジェクトではAWSのEC2をその時間だけ増やして対応してました。オートスケーリングでは無理なので。

実用で使うので有れば、相応のサービスを展開している企業がありますのでそこに頼むべきかと。技術選定というかベンダー選定も技術の一つです。

もちろん、自分の勉強用で使うのなら問題は無いです。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

#2

testtesttest11.

総合スコア4

投稿2023/03/26 14:18

回答ありがとうございます。
予約殺到のアクセス問題は時間をおいてと案内する予定です。
AWSなどは利用できないため(能力的にも、金額的にも)

あくまで無償でできる範囲でという感じです

なので、googleフォーム、GASベースで設計についてご相談に乗っていただけるとありがたいです

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

#3

YAmaGNZ

総合スコア10242

投稿2023/03/27 06:15

予約システムを無料で構築できるようなサービスを利用されるなどは考慮されないのでしょうか?

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

#4

testtesttest11.

総合スコア4

投稿2023/04/01 10:31

無償サイトはあるのは認識しているのですが、突然のサービス終了があるため除外しています

あくまでgoogleformでの回答をいただけると助かります

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

#5

退会済みユーザー

退会済みユーザー

総合スコア0

投稿2023/04/09 02:57

編集2023/04/09 03:07

GAS一見超簡単ですが複雑な業務要件(他の複数の外部利用者を束ねるようなシステム)をつくろうとするのは絶対やめた方がいいです。

理由
・できることが少ない(やたら制限が多い)
・きちんとしたサポートがない
・しょっちゅうapiの仕様が変わる(昨日まで動いてた公式の関数が動かなくなったりドキュメントどおりの結果を吐かなくなったりする)

ユーザーが自分の仕事をちょっと便利にしたいときに使うおもちゃみたいなものです。

同じ予約システムでも、社内の人しか使わないものみたいな、コケても損失が少ないものに限定するべきでは。

価値を生むシステムを稼働させたいなら、ちゃんとお金をかけて外部の本職の人に頼むか、自分で作りたいっていうなら、おなじくお金と時間をかけて勉強頑張りましょう。

#タダほど高いものはない

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

#6

testtesttest11.

総合スコア4

投稿2023/04/09 03:41

回答ありがとうございます。

使っていて制約が多いと感じています。
使う範囲を限定することも考えます

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

最新の回答から1ヶ月経過したため この意見交換はクローズされました

意見をやりとりしたい話題がある場合は質問してみましょう!

質問する

関連した質問