An open API service indexing awesome lists of open source software.

https://github.com/kapildevpal/referral_box

๐Ÿ’Ž A flexible Ruby gem to add loyalty points, dynamic tiers, and referral rewards to any Rails app. Track signups, clicks, and geolocation with zero setup.
https://github.com/kapildevpal/referral_box

gamification loyalty-program marketing points-system rails referral-link rewards ruby-gem

Last synced: 8 months ago
JSON representation

๐Ÿ’Ž A flexible Ruby gem to add loyalty points, dynamic tiers, and referral rewards to any Rails app. Track signups, clicks, and geolocation with zero setup.

Awesome Lists containing this project

README

          

# ReferralBox ๐Ÿ“ฆ
**PLEASE VISIT THIS**
GEM BEEN Updated
https://github.com/KapilDevPal/Referral_box

![ChatGPT Image Jul 27, 2025, 05_45_46 PM](https://github.com/user-attachments/assets/5124228a-068d-4a41-a9ac-3e0c35739afc)

A flexible Ruby gem for building loyalty and referral systems in Rails apps.

* ๐ŸŽ Reward users with points based on their activity
* ๐Ÿงฑ Create dynamic tier levels (Silver, Gold, Platinum)
* ๐Ÿค Add referral rewards with unique referral codes
* ๐Ÿ”ง Fully customizable and configurable
* ๐ŸŽ›๏ธ Admin dashboard (ERB based)
* ๐Ÿ”„ Supports any user model: `User`, `Customer`, `Account`, etc.

---

## ๐Ÿ“š Documentation

- **[Quick Start Guide](QUICK_START.md)** - Get running in 5 minutes
- **[Complete Documentation](DOCUMENTATION.md)** - Full developer guide with examples
- **[API Reference](DOCUMENTATION.md#api-reference)** - All methods and options

---

## ๐Ÿš€ Installation

```ruby
# Gemfile
gem 'referral_box'
```

```bash
$ bundle install
$ rails generate referral_box:install
$ rails db:migrate
```

---

## ๐Ÿ› ๏ธ Configuration

Create your configuration block in an initializer:

```ruby
# config/initializers/referral_box.rb

ReferralBox.configure do |config|
# Define which model represents your app's user/customer
config.reference_class_name = 'User' # or 'Customer', 'Account', etc.

config.earning_rule = ->(user, event) do
# Example: earn 10 points per โ‚น100 spent
event.amount / 10
end

config.redeem_rule = ->(user, offer) do
offer.cost_in_points
end

config.tier_thresholds = {
"Silver" => 500,
"Gold" => 1000,
"Platinum" => 2500
}

config.reward_modifier = ->(user) do
case user.tier
when "Silver" then 1.0
when "Gold" then 1.2
when "Platinum" then 1.5
else 1.0
end
end

config.referral_reward = ->(referrer, referee) do
ReferralBox.earn_points(referrer, 100)
ReferralBox.earn_points(referee, 50)
end
end
```

---

## โœ… Features

### ๐ŸŽ Loyalty Program

| Feature | Description |
| -------------------- | ----------------------------- |
| Points system | Earn points via config lambda |
| Custom earning rules | Define rules per event/user |
| Redeem points | Redeem points for offers |
| Manual adjustment | Admins can modify balances |
| Points expiration | e.g. 90 days |
| Transaction logging | All activity is logged |
| Check balance | Easy method to check |

### ๐Ÿงฑ Tier System (Dynamic)

| Feature | Description |
| ----------------------- | --------------------------- |
| Dynamic definitions | e.g. Silver => 500 points |
| Auto tier assignment | Based on balance |
| Callbacks on promotion | `on_tier_changed` hook |
| Reward modifier by tier | e.g. Gold users get +20% |
| DB persistence | Can store or calculate tier |

### ๐Ÿค Referral System

| Feature | Description |
| --------------------- | ------------------------------------------------------------- |
| Unique referral codes | Auto-generated or custom |
| ?ref=code tracking | Via signup links |
| Multi-level referrals | Parent/child tree |
| Referral rewards | Custom logic supported |
| Referral analytics | Track clicks, accepted signups, geo-location, and device type |

### โš™๏ธ Core Gem Features

* Developer config block
* Extensible models
* Simple public API: `earn_points`, `redeem_points`, `balance`, `track_referral`
* Rails generators for setup
* Support for any user model (User, Account, Customer, etc.)

### ๐Ÿ–ฅ๏ธ Admin UI

* Mountable engine with ERB templates
* Routes like `/referral_box`
* Views to list users, transactions, referrals

---

## ๐Ÿ”ฎ Future Scope

### ๐Ÿ“Š Analytics & Admin

* Leaderboards by points
* Referral tree visualizer
* ActiveAdmin / custom dashboard
* Export CSV/JSON of logs

### ๐Ÿ”” Engagement

* Email / in-app notifications
* Badges based on milestones
* Activity calendar
* Social sharing for referral links

---
---

## ๐Ÿงช Usage Examples

```ruby
# Earn points
ReferralBox.earn_points(current_user, event: order)

# Redeem points
ReferralBox.redeem_points(current_user, offer: coupon)

# Check balance
ReferralBox.balance(current_user)

# Track referral
ReferralBox.track_referral(ref_code: params[:ref])
```

---

## ๐Ÿ“ฌ Contribution

PRs are welcome ๐Ÿ™Œ โ€” help improve the gem or suggest features.

## ๐Ÿ“œ License

MIT ยฉ 2025 Kapil Dev Pal(Rails To Rescue)