2
0

JAWS UG 名古屋ハンズオンのためのクーポン配布システム作った

Last updated at Posted at 2023-12-09

JAWS UG 名古屋の活動で、AWSハンズオンでのクーポン配布システムを2~3時間ぐらいで作っで効率化したことをシェアします。

image.png

これは、JAWS-UG Advent Calendar 7日目 の投稿です。(遅れてすいません)

背景

JAWS UG を運営している特典の一つとして、ハンズオンセミナーを開催すると、時々、AWSさんからクーポンをいただけることがあります(いつも、ありがとうございます!)

昔は1枚の A4 の紙に、Excel でいただいたクーポンコードを普通に印刷し、ハサミで1人1人に紙をちぎって渡していました(筒井さん、可知さん他感謝!)

ただ、印刷し、ハサミで切った上に、小さい紙に書かれたアルファベットで画面と睨めっこしながらの入力、そして余ったクーポンコードをきちんと返却する等、いろいろ手間がかかっていました。

A man with scissors trying to cut a piece of paper into pieces. But he struggle a lot in Japanese cartoon illustration style..png

そして、コロナ渦、勉強会はオンラインのみになり、物理的にクーポンを配布してハンズオンの開催が不可能になりました。

ということで、簡単なクーポン配布システムを作成することにしました。実は2〜3年前のことです。

気をつけること

単純にフォームを作って公開するのだけでは、クーポンを不特定多数の人に配布してしまうことになります。

ですので、インチキが無いような仕組みにすることにしました。

仕様

  • フォームの受付は勉強会開催時間+1時間に限定
    • 勉強会開始後のみ、QR コードで配布する (URL は参加しか分からない)
  • 月末開催じゃなかったら、余りが無いように、クーポンの配布は希望者の数が確定してから AWS 沼口さんにお願いする
  • 誰でも簡単に操作できるような仕組みにする

できたもの

手前味噌ですが、Concrete CMS を使って作成しました。

image.png

  • フォームは CMS 標準のフォーム。
    • 「Express」と呼ばれるCMS の簡易リレーショナルDBに記録
  • フォームの時限公開・停止は CMS 標準機能で表示・非表示を自動設定
  • 名前、メールアドレス、使い方に同意してもらう
  • Concrete CMS 標準のリレーショナルデータベースみたいな機能を使って以下のデータを扱う
    • 名前, メール, 同意チェック, クーポンコード, 有効期限
  • 会社で作った CSV エクスポート・インポートツールを拝借
    • フォーム送信者の CSV 一覧をダウンロードし、Excel などで、クーポンコードをがっちゃんこ
    • CSV を再び CMS に読み込む couponadmin.png
  • Concrete CMS でカスタムプログラム作って、AWS SES を通じてクーポンコードをメールで配信 sampleemail.png
  • 最後にデータを削除

JAWS UG 名古屋メンバー誰もが使えるように、ステップバイステップでの使い方のマニュアルも作りました。

image.png

技術スタック

  • EC2 (Concrete CMS)
  • AWS SES

シンプル!

今度してみたいこと

いつ時間ができるかどうかわかりませんが・・・

  • Serverless で構築し直してみたい + CDK で管理したい
  • CSV の出力・入力をせずともマージできるようにしたい

他の UG でクーポン配布システムを使ってみたい人は、 JAWS UG Slack (make-jawsug) の katzueno までお問い合わせください。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0