Inspiration
Sometimes I start a personal project but when I meet some difficulty I'd just give up (sigh human nature). So I want to build something that gives me some extra motivation to really finish the project.
What it does
- You can create a goal on the website.
- You can check-in regularly for your goals, finally finish your goal, or abandon your goal (if you really must!). You will earn coins in the process.
- You can show support to other peoples' goal <3
- You can claim personalized milestone NFTs. e.g. when you finish a goal. Thanks to IPFS, uploading metadata in realtime is so convenient.
- You can buy special NFT with randomized characteristics. Thanks to chainlink, getting random number on chain is so convenient.
- You can view your NFTs on the website, or on OpenSea.
How we built it
Typescript + NextJS + Solidity + My Hard Work!
Specifically,
IPFS technology:
- IPFS is used for NFT metadata and image storage.
- NFT.Storage API used for upload customized metadata based on goals.
Spheron Network:
- Used for deployment. Very convenient to use as it will just automatically deploy after a push.
Chainlink VRF:
- Random number generator is used to assign user special NFTs with randomized attack and defence ratings.
Challenges we ran into
Can't list them all! Biggest is to make sure contract is functional and safe. This project involves 3 contracts and they interact with each other, so a lot of caveats.
Accomplishments that we're proud of
I already start to use it myself for my goals.
What we learned
Deeper understanding of all the technologies that I've used.
What's next for Goal Keeper NFT
- Better error handling.
- More customizable details for goals, or even sub-goals.
- Make special NFT more attractive by adding more custom attributes. Can even create an arena so the NFTs can "fight"
- Much more customization, e.g. more milestone NFTs.
Built With
- chainlink
- ipfs
- nextjs
- nft.storage
- polygon
- react
- solidity
- typescript
Log in or sign up for Devpost to join the conversation.