Select a language
The customer of this project is a large businessman from the United States. On his account there is more than one project that is already functioning on the Internet. One of his main projects (let's call it that) is the sale of real estate for cryptocurrency. Our company was hired to develop a subsidiary project related to the sale of NFT cards.
Let's plunge a little into terminology. I think it is worth explaining what NFT cards are. The abbreviation NFT stands for non-fungible tokens. For the best understanding of what a token is, you need to know what environment they belong to and exist. In the case of NFT, this is the blockchain.
So what exactly is blockchain? If you explain in simple words and do not delve into the terminology, then the blockchain is a kind of database that is stored on a huge number of computers. Tokens, in turn, represent a register entry within this blockchain. The most important feature of a token is fungibility. However, what to do if, for example, one picture cannot be identical to another, one sound file cannot be similar to another. It is for this that the non-fungible token format was created. After all, each NFT is unique and must exist in a single copy, and all information about it, about its author, about all transactions must be stored in the blockchain. In other words, an NFT is a digital certificate attached to a unique entity.
So what can you sell in NFT format? In fact, anything. Music, images, text, video, 3D models - that is, any digital product that claims to be unique. NFT is paid special attention to collectors (who, if not them, to search for unique items), gamers (who are interested in in-game items: skins, weapons, collectible cards, etc.), as well as figures and art lovers.
So what if I created an NFT? There are many NFT platforms out there. Some of these sites are highly specialized and can be divided according to the categories of NFTs sold. For example, one marketplace might sell cards related only to video games, while another might be related to the sale of art. Our company Justice IT is working on one of such sites.
Now let's talk a little about the functional part. On this project, all interaction with the contract takes place on the side of the front part, namely: all transactions, all cards are directly taken from the blockchain and supported by the contractual component. Technologies we work with on this project:
ethersproject / contracts, ethersproject / providers (used for processing transactions from a contract in the application);
Portis, Metamask, Formatic and Coinbase (in the application we support many wallets for making transactions);
portis and web3 (to implement their connection, we use these libraries);
also web3 is used to interact with the blockchain;
react-router-dom (routing is done with it on the project);
aws (used as a cloud platform with many useful services);
crypto-js (used to encrypt and decrypt keys);
react-player (we chose to play audio and video);
react-redux (as state management);
react-crop (since in the application each artist has his own account and the ability to change the main background of his profile and his avatar, this is used to select the image capture area).
Our company has implemented most of the functionality, namely the main page, where the scrolling of cards takes place using react-carousel. We also implemented the marketplace itself, where, in addition to displaying cards, extensive filtering and search were developed. In addition to all this, as in any market with cards, the artist must have a store in which he can download, auction or sell his works of art. Also, as I said, each artist has his own profile, where his cards are visible, it is possible to change the main background of the profile, avatar, information about himself, as well as provide his social networks. In addition to all this, we have implemented a notification, where the account owner can view the history of his transactions and see who signed up for him, when and who bought his card.
It was decided to use the Kanban approach as Agile metrics in the project. This was done because the development team is large, and kanban involves real-time discussion of performance, full transparency of workflows. Work stages are visually presented on a Kanban board, which allows team members to see the status of each task at any given time. Since the entire team is based in the USA, we have daily stand-ups at 7 pm. This does not cause much discomfort for us, since all tasks are scheduled so clearly that this allows us to perform them without any misunderstandings.
How is StandUp going: we are discussing what has been done today, what will be done tomorrow and if there are any blockers. Also every day we show a demo about the work done. This approach was chosen in order not to spend a huge amount of work time on discussions in real-time mode. For me, this approach of organizing working time was something new, but it did not affect the work of the team in any way. I can confidently say that all tasks are performed with great speed.
The difficulties that I encountered on the project: well, first of all, all the work with the blockchain. Web3 was something new to me. The surest way to understand the process of working with a particular technology is to study the documentation. What actually was done by me. Now the implementation of tasks related to the blockchain is not difficult.
In conclusion, I would like to say that I am very happy to work on this project. Any project is, first of all, experience and learning new things, and working with an English-speaking team is also practice in spoken English.