Motoko Bootcamp — a recap
March 05, 2022 to March 12, 2022 — A short recap of my experience.
The Motoko Bootcamp was a one-week-long virtual conference from March 05, 2022 to March 12, 2022 where experienced Internet Computer (IC) developers helped and trained groups of newbies who want to learn how to develop dapps on the Internet Computer. In this story I was one of these newbies — remember you are never too old to learn something new. Also if you are in the age group of a geriatric developer.
What was my goal in this game?
I was attending this Bootcamp because I was curious about the IC and wanted to learn more about how I can develop decentralised Applications (dApps) for the IC. I was not driven by the price they offered, I was driven by the knowledge I could gain. And, I was interested in the special Bootcamp format. We had daily coding sessions with a deadline the next day, live presentations to different topics, some team meetings with your learning bodies and at least some mentor sessions to ask questions. Around these activities we worked on a personal final project which had to be submitted until the end of the Bootcamp.
Requirements for Graduation
To achieve the graduation displayed above we had to fulfill some requirements. For the sake of perfection I have to mention that there were two tracks — one for beginners and another one for intermediate students. I belonged to the intermediate track. No, I am not an experienced Motoko developer, but I am an experienced developer in general and that was the benchmark. I was new to Motoko like most of my classmates. To pass the final project we had to fulfill the following criteria:
- The core project was the creation of a live basic non-fungible token (NFT) minter. A NFT is basically a non-interchangeable unit of data stored on a blockchain, a form of digital ledger, that can be sold and traded. Types of NFT data units may be associated with digital files such as photos, videos, and audio.
- In its most simple version, the project should have been composed of one webpage where the user can login, click on a button and then mint an NFT that will belong to the user.
- This could be achieved with a single page application composed of a login button using a wallet (STOIC or PLUG). I used the PLUG — wallet. Plug is a browser & mobile crypto wallet and identity/authentication provider for the Internet Computer, compatible with ICP, and soon with cycles and any Internet Computer token. The handle ICP stands for a utility token that allows users to participate in and govern the Internet Computer blockchain network. For frontend development I used an Angular application. How you can use Angular with an IC frontend canister you can check out in my article “Angular meets the Internet Computer” on Medium.
Angular meets Internet Computer
A beginners guide on how you can get started with Angular and the IC (Internet Computer).
- The backend canister we had to use was the DIP 721 token standard for storing the NFTs. DIP 721 is an ERC-721 style non-fungible token standard built mirroring its Ethereum counterpart and adapting it to the Internet Computer, maintaining the same interface.
- Regarding the mint functionality we had to use a button that can mint one or more NFTs for the user which consists of an image link. We used that for simplicity and this leads to more space for improvement. Out of the scope was storing the images directly on the IC blockchain.
- A way to display the NFT sent to the user was either by displaying it within the webpage and/or redirecting the user to the raw NFT image.
- Integration of some form of token transactions into the application. In my case I have developed my own simple system. The idea behind can be summarised as follows: If you mint some NFTs you will receive some fictitious token rewards from the contract. If you have received some token and your token balance is positive then you are able to buy other NFTs for a fixed amount of tokens.
- A final criteria was a proper frontend that displays all of the NFTs from your collection held by the wallet of a logged in user, as well as a way to view some other NFTs minted in your collection not owned by the user.
Below you can see a screenshot of that application.
The architecture of the application can be found on Github, see the link below for more information. A live demo can be found under the following link https://32d3k-kaaaa-aaaao-aabaq-cai.ic0.app.
GitHub - samlinux/MotokoBootCampFinalProject: Final project for the Motoko Bootcamp 03/2022
The project let you mint your own NFTs and buy someone else minted NFTs. If you are willing to mint a NFT you will…
At the end of the Bootcamp week I was happy to have finished everything in time. At least from my site I can say I have learned a lot in a very short time. The format of this event can be improved of course. However, a very loud shoutout to all the great people out there which made this event happen.
Thank you very much for being part of this first Motoko Bookcamp. I hope more of this will follow.