MVP Development - Thriftysoft https://www.thriftysoft.tech We build Attractive, scalable, and secure mobile and web applications|| Building Web3 Products Thu, 09 Jun 2022 12:43:12 +0000 en-US hourly 1 https://wordpress.org/?v=5.8.8 https://www.thriftysoft.tech/wp-content/uploads/2022/06/cropped-logo_favicon-32x32.png MVP Development - Thriftysoft https://www.thriftysoft.tech 32 32 Understanding the Architecture behind NFT Marketplace https://www.thriftysoft.tech/understanding-the-architecture-behind-nft-marketplace/?utm_source=rss&utm_medium=rss&utm_campaign=understanding-the-architecture-behind-nft-marketplace https://www.thriftysoft.tech/understanding-the-architecture-behind-nft-marketplace/#respond Thu, 09 Jun 2022 12:38:02 +0000 https://www.thriftysoft.tech/?p=5708 This is Mayank, from Thrifty software, again with a new post about the Most hyped product these days, i,e NFT Marketplace. people are crazy about the NFT Marketplace and they want to launch their own for different use cases and themes like Real […]

The post Understanding the Architecture behind NFT Marketplace first appeared on Thriftysoft.

]]>
This is Mayank, from Thrifty software, again with a new post about the Most hyped product these days, i,e NFT Marketplace. people are crazy about the NFT Marketplace and they want to launch their own for different use cases and themes like Real estate, Art galleries, Gaming, etc.

But When it came to development, it is essential that they know about the Actual design & Architecture behind this Marketplace before they start development. Again like my previous post on developing Custodial Wallet, I won’t be teaching how to develop an NFT marketplace but will be discussing some concepts & Flow behind it.

What is a Non-Fungible Token (NFT)?

NFT stands for non-fungible token. An NFT transforms a digital file ( Image, Audio, gif, Video, PDF) into a digital asset. An NFT token is created and stored on a blockchain, serving as proof of ownership and provenance of a specific item. It works like a digital certificate of authenticity that can be easily verified by anyone anywhere in the world on a blockchain.

Question: Does NFT is only for Artworks (Images, Video, Gifts)?
Answer: Definitely! no NFT for Artworks is just one use case of NFT, but there can be several use cases, like NFT in ticketing, etc.

What is an NFT Marketplace?

NFT marketplace is a marketplace, which allows artists to showcase and list their Artwork in the form of digital tokens( NFT), and buyers/investors can purchase that Artwork. It is very similar to buying & selling products on an eCommerce marketplace like amazon. An Artist can choose various ways of selling their Artwork. They can choose to sell it for a Fixed price, or can put the Artwork in the Auction, open for bidding, where the highest bidder gets to own the NFT.

Different Types of NFT Marketplace

There are basically two types of NFT Marketplaces,

  1. Primary Marketplace: Primary NFT marketplace is the place, where a creator ( Artist) can mint an NFT token ( Create Artwork in the form of a digital token), and list them for sale.
  2. Secondary Marketplace: Secondary NFT marketplace is the place, where a collector, who has bought an NFT, can resell, or relist their NFTs.

While the “primary market” refers to the first sale of an artwork, the “secondary market” encompasses all subsequent resales of the work.

In this post, I will be focusing on building a Primary NFT Marketplace.

Understanding the Main Logic Behind the NFT Marketplace

Here are some functions & demonstrations, going through which you will get a complete Idea, of how an NFT marketplace works.

1. Authentication :
Authentication is required, to perform actions in the platform. Although browse functions( Browse NFTs, Browse User, Browse Collection) should be open ( unAuthenticated), but some features like Create Profile, Edit Profile, Like NFT, Create collection, and Delete Collection, need authentication to identify the user.

You can use normal Email / Password or Social Login based Authentication and generate a JWT token, or else if you don’t want to use this Authentication, you can also do using Web3 Wallets like Metamask, Coinbase, etc. Refer to the Article Here.

