Implist | 駆け出し後エンジニアのための理論と実装

完全招待制サービスの「招待機能」と「会員登録機能」の仕様


ここでは完全招待制サービスの仕様について決めていきます。
完全招待制サービスとは、既にその会員である特定の人物から会員登録の招待を受けった人のみが会員登録しサービスを使用できるものです。

今回実装する機能としては、

  • サービスに参加する人を招待する機能
  • 招待された人が会員登録を行う機能

この2つに限定して、仕様を決めていきます。

登場人物

今回の実装で登場するものは以下とします。

  • 招待する人(会員)
    • 既に会員でなければならない
  • 招待される人(非会員)
    • 招待された人は会員登録を行うことが出来る
    • 会員登録後は非会員を招待することが出来る

 

各種機能と仕様

招待機能

招待する側の機能と、仕様の詳細について説明します。

機能概要

既に会員である人は、非会員に対してメールアドレスによる招待が可能。
招待する人数には限りがあり、それを超えて非会員を招待することはできない。

また、既に会員である人を招待することはできない。

※メールアドレスは個人が複数持つことが容易であるため、今回のサービスには不向きです。電話番号等を本来は使うべきですが、今回はメールアドレスで実装していきます。

仕様

招待可能人数は3名のみとする。
招待された人が1週間以内に会員登録を行わなかった場合は、招待権が復活し、再度非会員を招待することが出来る。
3名を招待し、3名全員が会員登録を行った場合は以降、非会員の招待は不可となる。

複数の既存会員から招待を受けた人が、会員登録を行った場合、最後に招待を実施した既存会員の招待権のみが1つ消費される。

例えば、
既存会員「A」と「B」がいたとして、Aさんが1月1日にCさんを招待し、Bさんも1月2日に招待した場合。
Cさんが1月3日に会員登録を完了させたとすると、Bさんの招待権が消費される。
つまりこの時点でAさんの招待権は消費されておらず、Cさんを招待していなかったことになる。

まとめると、

  • 1会員あたりの招待可能人数は3人
  • 招待されたメールアドレスの会員登録有効期間は1週間
  • 有効期限切れた場合は、再度非会員を招待可能
  • 特定の非会員に対して複数人の会員より招待があり、会員登録がなされた場合は最後に招待した人の招待権利が消費される

会員登録機能

招待された側の機能と、詳細な仕様について説明します。

機能概要

既存会員から招待メールを受け取った人は、サービスに会員登録することが出来るようになる。
また、会員登録後は、会員ではない人をサービスに招待することが出来る。

仕様

招待された人は、招待された日時から1週間の間であれば会員登録することが出来る。
会員登録完了後は3名の非会員を招待可能(招待機能の仕様)。

次回以降の実装について

実務ではこのような仕様を受けたのち、依頼者へのヒアリングや仕様の修正、提案などを行ったりします。
依頼された段階では仕様が決まっていない部分が隠れていたり、「この場合はどうするの?」といった考慮漏れがあったりと、問題が多々あるかと思います。そのため、必ず仕様の熟考と確認を行うように心がけましょう。

ここでは実践練習なので、仕様に沿って実装を進めます。

仕様に問題がある場合は、適宜次回以降の記事で仕様を決め、実装を行っていきます。