{"id":19369187,"url":"https://github.com/gsri30/fundchain","last_synced_at":"2026-05-16T02:35:24.354Z","repository":{"id":69934540,"uuid":"402774494","full_name":"GSri30/Fundchain","owner":"GSri30","description":"A conditional fundraising platform using Tezos blockchain |  Uplift Winners | Tezasia Runnerups | https://youtu.be/NtHjMPXZv3k","archived":false,"fork":false,"pushed_at":"2021-12-13T13:18:07.000Z","size":7941,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-06T22:53:03.955Z","etag":null,"topics":["angular","coinlayer","hack-o-uplift","infura-api","ipfs-blockchain","sawo-labs","smartpy","temple-wallet","tezos-blockchain"],"latest_commit_sha":null,"homepage":"https://fundchain.netlify.app/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/GSri30.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-09-03T13:10:56.000Z","updated_at":"2022-01-15T17:47:24.000Z","dependencies_parsed_at":"2023-03-11T07:35:38.774Z","dependency_job_id":null,"html_url":"https://github.com/GSri30/Fundchain","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GSri30%2FFundchain","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GSri30%2FFundchain/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GSri30%2FFundchain/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GSri30%2FFundchain/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/GSri30","download_url":"https://codeload.github.com/GSri30/Fundchain/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240491826,"owners_count":19809977,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["angular","coinlayer","hack-o-uplift","infura-api","ipfs-blockchain","sawo-labs","smartpy","temple-wallet","tezos-blockchain"],"created_at":"2024-11-10T08:09:59.320Z","updated_at":"2026-05-16T02:35:19.315Z","avatar_url":"https://github.com/GSri30.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003c!-- PROJECT LOGO --\u003e\n\u003ch1\u003e Fundchain : \u003csmall\u003eA conditional fund raising platform\u003csmall\u003e\u003c/h1\u003e\n\nA decentralized fundraising application using Tezos technology with its own consensus protocol. It can be used to donate and raise funds and also 'conditionally' funds. It also contains its own consensus algorithm (halfway implemented due to time constraint) which is similar to proof-of-stake, which is being designed to verify the fundraising organizations/individuals. These are elaborated in the upcoming sections.\n\n\u003cbr/\u003e\n\n\u003cp align=\"center\"\u003e\n    \u003cimg src=\"assets/fundchain-bg1.jpg\" width=\"60%\"\u003e\n  \u003cp align=\"center\"\u003e\n    \u003ca href=\"https://fundchain.netlify.app/\"\u003eView Demo\u003c/a\u003e\n    ·\n    \u003ca href=\"https://github.com/GSri30/Fundchain/issues\"\u003eReport Bug\u003c/a\u003e\n    ·\n    \u003ca href=\"https://github.com/GSri30/Fundchain/issues\"\u003eRequest Feature\u003c/a\u003e\n  \u003c/p\u003e\n\u003c/p\u003e\n\n\u003c!-- TABLE OF CONTENTS --\u003e\n\u003cdetails open=\"open\"\u003e\n  \u003csummary\u003eTable of Contents\u003c/summary\u003e\n  \u003col\u003e\n    \u003cli\u003e\u003ca href=\"#inspiration\"\u003eInspiration\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#about-the-project\"\u003eAbout the project\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#technologies-used\"\u003eTechnologies used\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#how-we-built-it\"\u003eHow we built it\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#challenges-we-ran-into\"\u003eChallenges we ran into\u003c/a\u003e\u003c/li\u003e\n    \u003c!-- \u003cli\u003e\u003ca href=\"#accomplishments-that-we're-proud-of\"\u003eAccomplishments\u003c/a\u003e\u003c/li\u003e --\u003e\n    \u003cli\u003e\u003ca href=\"#whats-next-for-fundchain\"\u003eWhat's next?\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#guide-to-setup-the-project-locally\"\u003eGuide to setup the project locally\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#guide-to-try-out-our-dapp\"\u003eGuide to try out our DApp\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#acknowledgements-and-references\"\u003eAcknowledgements and References\u003c/a\u003e\u003c/li\u003e\n  \u003c/ol\u003e\n\u003c/details\u003e\n\n\n\n## Inspiration\n\nThe major doubt almost everyone has before using a fundraising platform is how trustworthy are they? Is the funding amount reaching the needy? If so, how much of it? A lot of doubts arise when using such platforms.\n\nAlmost all the fundraising platforms that are in the market today, either collect some percent of the total funds the organizations receive or have their own premium plans for the users to use their platform. Also, almost all of these have a single point of failure workflow. Since platforms like these only require a mode of communication and fund transfer between two parties, eliminating the central power systems which act as a single point of failures i.e. there was a requirement to bring a decentralization in the whole process.\n\nThis is the major challenge Fundchain solves! We came up with the idea of a decentralized app that connects the donor to the needy directly without any involvement of a third party. In this system, since we’re relying on everyone, we effectively rely on no one.\n\n\n## About the project\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"assets/Final.jpg\"\u003e\n\u003cp align=\"center\"\u003e\n    \nFundchain is a decentralized application that directly connects the funders to the needy. The following are the key-words used in our project:\n\n### Upvote-Downvote\nEach organization has an upvote feature for other users to show support and a downvote feature to report an organization as spam. A little amount of gas fee will used for using this feature.\n      \n### Conditional Fund\nThere are two ways in which one can donate to these organizations. One way is to directly send the amount to the organization. But in this case, there is a slight risk factor as the organization may turn out to be a fake one. So to take fake organizations out of the equation the user may opt for conditional funding. In this type of funding, the number of downvotes plays a deciding role for an organization to be fake or genuine. Since marking an organization fake just by a fixed number of downvotes seems unfair, we let the donor fix this number. So the donor is asked the threshold number of downvotes at the time of donating. If the number of downvotes for the organization crosses the downvotes set by the donor, the donor may then choose to reclaim his money back. But the donor must be aware that he/she only gets 80% of the amount donated. The remaining 20% is redistributed to the field workers who spent their money to upvote or downvote the organization. \n      \n### Claim-Reclaim\nWhen a user donates using the conditional fund feature, the amount is stored in the smart contract until the deadline of the organization is reached. If in between the number of downvotes has crossed the threshold set by the donor, he/she may reclaim their amount(80%). Else after the deadline is reached the organization will claim the amount which the donor has donated.   \n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"assets/claim.png\"\u003e\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"assets/reclaim.png\"\u003e\n\n### XP mechanism\nThere are two variants of XP for a user. \n      \u003cui\u003e\n          \u003cli\u003eXP as a Funder\u003c/li\u003e\n          \u003cli\u003eXP as a Beneficiary\u003c/li\u003e\n      \u003c/ui\u003e\n#### XP as a Funder\nThis is a proportional indicator of the amount donated by the user to different organizations. To be precise, a donor gains this type of XP which is equal to 10 times the amount he/she donates through direct funding and 5 times if he/she donates with the help of conditional funding.\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"assets/xp_funder.png\"\u003e\n\n#### XP as a Beneficiary\nThis represents the reputation of the organization from the number of upvotes/downvotes and the number of goals reached through this organization. To be precise, for each upvote or downvote, the organization gains or loses 5 XP (of this type) respectively. Also, there is one more way to gain XP for an organization, that is through accomplishing the goals set by themselves. If an organization reaches its goal before the deadline, the organization gains one-tenth of the target amount.\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"assets/xp_beneficiary.png\"\u003e\n\n### Number of people upvoted or downvoted is not visible\nThis ensures that the decision taken by the validator solely depends upon only himself and his verification work.\n\n### Motivation behind using SAWO labs\n\nSince our entire workflow is dependent upon a decentralized mechanism, a traditional login method using passwords wasn’t the best way. But this would certainly make the site vulnerable to spam. Also, we were required to map user email IDs with their wallet IDs (one to many mapping). \n\nSo there was a requirement of a way where we were required to ask users for their email ID and have appropriate auth mechanism (again not traditional login as the system was designed to be a decentralized system)\n\nSo, we thought the best suit of an auth model in our workflow is to have some kind of a password-less login and at the same time need some mechanism to verify the email ID which user enters. After some research, we found SAWO labs api can be used to achieve the same! SAWO provides a way for the users to login without using a password and at the same time eliminates the spam using its own auth model.\n\n\n\nA list of all the references and resources we used to achieve (partially) our goal are listed in the acknowledgements.\n## Technologies used\n    \n\u003cp align=\"center\"\u003e\n\u003ca href=\"https://tezos.com/\"\u003e\u003cimg src=\"assets/tezos-bg.png\"   width=\"40%\" height=\"40%\"\u003e\u003c/a\u003e\n\u003cp align=\"center\" float=\"left\"\u003e\n\u003ca href=\"https://smartpy.io/\"\u003e\u003cimg src=\"assets/smartpy.png\" width=\"30%\" height=\"30%\"\u003e\u003c/a\u003e\n\u003ca href=\"https://angular.io/\"\u003e\u003cimg src=\"assets/angular-bg.png\"  width=\"30%\" height=\"30%\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\u003cp align=\"center\" float=\"left\"\u003e\n\u003ca href=\"https://ipfs.io/\"\u003e\u003cimg src=\"assets/ipfs.png\" width=\"30%\" height=\"30%\"\u003e\u003c/a\u003e\n\u003ca href=\"https://sawolabs.com/\"\u003e\u003cimg src=\"assets/sawo.jpeg\"  width=\"30%\" height=\"30%\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n    \n💲  Tezos - Evolutionary, revolutionary, and everything in-between. \u003cbr/\u003e\n📷 IPFS is a peer-to-peer hypermedia protocol designed to preserve and grow humanity's knowledge. \u003cbr/\u003e\n🔐 SAWO is the only user-authentication tool that developers would crave for. \u003cbr/\u003e\n\n## How we built it\n\nFirst we came up with a problem statement, then went in search of best blockchain technology that can be used. \nThen we followed with building a basic prototype of all the features that can be included and also specifically brainstormed for an hour to find a suitable verification algorithm. \n\nThen went with designing UI accordingly (with help of few resources mentioned in the last section). \n\n\n## Challenges we ran into\n\nThe frontend developers are only familiar with angular. So it took a while to build frontend.\n\nThis is our first time to integrate SAWO labs with a web application.\n\nWe had a very less time to finish the project.\n\nWe intially thought of making a flutter app but were not able to proceed due to lack of resources.\n\nOur entire team is quite new to blockchain technology and this is our first attempt to make a DApp using blockchain technology. So choosing an appropriate blockchain for implementing our idea was very challenging. After brainstorming for some time, we found Tezos to be a suitable blockchain as it is a best suit for public distributed ledger applications as it has a unique on-chain governance mechanism.\n\n\u003c!-- ## Accomplishments that we're proud of\n\nThe 'Conditional Funding' is a unique feature of its own kind.\n\nWe designed a complete consensus to have some kind of verification mechanism to avoid the misleading fund raisings. --\u003e\n\n\n## What's next for Fundchain\n\nDue to the time constraint of the hackathon, many things were accomplished only till half way. These include :\n\n- Unique Digital Badges : We are planning to build a feature where after reaching a certain XP, we assign a unique digital badge as an NFT (using FA2) to the funder profile, representing his contributions. Also updating his/her avatar.\n- Field Workers : Currently the system doesn't contain any distinction between a normal funder and field worker.\n- CRON jobs : Introducing CRON jobs to automate the claims and re-claims (which are currently being triggered manually by a user using 'claim' and 'reclaim' options) based on either “deadline” or “number of dislikes” for a particular fund raising post.\n\n\n## Guide to setup the project locally\n\nMake sure you switch to node@12.22.1\n\nTo install node@12.22.1\n   ```sh\n    nvm install 12.22.1\n\n    nvm use 12.22.1\n   ```\nClone the repo\n   ```sh\n   git clone https://github.com/GSri30/Fundchain\n   ```\nGo to client folder\n   ```sh\n   cd client\n   ```\nInstall NPM packages\n   ```sh\n   npm install\n   ```\nRun the local server inside the client folder\n   ```sh\n   ng serve --open\n   ```\n\n\n## Guide to try out our DApp\n\nTo actually try out our DApp, there are certain requirements to set up, which include : \n  * Install Temple wallet in your browser.\n  * Use a standard Tezos faucet to get Testnet ꜩ (required to pay gas, which is required to register an email) [NOTE that this is only a one time spend for a given email]\n    * Network : Flourence Testnet \n    * RPC :  https://florencenet.smartpy.io/\n    * Lambda View : KT1BbTmNHmJp2NnQyw5qsAExEYmYuUpR2HdX\n  * Enjoy!\n\n\n## Acknowledgements and References\n\n* [Infura](https://infura.io/) standard IPFS API for getting access to the IPFS networks.\n\n* \u003ca href=\"https://coinlayer.com/\"\u003eCoin Layer API \u003c/a\u003e to get the live exchange rates of XTZ.\n\n* [ngx-admin](https://github.com/akveo/ngx-admin) for base angular components.\n\n* \u003ca href='https://www.freepik.com/vectors/logo'\u003eLogo vector created by pch.vector - www.freepik.com\u003c/a\u003e\n\n\n* \u003ca href=\"https://github.com/othneildrew/Best-README-Template\"\u003e README template \u003c/a\u003e\n\n\n## Project Demo Pictures\n\nYou can refer the sample shots our project [here](https://github.com/GSri30/Fundchain/tree/main/images)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgsri30%2Ffundchain","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgsri30%2Ffundchain","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgsri30%2Ffundchain/lists"}