Coder Social home page Coder Social logo

dogestarter's Introduction

DOGESTARTER

DOGESTARTER is a Node.JS app for crowdfunding your project using the crypto-currency Dogecoin.

Preview and support us us on DOGESTARTER.co.

Also check out a LIVE PROJECT here from the DUELYST team.

Getting Started

After cloning DOGESTARTER from github, install all of the required libraries by running:

npm install

From here you will need to set up the database, notifications, dogecoin api, and your content by modifying the following 3 setup files: database.json, settings.js, and content.json.

Step 1: Database Setup

DOGESTARTER uses a Postgres SQL database as a back-end. We recommend using PostgressApp for local development.

After setting up a local database, edit the database.json file and provide your dev and or production DB urls:

{
	"dev": "postgres://..."
	"prod": "postgres://...",
}

The database.json file is used by the migration tool that generates the schema.

Once you've set up a database, execute the database migrations (based on the db-migrate library) by running:

db-migrate

This will create two tables: pledges and wallets.

HEROKU note: If you are using Heroku, you should not need to provide a prod database url in database.json at all. I believe the db-migrate library will automatically pick it up.

Step 2: DogeAPI setup

You will also need a DogeAPI account, which is a wallet service. Sign up for DogeAPI Once you have a DogeAPI API Key, enter it into content.json:

{
	"settings": {
		...
		"doge_api_key": "<key>"
		...
	}
}

Content and Settings

In addition to the basic setup, you can enable email notifications, set up custo content (DUH), and run validation and wallet generation scripts.

Campaign Setup

You can set your campaign parameters by modifying the the content.json file:

{
	"project": {
		"start_date": "March 14, 2014",
		"duration_days": 30,
		"campaign_goal": 100000,
	},
	"tiers": [
		{
			"name":"Supporter Shibe",
			"amount": 250,
			"backer_limit": 1000,
			"description": "Such tier. Much reward. Wow! Support now plz. So amaze.",
			"fine_print":"Estimated delivery: Dec 2014"
		},
		{
			"name":"Honored Doge",
			"amount": 500,
			"backer_limit": 500,
			"description": "Such tier. Much reward. Wow! Support now plz. So amaze.",
			"fine_print":"Estimated delivery: Dec 2014"
		}
	]
}

Email Notifications Setup

If you wan to enable email notifications, you will need a Mandrill account, which is an email delivery service from Mailchimp. Sign up for Mandrill

Once you have a Madrill API Key, enter it into content.json along with other notification setup params:

{
	"settings": {
		"notifications": {
			"mandrill_api_key":"<key>",
			"from_email": "[email protected]",
			"from_name": "DOGESTARTER",
			"subject": "Thank you for your DOGECOIN Pledge"
		}
	}
}

You can modify the notification email template HTML in ./views/notification.ejs.

DISQUS Comments

Comments are powered by DISQUS. In order to activate comments for your campaign, you will need to register for DISQUS, then edit content.json to include your DISQUS shortname here:

{
	"settings": {
		"disqus_shortname": "<your shortname>"
	}
}

Scripts and Validation

Pre-generate wallets

Because DogeAPI might not be super reliable as a "live" service, you may want to pre-generate your wallet addresses by running:

node ./scripts/generate_wallets.js

Each time you run this script, you will generate 50 wallet addresses and store them to your local database for use with pledges later. Doing so will greatly increase performance.

Validation

To validate backer pledges you can run the task:

node ./scripts/validator.js

This script will grab all of the not yet checked pledges, and using DogeAPI validate that your wallets have received the pledge amount that backer claims to have sent.

Administration

You can enable and review the list of all pledges so far on the \pledges URL. This URL has to be enabled and is secured by basic auth configured in settings.js

var settings = {

	admin_pages_enabled: false,
	http_auth: {
		username:"doge",
		password:"suchwow"
	}
}

module.exports = settings;

Copyright (c) 2013 Emil Anticevic, released under the MIT license

dogestarter's People

Contributors

eanticev avatar

Watchers

 avatar  avatar  avatar

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.