Skip to content

kellspell/ChainMart---Web3-Digital-Goods-Marketplace

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

2 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸͺ ChainMart - Web3 Digital Goods Marketplace

ChainMart Hero

A decentralized marketplace for buying and selling digital goods on the blockchain

Flutter Ethereum Solidity Hardhat

πŸ“± App Screenshots

Discover Web3 Products
πŸ” Discovery Page
Browse and filter products by categories
Create Product
βž• Create Product
Upload your digital goods to the blockchain

πŸš€ About ChainMart

ChainMart is a revolutionary Web3 digital marketplace that combines the power of blockchain technology with a user-friendly mobile experience. Built with Flutter for cross-platform compatibility and powered by Ethereum smart contracts, ChainMart enables users to:

  • πŸ›οΈ Buy & Sell Digital Goods - Trade NFTs, digital art, documents, and more
  • πŸ”— Blockchain Verification - Every transaction is recorded on the Ethereum blockchain
  • πŸ’° Crypto Payments - Secure payments with ETH on Sepolia testnet
  • πŸ“± Mobile-First Design - Native mobile experience on Android and iOS
  • 🎨 Rich Media Support - Upload images, documents, audio, and video files
  • 🏷️ Category Filtering - Organize products by Art, 3D, Crypto, Collections, and more

πŸ› οΈ Technology Stack

🎯 Frontend (Mobile App)

⛓️ Blockchain (Smart Contracts)

πŸ—„οΈ Storage & Infrastructure

πŸ§ͺ Testing & Development

πŸ“‹ Project Structure

ChainMart/
β”œβ”€β”€ πŸ“± Mobile App (Flutter)
β”‚   β”œβ”€β”€ lib/
β”‚   β”‚   β”œβ”€β”€ main.dart                    # App entry point
β”‚   β”‚   β”œβ”€β”€ models/
β”‚   β”‚   β”‚   └── products_model.dart      # Product data model
β”‚   β”‚   β”œβ”€β”€ pages/
β”‚   β”‚   β”‚   β”œβ”€β”€ splash_page.dart         # App splash screen
β”‚   β”‚   β”‚   β”œβ”€β”€ discovery_page.dart      # Product browsing
β”‚   β”‚   β”‚   β”œβ”€β”€ create_product_page.dart # Product creation
β”‚   β”‚   β”‚   β”œβ”€β”€ products_details_page.dart # Product details
β”‚   β”‚   β”‚   └── account_profile_page.dart  # User profile
β”‚   β”‚   β”œβ”€β”€ services/
β”‚   β”‚   β”‚   └── contract_factory_services.dart # Blockchain integration
β”‚   β”‚   β”œβ”€β”€ widgets/
β”‚   β”‚   β”‚   β”œβ”€β”€ custom_products_widget.dart    # Product cards
β”‚   β”‚   β”‚   β”œβ”€β”€ purchase_success_dialog.dart   # Success dialogs
β”‚   β”‚   β”‚   └── ...                            # Other UI components
β”‚   β”‚   └── utils/
β”‚   β”‚       └── constant.dart            # App constants
β”‚   β”œβ”€β”€ assets/images/                   # App images and logos
β”‚   β”œβ”€β”€ android/                         # Android-specific files
β”‚   β”œβ”€β”€ ios/                            # iOS-specific files
β”‚   └── pubspec.yaml                    # Flutter dependencies
β”‚
β”œβ”€β”€ ⛓️ Blockchain (Hardhat)
β”‚   β”œβ”€β”€ contracts/
β”‚   β”‚   └── Kellzon.sol                 # Main marketplace contract
β”‚   β”œβ”€β”€ scripts/
β”‚   β”‚   β”œβ”€β”€ deploy_contract.js          # Contract deployment
β”‚   β”‚   β”œβ”€β”€ Deploy.js                   # Deployment utilities
β”‚   β”‚   └── ...                         # Other scripts
β”‚   β”œβ”€β”€ test/
β”‚   β”‚   └── Kellzon.test.js             # Smart contract tests
β”‚   β”œβ”€β”€ hardhat.config.js               # Hardhat configuration
β”‚   β”œβ”€β”€ package.json                    # Node.js dependencies
β”‚   └── ...
β”‚
└── πŸ“„ Documentation
    β”œβ”€β”€ README.md                       # This file
    β”œβ”€β”€ coverage/                       # Test coverage reports
    └── artifacts/                      # Compiled contracts

πŸ”§ Features

πŸ›’ Marketplace Features

  • Product Listing - Create and list digital products with rich metadata
  • Category Management - Organize products by Art, 3D, Crypto, Collections
  • Search & Filter - Find products by category and availability
  • Product Details - Comprehensive product information and media
  • Transaction History - View all purchases and sales
  • Blockchain Explorer - Direct links to Etherscan transactions

