# aymaan-mulla/the-metaverse architecture

> Architecture diagram of the GitHub repository aymaan-mulla/the-metaverse, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-30). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/aymaan-mulla/the-metaverse
- Repository: https://github.com/aymaan-mulla/the-metaverse

## Overview

This repository combines browser-based AR/VR scenes with a Polygon-oriented NFT marketplace. Users can explore linked VR scenes, create NFT listings by uploading assets and metadata to IPFS, browse and buy listed NFTs, and manage or relist their own NFTs. The graph preserves the documented AR/VR and blockchain branches; marketplace page interactions are supported by excerpts, while scene internals and the Solidity contract implementation were not sampled.

Main entry points: [`polygon-ethereum-nextjs-marketplace-main/contracts/NFTMarketplace.sol`](https://github.com/aymaan-mulla/the-metaverse/blob/main/polygon-ethereum-nextjs-marketplace-main/contracts/NFTMarketplace.sol) (Marketplace contract), [`polygon-ethereum-nextjs-marketplace-main/pages/resell-nft.js`](https://github.com/aymaan-mulla/the-metaverse/blob/main/polygon-ethereum-nextjs-marketplace-main/pages/resell-nft.js) (Relist NFT), [`polygon-ethereum-nextjs-marketplace-main/pages/index.js`](https://github.com/aymaan-mulla/the-metaverse/blob/main/polygon-ethereum-nextjs-marketplace-main/pages/index.js) (Browse marketplace), [`polygon-ethereum-nextjs-marketplace-main/pages/create-nft.js`](https://github.com/aymaan-mulla/the-metaverse/blob/main/polygon-ethereum-nextjs-marketplace-main/pages/create-nft.js) (Create NFT listing)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_experience["AR/VR experiences"]
  node_scene["VR scene<br/>[tron.html]"]
  node_anime["Anime UI scene<br/>[index.html]"]
  node_marker["Marker AR scene<br/>[AR.html]"]
  node_otherworlds["Other world scenes"]
end

subgraph group_marketplace["Marketplace UI"]
  node_navigation["Marketplace navigation<br/>[_app.js]"]
  node_browse["Browse marketplace<br/>[index.js]"]
  node_create["Create NFT listing<br/>[create-nft.js]"]
  node_owned["Owned NFTs<br/>[my-nfts.js]"]
  node_dashboard["Creator dashboard<br/>[dashboard.js]"]
  node_resell["Relist NFT<br/>[resell-nft.js]"]
end

subgraph group_blockchain["NFT and blockchain"]
  node_contract["Marketplace contract<br/>[NFTMarketplace.sol]"]
  node_chain[("Polygon or Ethereum network")]
  node_wallet["Wallet provider"]
end

subgraph group_metadata["NFT metadata"]
  node_ipfs[("IPFS storage")]
end

node_visitor(("Visitor"))

node_visitor -->|"opens"| node_navigation
node_navigation -->|"links to"| node_scene
node_visitor -.->|"opens"| node_anime
node_visitor -.->|"opens"| node_marker
node_visitor -.->|"explores"| node_otherworlds
node_visitor -.->|"browses"| node_browse
node_visitor -.->|"creates listing"| node_create
node_visitor -.->|"views holdings"| node_owned
node_visitor -.->|"views listings"| node_dashboard
node_visitor -.->|"sets price"| node_resell
node_browse -->|"queries and buys"| node_contract
node_create -->|"uploads asset and metadata"| node_ipfs
node_create -->|"creates token"| node_contract
node_owned -->|"fetches owned NFTs"| node_contract
node_owned -->|"routes to"| node_resell
node_dashboard -->|"fetches listed items"| node_contract
node_resell -->|"reads metadata"| node_ipfs
node_resell -->|"resells token"| node_contract
node_browse -->|"fetches metadata"| node_ipfs
node_browse -->|"requests signing"| node_wallet
node_create -->|"requests signing"| node_wallet
node_resell -->|"requests signing"| node_wallet
node_contract -.->|"deployed on"| node_chain

click node_navigation "https://github.com/aymaan-mulla/the-metaverse/blob/main/polygon-ethereum-nextjs-marketplace-main/pages/_app.js"
click node_scene "https://github.com/aymaan-mulla/the-metaverse/blob/main/tron.html"
click node_anime "https://github.com/aymaan-mulla/the-metaverse/blob/main/anime%20ui/index.html"
click node_marker "https://github.com/aymaan-mulla/the-metaverse/blob/main/marker%20based/AR.html"
click node_browse "https://github.com/aymaan-mulla/the-metaverse/blob/main/polygon-ethereum-nextjs-marketplace-main/pages/index.js"
click node_create "https://github.com/aymaan-mulla/the-metaverse/blob/main/polygon-ethereum-nextjs-marketplace-main/pages/create-nft.js"
click node_owned "https://github.com/aymaan-mulla/the-metaverse/blob/main/polygon-ethereum-nextjs-marketplace-main/pages/my-nfts.js"
click node_dashboard "https://github.com/aymaan-mulla/the-metaverse/blob/main/polygon-ethereum-nextjs-marketplace-main/pages/dashboard.js"
click node_resell "https://github.com/aymaan-mulla/the-metaverse/blob/main/polygon-ethereum-nextjs-marketplace-main/pages/resell-nft.js"
click node_contract "https://github.com/aymaan-mulla/the-metaverse/blob/main/polygon-ethereum-nextjs-marketplace-main/contracts/NFTMarketplace.sol"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_scene,node_anime,node_marker,node_otherworlds toneBlue
class node_navigation,node_browse,node_create,node_owned,node_dashboard,node_resell toneAmber
class node_contract,node_chain,node_wallet toneMint
class node_ipfs toneRose
class node_visitor toneIndigo
```

## Components

### AR/VR experiences

- [VR scene](https://github.com/aymaan-mulla/the-metaverse/blob/main/tron.html): `tron.html`
- [Anime UI scene](https://github.com/aymaan-mulla/the-metaverse/blob/main/anime%20ui/index.html): `anime ui/index.html`
- [Marker AR scene](https://github.com/aymaan-mulla/the-metaverse/blob/main/marker%20based/AR.html): `marker based/AR.html`
- **Other world scenes**

### Marketplace UI

- [Marketplace navigation](https://github.com/aymaan-mulla/the-metaverse/blob/main/polygon-ethereum-nextjs-marketplace-main/pages/_app.js): `polygon-ethereum-nextjs-marketplace-main/pages/_app.js`
- [Browse marketplace](https://github.com/aymaan-mulla/the-metaverse/blob/main/polygon-ethereum-nextjs-marketplace-main/pages/index.js): `polygon-ethereum-nextjs-marketplace-main/pages/index.js`
- [Create NFT listing](https://github.com/aymaan-mulla/the-metaverse/blob/main/polygon-ethereum-nextjs-marketplace-main/pages/create-nft.js): `polygon-ethereum-nextjs-marketplace-main/pages/create-nft.js`
- [Owned NFTs](https://github.com/aymaan-mulla/the-metaverse/blob/main/polygon-ethereum-nextjs-marketplace-main/pages/my-nfts.js): `polygon-ethereum-nextjs-marketplace-main/pages/my-nfts.js`
- [Creator dashboard](https://github.com/aymaan-mulla/the-metaverse/blob/main/polygon-ethereum-nextjs-marketplace-main/pages/dashboard.js): `polygon-ethereum-nextjs-marketplace-main/pages/dashboard.js`
- [Relist NFT](https://github.com/aymaan-mulla/the-metaverse/blob/main/polygon-ethereum-nextjs-marketplace-main/pages/resell-nft.js): `polygon-ethereum-nextjs-marketplace-main/pages/resell-nft.js`

### NFT and blockchain

- [Marketplace contract](https://github.com/aymaan-mulla/the-metaverse/blob/main/polygon-ethereum-nextjs-marketplace-main/contracts/NFTMarketplace.sol): `polygon-ethereum-nextjs-marketplace-main/contracts/NFTMarketplace.sol`
- **Polygon or Ethereum network**
- **Wallet provider**

### NFT metadata

- **IPFS storage**

### Other components

- **Visitor**

## Connections

- Visitor → Marketplace navigation: opens (evidence: `polygon-ethereum-nextjs-marketplace-main/pages/_app.js`)
- Marketplace navigation → VR scene: links to (evidence: `polygon-ethereum-nextjs-marketplace-main/pages/_app.js`)
- Visitor → Anime UI scene: opens
- Visitor → Marker AR scene: opens
- Visitor → Other world scenes: explores
- Visitor → Browse marketplace: browses
- Visitor → Create NFT listing: creates listing
- Visitor → Owned NFTs: views holdings
- Visitor → Creator dashboard: views listings
- Visitor → Relist NFT: sets price
- Browse marketplace → Marketplace contract: queries and buys (evidence: `polygon-ethereum-nextjs-marketplace-main/pages/index.js`)
- Create NFT listing → IPFS storage: uploads asset and metadata (evidence: `polygon-ethereum-nextjs-marketplace-main/pages/create-nft.js`)
- Create NFT listing → Marketplace contract: creates token (evidence: `polygon-ethereum-nextjs-marketplace-main/pages/create-nft.js`)
- Owned NFTs → Marketplace contract: fetches owned NFTs (evidence: `polygon-ethereum-nextjs-marketplace-main/pages/my-nfts.js`)
- Owned NFTs → Relist NFT: routes to (evidence: `polygon-ethereum-nextjs-marketplace-main/pages/my-nfts.js`)
- Creator dashboard → Marketplace contract: fetches listed items (evidence: `polygon-ethereum-nextjs-marketplace-main/pages/dashboard.js`)
- Relist NFT → IPFS storage: reads metadata (evidence: `polygon-ethereum-nextjs-marketplace-main/pages/resell-nft.js`)
- Relist NFT → Marketplace contract: resells token (evidence: `polygon-ethereum-nextjs-marketplace-main/pages/resell-nft.js`)
- Browse marketplace → IPFS storage: fetches metadata (evidence: `polygon-ethereum-nextjs-marketplace-main/pages/index.js`)
- Browse marketplace → Wallet provider: requests signing (evidence: `polygon-ethereum-nextjs-marketplace-main/pages/index.js`)
- Create NFT listing → Wallet provider: requests signing (evidence: `polygon-ethereum-nextjs-marketplace-main/pages/create-nft.js`)
- Relist NFT → Wallet provider: requests signing (evidence: `polygon-ethereum-nextjs-marketplace-main/pages/resell-nft.js`)
- Marketplace contract → Polygon or Ethereum network: deployed on
