Project Overview

This program was created and developed for my Capstone project. I was in a group with other students in the same field of study: Alex Henson, Intae Kim, Daniel Drury and Kyle Hedden. While thinking up of an app or a program to develop, we came up with the idea to make a fundraising site with the least amount of processing fees. This led to us finding a way to impliment blockchain, specifically bitcoin, to reduce our processing fees to only 1%. In short, sites like GoFundMe, Indiegogo and KickStarter all keep 5% of donations on top of the other processing and transaction fees that may incur. This also allows us to have the most secure finantial transactions because any donations and transactions are safely stored and maintained through blockchain. I was personally tasked with handling certain methods, revising methods, setting up, designing and hosting the database as well as unit testing our methods. The startups recieving funds will be limited to only reputable or verified companies, startups and projects. We envisioned a system that allows users to donate in three different ways: Milestone, Trickle and Standard.

Features and Uses

We have full functionality for bitcoin transactions between backers and startups. Trickle donations are donations that are given over a certain time. The donator can set the total donation and choose a percent per day, week or month. Milestone donations are donations that are given per milestone. Milestones are set by companies and are goals that they plan to acheive over time. As these milestones are achieved and verified, any set milestone donations commited by donators will be sent. Standard donations are just one time flat payment donations that donors give to the startup they choose.

Tools and Methods Used

We created the backend using ASP.NET and Entity Framework in C# and used Bitbucket for version control. We developed methods and objects to handle backers (donators) and startups (companies receiving payment). I created the method that converts any currency to bitcoin using free.currencyconverterapi.com and we set up transations using the N-Bitcoin library in C# and the Q Bit Ninja web API. I setup the database, to hold all user and transation information, on Amazon Web Services and initialized our tables with MySQL. Testing of our methods was done by me using NUnit.