πŸ’³ Web3 Integration

  • Wallet Connection - Connect with MetaMask and other Web3 wallets
  • Smart Contract Interaction - Direct blockchain communication
  • Transaction Tracking - Real-time transaction status updates
  • Gas Optimization - Efficient contract calls and state management
  • Event Listening - React to blockchain events in real-time

πŸ“ File Management

  • Multi-Format Support - Images, documents, audio, video files
  • IPFS Storage - Decentralized file storage and retrieval
  • File Preview - Visual previews for different file types
  • Batch Upload - Upload multiple files simultaneously
  • File Validation - Size and format validation

🎨 User Interface

  • Material Design - Modern, intuitive UI following Material guidelines
  • Dark/Light Themes - Customizable appearance
  • Responsive Layout - Optimized for all screen sizes
  • Smooth Animations - Fluid transitions and interactions
  • Loading States - Clear feedback during operations

πŸš€ Getting Started

Prerequisites

  • Flutter SDK 3.8.0 or higher
  • Dart SDK 2.19.0 or higher
  • Node.js v16+ with npm/yarn
  • Android Studio / VS Code with Flutter extensions
  • MetaMask or other Web3 wallet

πŸ“± Mobile App Setup

  1. Clone the repository

    git clone https://github.com/your-username/chainmart.git
    cd chainmart
  2. Install Flutter dependencies

    flutter pub get
  3. Configure environment variables

    # Create .env file with your API keys
    PINATA_API_KEY=your_pinata_api_key
    PINATA_SECRET_API_KEY=your_pinata_secret
    ALCHEMY_API_URL=your_alchemy_sepolia_url
  4. Run the app

    # For debug mode
    flutter run
    
    # For release mode
    flutter run --release

⛓️ Blockchain Setup

  1. Install Node.js dependencies

    npm install
    # or
    yarn install
  2. Configure Hardhat

    # Create .env file with your keys
    PRIVATE_KEY_METAMASK=your_private_key
    ALCHEMY_API_URL=your_alchemy_sepolia_url
    ETHERSCAN_API_KEY=your_etherscan_api_key
  3. Compile contracts

    npx hardhat compile
  4. Run tests

    npx hardhat test
  5. Deploy to Sepolia

    npx hardhat run scripts/deploy_contract.js --network sepolia

πŸ§ͺ Testing

Smart Contract Tests

# Run all tests
npx hardhat test

# Run with coverage
npx hardhat coverage

# Run gas reporter
npx hardhat test --reporter gas

Flutter Tests

# Run unit tests
flutter test

# Run integration tests
flutter test integration_test/

# Run with coverage
flutter test --coverage

πŸ“¦ Build & Deployment

πŸ“± Mobile App Build

Android:

# Debug APK
flutter build apk --debug

# Release APK  
flutter build apk --release

# App Bundle for Play Store
flutter build appbundle --release

iOS:

# iOS build
flutter build ios --release

# Create IPA for App Store
flutter build ipa --release

⛓️ Contract Deployment

Sepolia Testnet:

# Deploy contract
npx hardhat run scripts/deploy_contract.js --network sepolia

# Verify on Etherscan
npx hardhat verify --network sepolia DEPLOYED_CONTRACT_ADDRESS

πŸ” Security Features

  • Smart Contract Auditing - Comprehensive testing and security checks
  • Access Control - Owner-only functions for sensitive operations
  • Input Validation - Robust validation on all user inputs
  • Transaction Verification - Multi-layer transaction validation
  • Secure Storage - Encrypted local storage for sensitive data
  • Network Security - HTTPS/WSS for all network communications

🀝 Contributing

We welcome contributions! Please see our Contributing Guidelines for details.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ‘¨β€πŸ’» Developer

Ezequiel Silva

  • πŸ’Ό LinkedIn: Kell Silva
  • 🌟 Specializing in: Web3 Development, Mobile App Development, Blockchain Solutions
  • πŸ“§ Contact: Connect via LinkedIn for collaboration opportunities

πŸ™ Acknowledgments

  • Flutter Team for the amazing cross-platform framework
  • Ethereum Foundation for the blockchain infrastructure
  • Hardhat Team for the excellent development tools
  • OpenZeppelin for security-audited smart contracts
  • Pinata for IPFS storage solutions
  • Alchemy for reliable Ethereum node services

πŸ“ˆ Roadmap

  • Multi-chain Support - Expand to Polygon, BSC, and other chains
  • NFT Integration - Native NFT minting and trading
  • Social Features - User profiles, reviews, and ratings
  • Advanced Analytics - Market insights and sales analytics
  • Mobile Wallet - Built-in wallet functionality
  • DeFi Integration - Staking, lending, and yield farming
  • Desktop App - Flutter desktop application
  • Web Version - Progressive web app deployment

Made with ❀️ by Ezequiel Silva

Empowering the future of decentralized commerce

About

**A decentralized marketplace for buying and selling digital goods on the blockchain**

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published