Skip to content
This repository has been archived by the owner on Aug 30, 2022. It is now read-only.

saasbook/redeemify

 
 

Repository files navigation

Code Climate Test Coverage

Redeemify: let users redeem "bundles" of offers

How it works:

  1. A user receives a "redemption code" (AKA "Redeemify Code" like a gift card code), perhaps because they paid for it, or perhaps as a result of buying something.

  2. User creates an account on Redeemify by presenting that redemption code and then "linking" it to whatever SSO they login with (Google, GitHub, Facebook, etc.) (Without a redemption code, a user can't create an account.)

  3. That redemption code "unlocks" a list of additional redemption codes from different vendors, to be redeemed at their respective sites.

Terminology and model names

For this discussion, we'll use the following specific use case:

  1. User buys a copy of "Engineering Software as a Service" on Amazon

  2. User receives a redemption code via separate email from Amazon after purchase

  3. User signs up on Redeemify with that code and their Facebook credentials.

  4. Once in their account, user sees promo codes for GitHub (1 month of free Micro), CodeClimate (1 seat for 1 month), and TravisCI (Premium account for 1 month).

  5. The user logs in or signs up on GitHub, CodeClimate, and Travis, and redeems the respective codes.

In this scenario:

  • A User is someone who has an account on Redeemify. An AdminUser (different model) is a user who can administer the site.

  • Amazon.com is the Provider: the entity that provides a redemption code that will allow the user to sign up here. A Provider provides a list of valid redemption codes. The idea is one code is handed out with each purchase, and that code enables a User to login to Redeemify with their choice of 3rd party auth. Once a particular code has been associated with an identity on Redeemify, it can't be associated with another identity, i.e. a RedeemifyCode can only be redeemed once.

  • GitHub, CodeClimate, etc. are each a Vendor: an entity that provides some promotion that is part of a redemption bundle. The promotion is represented by a VendorCode. For example, a GitHub VendorCode might be a string that can be redeemed as a promo code on GitHub for a month of free Micro account.

Services

Service Status
Deploys
ProductionServer redeemify-prod.herokuapp.com

Packages

No packages published

Languages

  • Ruby 80.3%
  • HTML 9.0%
  • CSS 5.1%
  • Gherkin 5.1%
  • Other 0.5%