npm.io
1.0.1 • Published 6 years ago

ranked-profile

Licence
MIT
Version
1.0.1
Deps
0
Size
60 kB
Vulns
0
Weekly
0

Ranked Profile

npm badge Travis CI badge

Reward users who support you through web monetization by building a personalized experience around their contributions.

Demo: https://ranked-profile-demo.netlify.app/

Overview

This project acts as a way to integrate a personalized experience for your users who support you through web monetization by tying an experience/levelling mechanic around payment dispatches. Experience is determined by the payment amount (controlled with a multiplier), with callbacks on experience update and level up functions to integrate into your own application.

Requirements

Check out the official Web Monetization Quick Start Guide to learn how to set up a wallet for receiving payments. This library assumes you have a meta tag with both the name="moneization" and content={your payment pointer} properties. Example:

<meta
  name="monetization"
  content="$wallet.example.com/alice"
>

Installation

npm install ranked-profile --save

Example

const rp = new RankedProfile()

rp.init({
    level: 1,
    xp: 0,
    levelThresholds: [10, 20, 50],
    multiplier: 1000,
    onXPUpdate: (xp) => console.log(xp),
    onLevelUp: (level) => console.log(level),
});

Options

Name Type Required Description
xp number yes The current experience for a user.
level number yes The current level for a user.
levelThresholds array yes The experience thresholds needed for each level.
multiplier number no The multiplier for controlling the payment/experience ratio.
onXPUpdate function no The callback function when experience is updated.
onLevelUp function no The callback function when level is updated.

API

Name Returns Description
init void Initialize a new RankedProfile instance.
getCurrentXP number Returns the user's current experience.
getExperienceToNextLevel number Returns the amount of experience needed to reach the next level (returns 0 at max level).
getPercentageTowardsLevel number Returns the current percentage towards the next level (returns 100 at max level).
getCurrentLevel number Returns the user's current level.
startMonetization void Starts the monetization event (called automatically with init).
stopMonetization void Stops the monetization event (called automatically with cleanup).
isActive boolean Returns whether a RankedProfile instance has been initialized.
cleanup void Cleanup function to remove event listeners and clean up callbacks.

Contributing

If you've noticed a bug or have a feature you'd like to suggest, please open a GitHub Issue. If you would like to contribute to the project, feel free to fork this repo, create a new branch & open a pull request.

Licence

MIT brewsterbhg

Keywords