Giter Site home page Giter Site logo

bevry-archive / sponsored Goto Github PK

View Code? Open in Web Editor NEW
11.0 4.0 2.0 116 KB

Deprecated. Use https://github.com/bevry/github-api

License: Other

JavaScript 100.00%
crowdfunding under-construction patreon gratipay open-collective nodejs archived app sponsors

sponsored's Issues

setup credit and deduction system

as the only reliable data we can ascertain from services/sources is historical data - that relate to cumulative donation amounts - i.e. credit - rather than current month/tier details, instead we need to implement a system that does rewards by deductions from determined credit instead

The question then becomes how should deductions work?

There are cycle timing options:

  • daily: start of next day to end of next day, according to some time zone
  • monthly: start of next day, to the same date on the following month, according to some time zone
  • monthly: start of next month, to the end of next month, according to GMT - this is what patreon does, but means if you donate on 2nd of March, you gotta wait until 1st of April for your sponsorship to go through (perhaps we can have an override button to force this month to be the sponsored month)

There are extra donation considerations:

  • if a user has donated extra money than what their current selected tier is, then should that money go to the next month,
  • or should that credit be consumed in levelling up their current month level up (perhaps could be a override button)

There are specification options:

  • deductions occur by automatically consuming the highest tier that the credit can occur - this could consume credits quicker than expected, as a higher tier could be consumed over one month, when the plan could have been to spread out a lower tier over multiple months
  • deductions occur by whichever tier the user has specified

There are notification options:

  • when the user runs out of credit for the next cycle, they are notified to adjust their funding service
  • if sources (stripe, paypal, coinbase) are configured, they could be billed automatically until they cancel
  • if sources are configured, they could get an email to manually top up their credit
  • when a users contribution on a funding service has determined to be ended, we send a thank you email to them for the time they did spend, and an email summary of all that they funded, and the exposure they got

Another option for the extra donation, and timing things can be:

  • where if someone donates on the 14th of March, but doesn't want to wait until the 1st of April for their sponsorship to show, they could:
    • pro-rata it, so the deduction is only for 50% of the month - this makes historical listings complicated, as they effectively could get higher tiers at super discounted prices inside historical rendering
    • override it, so the deduction occurs like normal at 100% of the tier for the month, and they just sacrifice the passed days
    • or where such situations are not allowed, and they have to wait until the next month
    • the day cycle, and the date to date cycle, avoids this issue, as they just have to wait a day at most for the sponsorship to kick in - but it complicates historical listings as I'm not sure how you would render those things

One potential for rendering month to month historical listings (donated amounts will not be listed, just there for info)

# Backers

## 2017

### 03 March

- Bob Bill with url and description (donated $XX amount over 3 months, from 2017-01 to 2017-03)

### 02 February

- Jim Jones with url and description and logo (donated $XXX amount over 2 months, from 2017-01 to 2017-02)
- Bob Bill with url and description (donated $XX amount over 3 months, from 2017-01 to 2017-03)

### 01 January

- Jim Jones with url and description and logo (donated $XXX amount over 2 months, from 2017-01 to 2017-02)
- Bob Bill with url and description (donated $XX amount over 3 months, from 2017-01 to 2017-03)
- Richard Richie with url (donated $X amount over 1 month, on 2017-01)

One potential for rendering historical listings for all of the options, including date to date and day to day, would be the exact same method for rendering the current months listing, but where we pull everyone in:

# Backers

- Jim Jones with url and description and logo (donated $XXX amount over 2 months, from 2017-01 to 2017-02)
- Bob Bill with url and description and logo (donated $XXX amount over 3 months, from 2017-01 to 2017-03)
- Richard Richie with url (donated $X amount over 1 month, on 2017-01)

Notice how bob bill gets promoted, as his three $50/50/$50 listings put in the $150 tier - this is the only way that I think this listing style can properly reward people who have donated over a long period of time.

fetch paypal patrons

Got this, but it doesn't seem to give us the details we need:

/* eslint camelcase:0 */
'use strict'

const {inspect} = require('./util.js')
const paypal = require('paypal-rest-sdk')

paypal.configure({
	mode: 'live',
	client_id: 'BLAH',
	client_secret: 'BLAH'
})

paypal.invoice.list(function (error, payment) {
	console.log(inspect(payment))
})

about this project / discuss this project

Just pushed this project up (first public commit, still under construction, not yet for public consumption) - which is the result from a lot of meetings, discussions, and month of experimentation - finally at a point where the solid foundations are being made - and about to create something quite cool.

I've updated the README with the details on the plan: https://github.com/bevry/sponsored

We can use this thread to discuss the project.

You can also join our Slack

Or schedule a meeting with me directly.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.