All the time, people break promises to themselves and to others. Individually and collectively, people's lives could be massively improved through a better solution of accountability.
We were thinking about New Year's resolutions, habit tracking apps, blockchain, and all sorts of other stuff. We decided on a promise-based system: people can put money where their mouth is, without having to trust someone else to store it in escrow; trusted 'witnesses' then vote on whether the pledge was met.
What it does
The pledger sets a pledge using a web app, which is recorded in a smart contract in the blockchain, along with a deadline date and an address to which the money should be sent if they fail to reach their goal, as well as giving the addresses of everyone that they would like to serve as witnesses. Witnesses vote and the proportion of total witness voters that believe the pledge was met is compared to the threshold. If it meets or exceeds the threshold, the money is sent back to the pledger; if not, the money is sent to the designated recipient (e.g. a charity).
For example, someone could pledge to run a marathon by the end of the year, and have their friends verify if they were successful. The person would specify the proportion of their selected friends who would need to confirm the achievement before the money was returned to her. But this has much larger and more exciting use cases: politicians could make campaign promises and let impartial experts judge whether their achievements match their lofty election claims; they could then give to the opposition party if they did. ('Nobody hates giving money to the Democratic party more than Donald Trump!')
How we built it
We used Solidity to create our smart contracts, Truffle as a blockchain framework using the Ethereum virtual machine, Truffle-Box as a bootstrap, and React and Redux for our front-end. We also used Ganache in development.
Challenges we ran into
Lack of prior experience; a confusing error at 2 a.m.; a programming language with limited support for fixed point numbers (Solidity).
Accomplishments that we're proud of
Coding something that (sort of) works using lots of new languages and frameworks :)
What we learned
Got a grasp of how the parts of a dapp interact and how smart contracts work. We were all fairly clueless about this at the start.
What's next for Pledgr
Fixing up a few bugs and holes, then making it even more awesome by adding new features, such an option to vote numerically instead of a yes/no if the pledger desires.