I am a skeptic when it comes to investing money and lack of a transparent system doesn't help it. If I am making an investment, I would like to know how my investment is being utilized and if it is helping my motivation. Hence we decided to build a system that helps people like me know where their money is being spent, and also helps build the trust required.
One of the major areas where this is a concern is raising relief funds and money for a social cause. NGOs face this issue because they have no transparent medium to show how the contributor's funds are being utilized, hence making it difficult to raise money for a social cause.
How I built it
We used the Ethereum blockchain as an already established trusted blockchain to store the transactional history of an imaginary NGO. We used smart contracts to store the investor data permanently and transparently on an Ethereum test network. The smart contract automatically calculates the contributions per investor given a spending amount.
Additionally, we used a Node.JS server to interact the the smart contract with the use of the Web3 library. The server listens for transactions between bank accounts (in this case, mock database transactions), which then updates the smart contract for storage on the blockchain. The smart contract also calculates the split each investor contributes, and emits an event for each contribution. The server listens to this smart contract event and sends a push notification to the investor about their contribution. If the smart contract were to be implemented on the main Ethereum network, the push notification would also contain the link to the transaction on the Ethereum blockchain explorer.
Challenges I ran into
Setting up the blockchain test network and the smart contract deployment was challenging at first, due to unexplained errors, but after some reinstalling and updating everything started working in the end.
Accomplishments that I'm proud of
Writing the smart contract and deploying it to the test network and having it work felt like a huge achievement
What I learned
Writing complex smart contracts for Ethereum in solidity, and using the web3 js library to interact with an Ethereum network
What's next for Clarity
After there is enough data, clarity can also help the organization optimize its spending patterns. At the same time, it has access to social media data for every contributor. This helps clarity know the investment patterns and the personality and demographics of people who are more likely to invest and the kind of cause they support. This, in turn, will help their marketing team optimize their costs and reach to a more targeted audience.