銀の光と碧い空

クラウドなインフラとC#なアプリ開発の狭間にいるエンジニアの日々

connpassで先着順と抽選の両方の参加枠を用意したい

conpassでイベントを開催する際、まず何人かは先着順で参加可能にして、残りの枠を抽選にしたいということがあります。今まではこのように別々の枠に分けて募集していました。

f:id:tanaka733:20190928091537p:plain

なのですが、いくつかやりづらいなと感じている点がありました。

  • 参加者にとって抽選日直前の場合、先着順枠に入ってキャンセル待ちするか抽選枠に入って抽選に期待するか悩ましい
  • 参加者にとって抽選日以降、どちらの枠もあふれているとどちらの枠に入ってキャンセル待ちするか悩ましい
  • 運営者にとって、枠を増やせることになった場合、どちらの枠にいくつ足すか決めるのが悩ましい

いずれも「悩ましい」なので、これを悩ましく思わずえいやで決めればいいのでは?と思える人であればこのままでもいいと思います。ただ、私はこういうの時間をかけて悩んでしまう性格なので、悩まずにすむ方法はないか考えていました。

そこで思いついたのが、抽選枠は指名もできるということで、先着と抽選を同じ枠にして、運営側で先着N人を指名して当選させてしまう方法です。この方法が期待通り動作するか確認すべく、このようなイベントを作成して、Twitterで参加登録の協力をお願いしました。

connpass.com

f:id:tanaka733:20190928093407p:plain

結果としては意図通り動きました。このイベントでは先着5名が必ず当選、残り5名の枠を6番目以降に登録した人から抽選しています。5名が参加登録してくれた時点で、その先着5名を運営の機能で当選にします。登録順にIDがついているので1~5番の人を当選させました。また登録日時も分単位で確認できます。あとは放置して、connpassにより抽選を行います。

抽選により、繰り上がり順までついた状態になります。ですので、抽選日までに申し込んだ方は抽選によって決まった繰り上がり順で待つことになり、それ以降に登録した人は(抽選日前に申し込んだ人のあとで)登録順で待機列に入ります。

注意事項としては、抽選日前に必ず先着N名を当選させるように指名しないと、抽選日には先着の人も含めて抽選になってしまうということです。

参加者の決定方法は運営の人たちが決めればよいので、別にこの方法がいいよとおすすめするわけではないのですが、私としては比較的すっきりした形が実現できることがわかりました。テスト用のイベントに登録していただいた皆さんにはこの場でお礼させていただきます。ありがとうございました。