Overview:

This module is supposed to bring crowdfunding for nodes to drupal. A fundraiser can request funds from an audience through this interface. The module should incorporate a couple of features described below which should make it very flexible and enable fundraisers to set up diverse types of fundraising. Fundraising can be requested for business or non-business purposes.

Crowdfunding requests should be fully customizable. For example the fundraiser can define a target goal on which a certain event will be triggered once enough funds have been raised. Also an e-mail could be triggered or content could become available through acls.

Also it could be a continuous fundraising process where no target budget is defined and the fundraising process goes on infinitely or until a predefined deadline.

There is already a module (contribute) which has a similar approach but is incomplete and still in Alpha. Also the fundraising module doesn't fully support all needed features.

Example site which uses crowdfunding: www.sellaband.com

Budget and Pricing and collaboration

Budget: Please make a suggestion
Schedule: Open

The project should be preferably conducted in an agile style, Milestones will be predefined and agreed upon before the start of the project. There will be a weekly review meeting (over Skype) to make sure the project stays on track.

I will provide a testing environment with full access for the developer if desired.

Required options and features

Fundraising options

Overall Options (overrides below defined access conditions)

Checkbox style:
- target budget for node (optional)
- due date for node (optional)

Dropdown(?)
- action upon fulfillment (mandatory) - this should integrate with the rules module.

Checkbox
- user is allowed to reclaim unused credits and get his money back
- user is allowed to revoke credits from a node (to either reassign or get a refund) as long as a fundraising is active

Textarea:
- Description of fundraising. (A free text field for the fundraiser to explain his project and the rules)

Note: if a fundraising effort fails or is cancelled, the credits go back to the contributor regardless of above options.

Currency Options:

Textfield
- define (Virtual) Currency name and symbol
- define (virtual) currency ratio to real money ($)
Textfield:
- Minimum amount of (virtual) currency credits a contributor has to purchase (mandatory)
- Maximum amount of (virtual) currency credits a contributor can purchase (optional)

Contribution options:

Textfield
- Minimum required contribution (Mandatory field)
- Maximum allowed contribution (Optional)
Checkbox + Text:
- Fixed contribution (overrides the other two options and grays them out) - Explanation: Fundraisers can define a fixed amount a contributor can contribute.

Content Access Conditions:

Define access for a contributor to nodes based on contributions (needs to integrate with the module acl (note: the access rules should not be limited on the fundraising node but on any node predefined by administrators):

If

1) contributor contributed a certain amount --> set a threshold
2) target budget has been reached --> define target budget
3) timeline has ended --> define due date

Then

A) Current user gets access (--> acl definition)
B) All users get access
C) All contributors to a node get access (--> acl definition)
D) Define custom action (eg set value for variable)

to node --> define node (fundraiser can pick from a list of nodes predefined by admin)

Those conditions should be logically connectable by AND and OR operators. User can add conditions to make sure he can add rules for multiple nodes. Alternatively this can be handled with an extension of the rules module.

Options for Contributors:

(Only applicable when users are allowed to make contributions)

Management interface:

- Users can buy virtual credits
- Users can contribute (also available on the node itself)
- Users can review their contributions
- Users can revoke contributions (only as long as the fundraising is active and only if the user is allowed to do so)

Notifications to contributors:

- when target budget of an object is about to be reached.
- when timeline ends

Fields on the actual node with fundraising:

Display:
- Overall Budget
- Contributions so far (progress bar)
- timeline

- users available credits

- link for user to buy credits

Input field:
- make contribution

For node-owner/creator:
- Admin fundraising link

Admin options:

- minimum target budget (mandatory)
- maximum target budget (optional)

- manage all fundraisings (cancel, alter, etc)

- select nodes which acl's can be altered by the fundraising process

Payment modules:

to be defined

Comments

lentreprenaute’s picture

I wanted something like this and i do it with UC.

http://drupal.org/node/875496

bojanz’s picture

Just a note, you can't write this for Drupal 6 AND have it compatible with Drupal 7.
The Drupal 7 version should integrate with Rules 2 instead of Rules, and should probably use the Field API, making the code vastly different.

coolhandlukek2’s picture

Subscribe