2. Profiling :
We show the user Profile in the Marketplace, associated with each NFT CardLeaderboardCollectionBidder List, and other places. So we need a maintain the Profile of the user which may include the user’s fullname, username, bio, cover image, avatar & other users’ public information. This information we can keep in our database

3. KYC ( Optional) :
This is Completely Optional. In case you need to build a controlled NFT Marketplace ( Depending on the Legal compliances of your Country), you need to know your customer ( user), for that purpose you need a KYC Module. KYC you can implement in two ways :

  1. Manual KYC: Either you create your Customer KYC Module, where you collect data from users and verify it from the Admin panel
  2. 3rd Party API: Or you can use any 3rd Party API like https://onfido.com/ which will do the collection & verification for you.

You can also restrict users from buying/selling in the Platform until the KYC is completed.

4. Create Asset ( Minting) :

NFT Marketplace Asset Minting Diagram
NFT Minting Diagram

Creating a Digital Asset / NFT Artwork on a Marketplace means minting your digital token. Where a user has to upload the Information about the NFT ( Artwork) and mint a new token.

Now, these Include three steps, that are :

  1. Connecting your DApp with a Web3 Wallet: Minting an NFT on a blockchain, requires you to first connect your Dapp with a web3 wallet like Metamask.
  2. Uploading Metadata to IPFS: You need to upload your NFT’s Metadata to IPFS ( InterPlanetary File System), metadata includes the NFT’s Assets ( Image, video, GIf), title, description, and Properties. Since we are building a nonfungible token, we need to make sure this metadata stays forever and is decentralized. Thus storing it in IPFS is the best option. If you upload these files in a centralized database, it is risky for the security of your file. After you upload your NFT’s Metadata to IPFS, you will get a metadata ID ( IPFS key)
  3. Mint your NFT
    Take the metadata ID from the IPFS, use it as tokenURI, and sign the transaction, to mint an NFT.

5. List the NFT on Sale :

NFT Marketplace   - Fixed Price and Auction Sale Diagram
Listing NFT for Fixed Price Sale / Auction

Once the user has Minted an NFT or purchased (owned) one, they can put the NFT for Sale,

Sale Can be of different Types:

  1. Fixed Price sale: Here user will list the NFT for a fixed price, so that other users can directly purchase the NFT, by paying the amount given in the NFT detail.
  2. Auction: Here user will list the NFT for Auction, where the user will specify the minimum Bid Amount and duration of the auction. So users can bid on the NFT. After the Auction is expire, no one will be able to place a bid. Now the Owner can decide to accept/reject the highest bid. In case the user has opted to Accept, The amount will go to the user, and the owner of the NFT will be transferred to the highest bidder.
  3. Hybrid ( Auction & Fixed Price): User can also List their NFTs, in the hybrid model, i.e List them both for Fixed price & Auction. So here the user has to Specify the minimum Bid Amount, duration of the auction, and buy now price. Now user can place bid on the auction, but if user buy the NFT with Buy now price, the NFT will be immediately sold to the buyer and the auction will be closed.

6. Bidding & Buying :

Users can visit the NFT detail page and can Buy or Bid on an NFT, depending on the form of Sale. ( Buy = Fixed Price or Hybrid, Bid = Auction). The Flow is Almost the same, like :

User Select an NFT → Connect Metamask → Call Buytoken or BidToken function → Sign TX & Send to Blockchain → Event will be triggered which will change the owner in the DB

Any user ( owner) of the NFT, can decide to remove it from Sale ( Fixed Price / Auction). Once it is removed from Sale, no one can purchase it / place a bid

7. Collection & Add NFT to Collection
Collections are used to group the NFTs of similar traits, to make it easy for users to browse. An NFT marketplace should have a feature where users can create/update a collection and assign their NFTs ( they owned) to a collection. Collection can exist on the Database, in order to make it easy for the user to browse/search.

