審判割り当てアプリをGASとNetlifyで作った話【ノーコスト運用】

きっかけは「また手作業でやるの?」という小さなストレス

こんにちは、オモチです。岡山でふつうに会社員をやりながら、週末は息子の少年野球にも関わっています。その中で地味に面倒だったのが、試合ごとの「審判の割り当て作業」です。

Excelで名簿を管理して、日程を確認して、ダブりがないようにチェックして…。毎回担当者がひとりで抱えていて、「もうちょっとどうにかならないかな」とずっと思っていました。

そこで2026年の春、思い切って自分でWebアプリを作ってみることにしました。使ったのは Google Apps Script(GAS)Netlify です。どちらも無料から使えるので、費用はほぼゼロ。今回はその構成や作り方の流れをざっくり紹介します。

作ったアプリの概要

シンプルに言うと、こういうことができるアプリです。

  • 審判員の名前・連絡先をスプレッドシートで管理
  • 試合日程と審判の割り当てを自動で組む(ランダム+重複チェック)
  • 割り当て結果をフロント画面(Netlify)で確認できる
  • 担当者への通知メールをGASで自動送信

大げさなシステムじゃなくて、あくまで「担当者の手作業を減らす」ことが目的です。規模も小さい1チーム用レベルなので、これくらいで十分でした。

なぜGASとNetlifyの組み合わせにしたのか

GASを選んだ理由

Googleスプレッドシートがすでにデータ管理に使われていたので、GASとの相性が抜群でした。スプレッドシートのデータを読み書きするのが簡単で、JavaScriptに近い書き方ができるのも取っつきやすかったです。

さらに、GASはWebアプリとしてデプロイするとAPIのエンドポイントを発行できます。これをフロントエンドから叩く形にすれば、データのやり取りができます。サーバーを立てなくていいのは本当に楽でした。

Netlifyを選んだ理由

フロントエンドのホスティングにはNetlifyを使いました。HTMLとJavaScriptのファイルをGitHubに置いて、Netlifyと連携するだけで公開できます。無料プランで十分動くし、独自ドメインも使えます。

「サーバーの管理とか全然わからない」という方でも、この2つの組み合わせなら割とすんなり動くものが作れると思います。

技術的な構成をざっくり説明

バックエンド(GAS側)

GASでやっていることは大きく3つです。

  • スプレッドシートの読み取り・書き込み:審判員データと日程データを管理
  • 割り当てロジックの実行:条件(直近の試合から◯日以上空ける、など)をチェックしながらランダム割り当て
  • メール送信:GmailServiceを使って担当者に割り当て結果を通知

GASのWebアプリ機能を使って、外部からHTTPリクエストを受け付けられるようにしています。doGet関数とdoPost関数を使うあの仕組みです。セキュリティ面は最低限のトークン認証を入れました。

フロントエンド(Netlify側)

こちらは本当にシンプルで、HTML+Vanilla JSだけです。フレームワークは使っていません。画面としては2つだけ。

  • 割り当て一覧を見る画面
  • 管理者が割り当てを実行するボタンがある管理画面

ボタンを押すとNetlifyのフロントからGASのエンドポイントにfetch関数でリクエストを飛ばして、結果を受け取って表示する、という流れです。

実際に作ってみてハマったこと

スムーズに全部できたかというと、もちろんそんなことはありませんでした。特に困ったのが CORSエラー です。NetlifyのフロントからGASのAPIを叩くとき、ブラウザのCORS制限に引っかかって最初まったく動きませんでした。

対策としては、GASのdoPost/doGetのレスポンスにCORSヘッダーを付けることで解決しました。具体的にはContentService.createTextOutput().setMimeType(ContentService.MimeType.JSON)を使う方法です。これはGASのCORS対応として割と定番の対処法みたいです。

あとは、GASの実行権限まわりで少し迷いました。「自分として実行」か「アクセスしたユーザーとして実行」かを間違えると、スプレッドシートへのアクセスがうまくいきません。外部からのAPI利用なら「自分として実行+全員にアクセス許可」の設定が必要でした。

実際に使ってみた反応

作ったものを担当者に渡してみたところ、「割り当て作業が30分から5分くらいに短縮できた」と言ってもらえました。小さな変化かもしれませんが、毎回の手間が減ったのは確かで、個人的にはかなり達成感がありました。

完璧ではなくて、たとえば「特定の人はこの試合には来れない」みたいな例外ケースの処理はまだ手動で直しています。でも「大部分の作業を自動化する」という最初の目的は達成できたかなと思っています。

GASとNetlifyは副業的な活用もできる

今回は野球活動のためにタダで作りましたが、こういうツールを「受託で作る」という形で副業にもなり得ます。実際、地域の団体やスポーツクラブ、小規模な事業者さんは「Excelで管理していて手作業が多い」という悩みを持っているところが結構あります。

GASとNetlifyの組み合わせなら、ランニングコストがほぼゼロで動くものを作れるので、「安く作りたい」というニーズに応えやすいです。最初は月3〜10万円スタートくらいで受けながらノウハウを積み、慣れてくれば月20〜30万円も目指せる分野だと感じています。

特別なインフラ知識がなくても始めやすいのがGAS+Netlify構成の強みです。プログラミング学習の延長線上で実際に使えるものを作りながら、少しずつ収入につなげていくのは現実的な選択肢だと思います。

まとめ

今回作った審判割り当てアプリのポイントをまとめると、こんな感じです。

  • GASでバックエンド(データ管理+API)を担当
  • NetlifyでフロントのホスティングをHTTPS無料公開
  • コストはほぼゼロ、サーバー管理も不要
  • CORSの設定とGASの実行権限まわりには注意が必要

「プログラミングを勉強しているけど、まだ実案件には手が届かない」という方でも、こういう身近な課題を解決するツールを作ることが、技術力を上げる一番の近道だと感じています。小さなものでいいので、まず動くものを作ってみるのがおすすめです。

何か質問やコメントがあれば、お気軽にどうぞ。

実は野球大好きなオモチでした。

コメント

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です