JAWS UG 名古屋の活動で、AWSハンズオンでのクーポン配布システムを2~3時間ぐらいで作っで効率化したことをシェアします。
これは、JAWS-UG Advent Calendar 7日目 の投稿です。(遅れてすいません)
背景
JAWS UG を運営している特典の一つとして、ハンズオンセミナーを開催すると、時々、AWSさんからクーポンをいただけることがあります(いつも、ありがとうございます!)
昔は1枚の A4 の紙に、Excel でいただいたクーポンコードを普通に印刷し、ハサミで1人1人に紙をちぎって渡していました(筒井さん、可知さん他感謝!)
ただ、印刷し、ハサミで切った上に、小さい紙に書かれたアルファベットで画面と睨めっこしながらの入力、そして余ったクーポンコードをきちんと返却する等、いろいろ手間がかかっていました。
そして、コロナ渦、勉強会はオンラインのみになり、物理的にクーポンを配布してハンズオンの開催が不可能になりました。
ということで、簡単なクーポン配布システムを作成することにしました。実は2〜3年前のことです。
気をつけること
単純にフォームを作って公開するのだけでは、クーポンを不特定多数の人に配布してしまうことになります。
ですので、インチキが無いような仕組みにすることにしました。
仕様
- フォームの受付は勉強会開催時間+1時間に限定
- 勉強会開始後のみ、QR コードで配布する (URL は参加しか分からない)
- 月末開催じゃなかったら、余りが無いように、クーポンの配布は希望者の数が確定してから AWS 沼口さんにお願いする
- 誰でも簡単に操作できるような仕組みにする
できたもの
手前味噌ですが、Concrete CMS を使って作成しました。
- フォームは CMS 標準のフォーム。
- 「Express」と呼ばれるCMS の簡易リレーショナルDBに記録
- フォームの時限公開・停止は CMS 標準機能で表示・非表示を自動設定
- 名前、メールアドレス、使い方に同意してもらう
- Concrete CMS 標準のリレーショナルデータベースみたいな機能を使って以下のデータを扱う
- 名前, メール, 同意チェック, クーポンコード, 有効期限
- 会社で作った CSV エクスポート・インポートツールを拝借
- Concrete CMS でカスタムプログラム作って、AWS SES を通じてクーポンコードをメールで配信
- 最後にデータを削除
JAWS UG 名古屋メンバー誰もが使えるように、ステップバイステップでの使い方のマニュアルも作りました。
技術スタック
- EC2 (Concrete CMS)
- AWS SES
シンプル!
今度してみたいこと
いつ時間ができるかどうかわかりませんが・・・
- Serverless で構築し直してみたい + CDK で管理したい
- CSV の出力・入力をせずともマージできるようにしたい
他の UG でクーポン配布システムを使ってみたい人は、 JAWS UG Slack (make-jawsug) の katzueno までお問い合わせください。