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.
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
.
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.
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>"
...
}
}
In addition to the basic setup, you can enable email notifications, set up custo content (DUH), and run validation and wallet generation scripts.
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"
}
]
}
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": "info@dogestarter.co",
"from_name": "DOGESTARTER",
"subject": "Thank you for your DOGECOIN Pledge"
}
}
}
You can modify the notification email template HTML in ./views/notification.ejs
.
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>"
}
}
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.
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.
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