8. Other Views :
Although you have to keep the NFTs metadata in the IPFS, but its good to keep a copy in your Database as well, to improve the query & search functionality in the NFT marketplace. Users will find it convenient to browse the NFT Artwork by searching their title, by category, filter by collection, etc. These could be different views to list the NFTs,

  1. Trending NFTs
  2. Browse by Category
  3. Browse by Collection
  4. Browse User Profile
  5. Browse User Created / Owned NFT

Conclusion :

After going through the post, you must have got an idea about the Architecture behind an NFT Marketplace, and you must be excited to build your own NFT Marketplace.

You should Refer to Some tutorials & content, that must be useful for you :

  1. https://www.youtube.com/watch?v=GKJBEEXUha0
  2. https://dev.to/edge-and-node/building-scalable-full-stack-apps-on-ethereum-with-polygon-2cfb
  3. https://github.com/dabit3/polygon-ethereum-nextjs-marketplace/

In case you are looking for an NFT Marketplace, visit https://thriftysoft.tech/ or feel free to get in touch with us at admin@thriftysoft.tech or contact us on Skype. If you just need the UI, shown in the post, buy it here https://codecanyon.net/item/minto-reactjs-nft-marketplace-ui-kit/35888391

We will be happy to help you 😊

The post Understanding the Architecture behind NFT Marketplace first appeared on Thriftysoft.

]]>
https://www.thriftysoft.tech/understanding-the-architecture-behind-nft-marketplace/feed/ 0
How you can build a Scalable & Affordable MVP for your startup? https://www.thriftysoft.tech/how-to-build-a-scalable-affordable-mvp-for-your-startup/?utm_source=rss&utm_medium=rss&utm_campaign=how-to-build-a-scalable-affordable-mvp-for-your-startup Sun, 24 Apr 2022 06:24:08 +0000 https://www.thriftysoft.tech/?p=5657 Hello! I’m Mayank, and I’m the founder of Thrifty Software Private Limited. we are a Prototype Factory where we assist early-stage startups in developing scalable, cheap, and trustworthy MVP ( like Mobile applications, Web applications, PWAs, etc) The most challenging barrier for early-stage startups, particularly with […]

The post How you can build a Scalable & Affordable MVP for your startup? first appeared on Thriftysoft.

]]>
Hello! I’m Mayank, and I’m the founder of Thrifty Software Private Limited. we are a Prototype Factory where we assist early-stage startups in developing scalable, cheap, and trustworthy MVP ( like Mobile applications, Web applications, PWAs, etc)

The most challenging barrier for early-stage startups, particularly with non-technical founders, is the difficulty in developing the MVP out of their idea at an affordable price. With the help of this post, I will attempt to show how someone can create an affordable & scalable MVP. The solution is straightforward! Low-cost labor. If you want to reduce the cost of the product or service without changing the amount or quality of the material, you must reduce the labor expenses. It is the development Charge in software development.

But you could be worried that involving students in the development process would jeopardize the product’s quality and standard because they lack professional expertise. And in most cases, they actually wind up doing something strange, against the requirements, and it takes a long time. Even so, it is not scalable. However here I will try to show how you can increase the project’s success rate to 90 % even after involving Student Developers ( Intern) in the core development team. And that’s only possible, with the Help of some Software Engineering Framework!. Don’t be afraid, I bought the simplest way for you.

Disclaimer: The purpose of this post is to demonstrate how a startup can obtain the MVP at a low cost by utilizing interns. However, the purpose of this post is not to encourage you to exploit them. We should respect the minimum salary (stipend) that should be paid to them in order to cover their living expenses and other necessities.

1. Always have brief documentation of your requirements on hand. ( Writeup)

Write for MVP
Photo by Kaleidico on Unsplash

You don’t have to explain a story about the product to him (Intern)over the phone every day, which might lead to a number of misunderstandings. Instead, create a Requirement Documentation.

Requirements document − A document or write up containing detailed requirements for the system being developed. These requirements define the functional features and capabilities that a system must possess.

