c2siorg / NFT-Toolbox

A non-fungible token (NFT) is a non-interchangeable unit of data stored on a blockchain, a form of digital ledger, that can be sold and traded. Each NFT has its own unique identity. Design NFT’s along with building a web3 dapp, that can mint NFTs.
Apache License 2.0
2 stars 6 forks source link

Restructure and Refactor the file structure and code #1

Open mbcse opened 8 months ago

mbcse commented 8 months ago

Description

As our project advances towards the integration of additional chains and functionalities, it becomes imperative to enhance the organization of our codebase for improved maintainability and clarity. The proposed solution involves a thorough refactor of the current folder structure, specifically segregating functionalities into distinct folders.

Objective

To establish a more organized and scalable folder structure that accommodates the growing complexity of integrating various chains and functions seamlessly.

Proposed Changes

Introduce a refined folder structure that categorizes functionalities based on their respective chains. Specifically, create separate folders for each chain, where the related contracts and associated functions will reside.

Example


project-root/
|-- chain1/
|   |-- contracts/
|   |-- functions/
|-- chain2/
|   |-- contracts/
|   |-- functions/
|-- shared/
|   |-- common/
|   |-- utilities/
|-- other_folders_and_files...
Aryann15 commented 8 months ago

According to the proposed changes, I'll resturcture the project like this. Please review it once @mbcse, then i'll raise a PR. Thank you!

project-root/ |-- chain1/ (e.g., Ethereum) | |-- contracts/ | | |-- Contract.ts | | |-- deploy.ts | | |-- draft.ts | | |-- interact.ts | |-- functions/ | | |-- mint.ts |-- chain2/ (e.g., Polygon) | |-- contracts/ | |-- functions/ |-- shared/ | |-- common/ | | |-- Infura.ts | |-- utilities/ | |-- ProgressBar.ts |-- documentation/ | |-- docs/ | | |-- Contracts/ | | | |-- category.json | | | |-- deploy.md | | | |-- draft.md | | | |-- initializeContract.md | | | |-- interact.md | | |-- Upload/ | | | |-- category.json | | | |-- initializeFileStorage.md | | | |-- uploadCollection.md | | | |-- uploadSingle.md | | |-- generate.md | | |-- intro.md | |-- src/ | | |-- components/ | | |-- css/ | | |-- pages/ | | |-- static/ | |-- .gitignore | |-- README.md | |-- babel.config.js | |-- docusaurus.config.js | |-- package-lock.json | |-- package.json | |-- sidebars.js | |-- tsconfig.json |-- examples/ | |-- layers/ | | |-- background/ | | |-- first character/ | | |-- fourth character/ | | |-- second character/ | | |-- third character/ | |-- abi.json | |-- account.json | |-- connection.json |-- tests/ | |-- Arweave.spec.ts | |-- Collection.spec.ts | |-- Contract.spec.ts | |-- Infura.spec.ts | |-- NFTstorage.spec.ts | |-- Pinata.spec.ts | |-- Storj.spec.ts | |-- test.png | |-- test_specs.json |-- .eslintignore |-- .eslintrc.json |-- .gitignore |-- LICENSE |-- README.md |-- package-lock.json |-- package.json |-- tsconfig.json |-- workflows.png

SuyashShukla0007 commented 2 days ago

hi @mbcse can i work on it