A NEARcon 2022 Project
App is live: https://near-onlyfunds.web.app/
NOTE: because of ethers references you may need a browser with somthing like metamask extension installed
Our crowdfunding platform gives backers the power of DAO governance to control the release of funds raised and hold the founding team accountable. A vote at each milestone either releases the remaining funds or returns them to the backers.
In the web2 crowdfunding model backers have no mechanism to influence the development of the project, such as when the founding team disappears or creates something very different from what was promised.
We used React, Firestore, and Solidity as our backbone. We added custom functionality on top of the ERC-20 standard that gives backers DAO-based governance control over the release of the funds raised through a voting mechanism.
Deciding the scope of the backers' control was a challenging design space because of the many options that exist between donation and investment. We would love to talk to more founders to learn whether they would prefer to have the governance tokens persist, end, or have the option to choose.
We're proud that we have an MVP on-chain and working front- and back-ends deployed to a working webapp. We are especially happy considering that we didn't know each other before Sunday, and for 5 of the 6 teammates this is our first ever hackathon!
We learned how to use Aurora to compile Solidity for NEAR, how to use Covalent to read on-chain data, and many of our team members learned how to utilize new languages from each other.
The OnlyFunds hack team was assembled for NEARcon 2022. We are from California, Colorado, Germany and Spain. Most of us did not know each other before the conference and only came together to hack at this event. With exception of one team member, none of us have participated in a hackathon before.
- A few very minor updates to various things that we weren't able to incorporate during the hackathon (e.g., anything that doesn't seem to work quite the way you expect it to)
- Options to contribute using funds from multiple sources
- Better UI/UX for project tracking and voting
- Research parameters founders want in the fundraising contract
- Move back-end to IPFS
- Make smart contracts gas-efficient and upgradable
This project was bootstrapped with Create React App. The backend references Firebase which is also what we used for hosting.
In the project directory, you can run:
Runs the app in the development mode.
Open http://localhost:3000 to view it in your browser.
The page will reload when you make changes.
You may also see any lint errors in the console.
Launches the test runner in the interactive watch mode.
See the section about running tests for more information.
Builds the app for production to the build
folder.
It correctly bundles React in production mode and optimizes the build for the best performance.
The build is minified and the filenames include the hashes.\
NOTE: upon committing the /build
folder the app will automatically be deployed to production:
https://near-onlyfunds.web.app/
Note: this is a one-way operation. Once you eject
, you can't go back!
If you aren't satisfied with the build tool and configuration choices, you can eject
at any time. This command will remove the single build dependency from your project.
Instead, it will copy all the configuration files and the transitive dependencies (webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except eject
will still work, but they will point to the copied scripts so you can tweak them. At this point you're on your own.
You don't have to ever use eject
. The curated feature set is suitable for small and middle deployments, and you shouldn't feel obligated to use this feature. However we understand that this tool wouldn't be useful if you couldn't customize it when you are ready for it.
You can learn more in the Create React App documentation.
To learn React, check out the React documentation.
This section has moved here: https://facebook.github.io/create-react-app/docs/code-splitting
This section has moved here: https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size
This section has moved here: https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app
This section has moved here: https://facebook.github.io/create-react-app/docs/advanced-configuration
This section has moved here: https://facebook.github.io/create-react-app/docs/deployment
This section has moved here: https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify
https://firebase.google.com/docs/hosting/quickstart
As part of the setup process is the option to setup GitHub Actions to deploy the project, which is how we are deploying the app. The production folder is /build
...assuming you have setup firebase and have project access
Our Firebase API Key is secret, so the firebase won't work without changing it to the correct key!
Performs a local deployment, similar to npm start
Deploys to production. Not necessary because GitHub Actions will automatically deploy the app upon commit.