The document should be concisewithout jargonmodular, and provide information about each minor feature. Divide the Requirement in such a structure:

MVP Writeup Structure
Requirement Document Structure

You may use this as a template: Here

2. Create a wireframe ( Mockup ) for MVP

MVP Wireframe
Photo by Kelly Sikkema on Unsplash

Only you, as the author of the Idea, may imagine how your application should appear and function. Prepare a wireframe that will help any developer(Interns) to visualize what you are thinking. You can prepare wireframes using either pen-paper or an online application such as Figma(free) or Adobe XD(free) before hiring an intern. If you are not comfortable with these tools, you have other simpler options as well like Marvel(1 project free) or Draw.io(free)

Even a scribbled-on-paper diagram will suffice! read more about wireframing here

3. Setup Trello Board ( Not JIRA) for MVP

Trello Board
Trello Board

Trello and JIRA are from the same company, but I choose Trello Board for small startups and early users. It is basic and straightforward.

Mention all of your Requirements in the Trello board, based on the modules. Checklist may be used to separate the tasks in a module. This will allow you to monitor the project’s progress.

You can Clone a template from Here

4. Make a Git repository and set up Push on Mail.

Create a Gitlab repository, push a copyright notice inside it(This will keep your work Safe), and add your developer as a member in the repository, and request that the developer check-ins on a daily basis with the appropriate commit message. You may configure a push on mail service so that you will receive email notifications, whenever someone commits on the branch. Here is the process to configure

Copyright Notice, you can copy from here

copyright notice
copyright notice

Bonus : Always try to hire two Interns, and they both should review each other’s work. This is called Peer Review and it will definetly improve the quality of the project

5. Database Design & API Specifications

MVP database design
Database Design

This is something you may lack since you are not technically savvy. However, this is really important for the project’s quality. Ask your intern to create these documents before they begin development because it will be impossible for them to focus on this after they begin work.

These documents include but are not limited to,

  1. Database Diagram (ER Diagram): This applies to SQL databases. They can use any tool they choose. Personally, I like dbdocs.
    If they are working on NoSQL databases like firebase and MongoDB, ask them to populate the database manually, to visualize the complete system, before developing.
  2. API Definition: This is for API specifications. This is only required for projects involving API creation. They can utilize postman to create specifications before developing, other options are Swagger and google sheet.
    for postman, refer to this sample, and for swagger, the equivalent sample is given here. And for the Easiest one, Google sheet, clone this document.

6. Transparency

Your intern should communicate their progress on a daily basis. They may share the demo of the project, on a nearly daily basis. You should test and provide comments. Try to put your comments on the same Trello board, discussed in point (3), for the sake of maintaining records.

7. Daily Standup or Daily Status Call

I know you’re too preoccupied with your idea and team. However, attempt to obtain at least 15 minutes to have a status call with the intern to hunt down the done, pending, and roadblocks along the route. Discuss what they have done, what is pending and why, and whether or not there is a roadblock.

Interns will be similarly motivated as a result of this.

Clone this sample document: Standup Sheet Format

Conclusion

Previously! I was not a whiz at technology! So, over time, I was able to master these things on my own and build a development process with such kind of resources. I hope that if you take the same method as described above, you will be able to quickly obtain an affordable and scalable MVP.

Ways in which we can help you?

MVP Development
If you want to create a low-cost, scalable MVP, we can help you. We have a team of highly competent and qualified student partners, and we have successfully helped numerous startups that have acquired seed funding, based on their MVP.

Technical Documentation
If you do not want to work with us and instead operate your own in-house team or employ a freelancer, a collection of technical documents will undoubtedly assist you in describing your requirements. We offer a comprehensive set of documents, including a requirement document, wireframe, API specifications, and database design, for a very low cost.

feel free to get in touch with us at admin@thriftysoft.tech or contact us on Skype

The post How you can build a Scalable & Affordable MVP for your startup? first appeared on Thriftysoft.

]]>