File Structure

ArtsiAI Project File Structure

artsiai/
├─ contracts/
│  ├─ ArtsiToken.sol
│  ├─ ArtsiNFT.sol
│  ├─ Marketplace.sol
│  ├─ Fractionalizer.sol
│  ├─ StakingPool.sol
│  ├─ ArtsiGovernor.sol
│  └─ Treasury.sol

├─ backend/
│  ├─ api/
│  │  ├─ generate.js
│  │  ├─ mint.js
│  │  ├─ list.js
│  │  ├─ buy.js
│  │  ├─ dao.js
│  │  └─ user.js
│  ├─ jobs/
│  │  ├─ aiWorker.js
│  │  ├─ queue.js
│  │  └─ scheduler.js
│  ├─ db/
│  │  ├─ migrations/
│  │  ├─ seeders/
│  │  └─ schema.sql
│  └─ utils/
│     ├─ auth.js
│     ├─ web3.js
│     ├─ storage.js
│     └─ logger.js

├─ frontend/
│  ├─ pages/
│  │  ├─ index.tsx
│  │  ├─ gallery.tsx
│  │  ├─ marketplace.tsx
│  │  ├─ dao.tsx
│  │  └─ profile.tsx
│  ├─ components/
│  │  ├─ Navbar.tsx
│  │  ├─ Footer.tsx
│  │  ├─ ArtCard.tsx
│  │  ├─ UploadForm.tsx
│  │  ├─ DaoVotingPanel.tsx
│  │  └─ WalletConnect.tsx
│  ├─ services/
│  │  ├─ api.ts
│  │  ├─ contracts.ts
│  │  └─ auth.ts
│  ├─ hooks/
│  │  ├─ useWallet.ts
│  │  ├─ useNFTs.ts
│  │  └─ useMarketplace.ts
│  └─ styles/
│     └─ global.css

└─ mobile/
   ├─ screens/
   │  ├─ HomeScreen.js
   │  ├─ GalleryScreen.js
   │  ├─ MarketplaceScreen.js
   │  ├─ ProfileScreen.js
   │  └─ DaoScreen.js
   ├─ components/
   │  ├─ ArtCard.js
   │  ├─ BottomNav.js
   │  ├─ WalletButton.js
   │  └─ Loader.js
   └─ services/
      ├─ api.js
      ├─ contracts.js
      └─ auth.js

🔹 Section 1 – Smart Contracts (contracts/)

  • ArtsiToken.sol → ERC-20 token contract ($ARTSI) for governance + staking.

  • ArtsiNFT.sol → ERC-721 contract for minted artworks.

  • Marketplace.sol → Decentralized NFT marketplace (buy/sell ARTSI NFTs).

  • Fractionalizer.sol → Splits NFTs into ERC-20 fractions for co-ownership.

  • StakingPool.sol → Users stake $ARTSI to earn rewards + governance rights.

  • ArtsiGovernor.sol → DAO governance contract (proposal + voting system).

  • Treasury.sol → Holds protocol funds, releases based on DAO votes.


🔹 Section 2 – Backend (backend/)

  • api/

    • generate.js → AI image generation API (calls Stable Diffusion/DALLE).

    • mint.js → Mints AI-generated art as NFT.

    • list.js → List NFT on marketplace.

    • buy.js → Purchase NFT or fractions.

    • dao.js → Proposal + voting API.

    • user.js → Manages user profiles + wallet linkage.

  • jobs/

    • aiWorker.js → Background worker that processes AI art requests.

    • queue.js → Job queue for handling high traffic.

    • scheduler.js → Cron jobs for maintenance (e.g., staking rewards distribution).

  • db/

    • migrations/ → Database schema migrations.

    • seeders/ → Populate demo/test data.

    • schema.sql → PostgreSQL schema for users, NFTs, DAO, staking.

  • utils/

    • auth.js → JWT/session handling.

    • web3.js → Blockchain connection (ethers.js).

    • storage.js → IPFS / Arweave integration.

    • logger.js → App-wide logging system.


🔹 Section 3 – Frontend (frontend/)

  • pages/ → Next.js pages for web app navigation.

  • components/ → UI building blocks (NFT card, navbar, voting panel).

  • services/ → API + blockchain integration.

  • hooks/ → React hooks for Web3 + NFT data.

  • styles/ → Global CSS/Tailwind for styling.


🔹 Section 4 – Mobile (mobile/)

  • screens/ → React Native screens (mirrors frontend functionality).

  • components/ → Reusable UI (wallet connect, art card).

  • services/ → API + blockchain calls optimized for mobile.

Last updated