gGoods is an open-source NFT standard that enables organizations and communities to create their own NFTs to raise funds. Creating an NFT is easy and straightforward using our avatar creator. The NFTs are then purchased by donors as collectibles that not only support a cause but can be integrated into countless applications such as games, emojis, chat stickers, avatars etc. Visit gGoods.io and try it out!
We want to use blockchain technology to encourage anyone to donate their time, creativity and uniqueness to support a cause. Not just money.
Life is beginning to return to normal for many industries. Unfortunately this is not the case for many NGOs, who are being hit particularly hard by the economic effects of the pandemic. As sales slowed, jobs were lost and financial challenges persist, it is proving to be difficult for communities to raise and maintain donations. 2019 broke records of charitable donations ever recorded. However 2020 was disastrous for many charitable causes and 2021 will undoubtedly continue to be tough.
One report reveals that 1 in 5 donors have stopped giving altogether and are not prepared to resume any funding activities until the economy fully recovers. This scenario will likely be familiar to organizations in operation during the 2008 financial crisis, where giving sharply declined during the recession.
The economic downturn has affected incoming revenue for many not-for-profits and there appears to be no easy solution.
That is not to say that NGOs are powerless. gGoods is an innovative low-cost solution that charities can leverage to help boost their funding, even during this difficult period.
gGoods is an open-source NFT standard that lets communities create tokens for crowdfunding. The platform connects non-profit organizations and charitable causes to their supporters worldwide. A community can create its own NFT representing a cause and supporters can acquire the NFT to use as an in-app asset. The donation will be sent to the organization directly, enabling each supporter to verify its destination. Supporters can also collect and use their NFTs as in-game items in a games library.
By minting and selling NFTs in our marketplace, gGoods can help communities and NGOs solve the immediate liquidity issues caused by economic slowdown. gGoods enable voluntary donations and payment subscriptions in exchange for an NFT. This is a unique, innovative funding strategy that NGOs can apply to help reduce the negative financial impact to their organization while engaging with their supporters.
gGoods was created by a group of Costa Rican techies at EOS Costa Rica. It was our submission to the 2021 Beyond Blockchain EOSIO Hackathon organized by block.one, Google, Galaxy Interactive and Mythical Games.
The 2021 Beyond Blockchain EOSIO Hackathon was organized by block.one, a leading technology company that launched the EOSIO blockchain protocol, to encourage teams to develop a solution that could bring positive change at scale to communities around the world. The judging committee included Google, Galaxy Interactive and Mythical Games.
We deploy EOSIO blockchain technology to create gGoods. A blockchain is a decentralized ledger that registers transactions within a network of various computers or nodes. Once a transaction is validated by the network and registered in the chain, it remains immutable and cannot be altered or hacked, improving transparency and trust.
Block.one launched the EOSIO blockchain protocol in 2018 as an open-source technology to help solve real-world problems. EOSIO offers scalability, flexibility, and a developer friendly tech that uses the C++ language to program smart contracts.
NFTs or non-fungible tokens are unique, rare, and indivisible cryptographic digital assets representing collectibles, digital artwork, tickets to an event, or in-game items. In gaming, NFTs enable users to collect assets that they can use as in-game items or trade with their peers.
This project features the following tech stack:
EOSCR Boilerplate
We built this project using our own EOSIO project boilerplate, a highly scalable skeleton including best practices. This fullstack monorepo contains our front end and backend boilerplates.
UX Design
We use Figma as an application for collaborative design projects in teams, where we create the gGoods prototype to improve the user experience.
Find out more about the following topics on gitHub discussions
We use a Kanban-style board for planning and prioritizing work. Check out our Agile Project Board.
Somethings you need before getting started:
Copy the .env.example
then update the environment variables according to your needs.
cp .env.example .env
git clone --depth=1 https://github.com/eoscostarica/Ggoods.git <YOUR_PROJECT_NAME>
.cd <YOUR_PROJECT_NAME>
.make run
in order to start the project using docker compose.At this point you can navigate to http://localhost:3000
.
Within the repo you'll find the following directories:
.
├── contracts ..................... gGoods Smart Contract
├── docs .......................... Diagrams and Images for docs
├── hasura ........................ Hasura GraphQL Engine
├── hapi .......................... HTTP API
├── kubernetes .................... Kubernetes Manifests
├── utils ......................... Makefiles for project build
├── wallet ........................ EOSIO Wallet Service
└── webapp ........................ ReactJS Web Application
We built gGood taking into consideration scalability and high availability of the services for this reason we use Kubernetes powered by GKE on Google Cloud with auto-scaling policies set to meet the most demanding audiences.
We forked the dGoogds token standard smart contracts form https://github.com/MythicalGames/dgoods
The smart contract used by gGoods is deployed on the jungle3 testnet as ggoodsggoods
.
Here you can find its source code, additionally as part of quality assurance here you will find our tests
gGoods allows for users to purchase NFTs using traditional payment and authentication methods such as Google. We believe this provides the best user experience and lowers barriers for adoption. To accomplish this we are using the native EOSIO KEOS wallet service to store user's private keys and sign transactions for them. We plan to enable client side wallets soon.
This project uses React.js as a Frontend Library which together with other tools like Apollo Client, GraphQL and Material UI brings a robust solution for building Single Page Applications out of the box.
Hasura technology maps a PostgreSQL database and provides a reliable and easy-to-use API. This allows us to focus on critical features of our projects, delegating mechanic CRUD (Create, Read, Update, Delete) operations. Hasura also enables custom REST handling capabilities with the possibility to integrate a custom REST server, that way we can extend the base CRUD functionalities and build custom business logic.
We use an internal HTTP API to handle custom business logic coming from the Hasura GraphQL server. We chose to use hapi.dev for this, which is a simple and easy-to-use Node JS backend framework.
We use IPFS to store the assets that are displayed in the Web Application. IPFS is a decentralized storage that uses blockchain technology to provide auditability and availability of the assets. IPFS can be configured to setup your own node and validate the data, but this time we are using the public IPFS access, i.e. public endpoints.
MIT © EOS Costa Rica.
Please Read EOS Costa Rica's Open Source Contributing Guidelines.
Please report any bugs big and small by opening an issue
Thanks goes to these wonderful people (emoji key):
This project follows the all-contributors specification. Contributions of any kind welcome!
EOS Costa Rica is an independently-owned, self-funded, bare-metal Genesis block producer that provides stable and secure infrastructure for EOSIO blockchains. We support open source software for our community while offering enterprise solutions and custom smart contract development for our clients.