Skip to content

Sibasis-Malla/project-NFTDocket

Repository files navigation

All Contributors License: MIT

GitHub Actions Vercel Ethereum React React Router Tailwind CSS Web3js Solidity Visual Studio Code Git GitHub


Logo

NFTDocket

The official repository for the website of NFTDocket
View Live

Table of Contents
  1. About The Project
  2. Built With
  3. Getting Started
  4. Features
  5. Block Diagram
  6. Screenshots
  7. Future Scope
  8. Contributors

About The Project

NFTDocket is a Decentralised Warranty Issue platform that can be used by sellers to dispatch their warranties to buyers via a NFT built using Polygon. Free up your cupboard spaces and store your warranties in the digital world in the form of NFTs having proper ownership proof over it. Now the warranty is not a piece of paper but a form of token. Start storing warranties by registering below.
We have used the Soulbound NFT concept to provide Warrranties that can not be a victim of theft with the added features of Expiry date and Resell that makes it convenient to be used in many more use-cases.

Built With

Following technologies and libraries are used for the development of this website

Getting Started

To setup the project locally the steps below.

Prerequisites

  • Please make sure you have metamask installed and connected to polygon's mumbai testnet and have some test matic in your wallet

  • Node.js

  # Homebrew
  brew install nodejs

  # Sudo apt
  sudo apt install nodejs

  # Packman
  pacman -S nodejs

  # Module Install
  dnf module install nodejs:<stream> # stream is the version

  # Windows (chocolaty)
  cinst nodejs.install
  # Homebrew
  brew install git

  # Sudo apt
  apt-get install git

  # Packman
  pacman -S git

  # Module Install (Fedora)
  dnf install git

Running the project.

The project uses NPM. It is strictly advised to stick with NPM so as to avoid dependency conflicts down the line.

## Checkout into the project client directory
cd client

## Install Dependencies
npm install

## Run the Project
npm start

Following are the commands to remove/add new dependencies using yarn

## Add a new Package
npm install <package-name>

## Remove an existing Package
npm uninstall <package-name>

## Save Package as a Dev Dependency
npm install <package-name> --save-dev

Features

Issue Warranty

Sellers can easily issue warranties by setting Order ID, Buyer Wallet Address and Expiry Date as Metadata for the NFT and issue it as a Pending Warranty. This feature does not need the knowledge of coding. We have also used the concept of Soulbound NFTs by making the Keccak256 Hash of the Owner ID and the Product ID and making it a part of the metadata of the NFT. The seller can also track all the pending, active and expiry warranties issued by him.

Proof Ownership

When the Warranty is sent to the dashboard of the Buyer as a Pending Warranty the Buyer will need to proof it's ownership by hashing their wallet address which is then hashed using the Keccak256 hash and matched with the hash in the Metadata and on successful verification the Warranty is minted in the chain and added to the active warranties section of the Buyer Dashboard which can be used as a Proof of Ownership and as the Warranty till the Expiry Time.

Resell Warranty

After the Warranty is added to the Active Warranties of the Buyer, the buyer can transfer ownership as well in case of Resell of the Product in which the Current Owner needs to put in the New Owners Wallet Address after which it is issued using the same hashing method as Soul and then the new owner needs to proof ownership in a similiar process as the previous owner.

Auto Expiry

In the case that the current time is greater than the Expiry time of any Product Warranty the Burn Function in the Gelato Ops executes itself which in turn burns the NFT and the Warranty is moved to the Expired Warranty section of the owner. However, the Owner can still use the platform to proof ownership of the product but can not have the benefits of the warranty anymore.

Track issued and Expired Warranty

Once a warranty is activated by a owner in their dashboard the warranty also shows the history of all it's previous owner which helps in keeping track of the ownership of the product and sale as well.

Block Diagram

Block Diagram

Screenshots

Logo

Logo

Future Scope

  • We can implement this in a Mobile Application to further increase the accessibility and use cases multifolds.
  • As, we are using Soulbound NFTs in the application this can also be used to issue certificates that are issued uniquely such as Degrees, Tickets, Citizenship and much more.
  • We can implement a Gamification in this platform in which every issued warranty NFT transfers some credits to the Seller which can later be redeemed on the same platform using different schemes. These credits can also be used as gas fees for issuing NFT Warranties by the sellers which will promote more and more businesses to implement the NFT Warranty system in their systems.
  • We can implement a marketplace to make the process truly one click.
  • We can use the history tracking functionality to keep a track of sale which can be used in products like cars that frequently change hands.
  • As the marketplace is implemented we can also add the functionality of sending the NFT on the buyer’s mobile phone as a notification.

Contributors

Thanks goes to these wonderful people (emoji key):


Sambit Sankalp

💻

Sibasis-Malla

💻

Rituraj Tripathy

💻

Bismay Pradhan

💻

This project follows the all-contributors specification. Contributions of any kind welcome!