Skip to content

JMonde/wemo-web3

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

3 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Wemo Web3 Dashboard

A comprehensive Web3 Dashboard and Interactive Portal built with Next.js 14, featuring wallet integration, smart contract interactions, NFT gallery, and live blockchain data.

Next.js TypeScript Tailwind CSS Wagmi

πŸš€ Features

  • πŸ” Wallet Integration β€” Connect MetaMask, WalletConnect, Coinbase Wallet
  • πŸ“Š Dashboard Widgets β€” Real-time stats, earnings charts, node status
  • πŸ–ΌοΈ NFT Gallery β€” View and manage your NFT collection
  • πŸ“ˆ Live Data β€” Gas prices, token prices, transaction history
  • 🎨 Beautiful UI β€” Fynex-style design with smooth animations
  • πŸŒ™ Dark Mode β€” Full light/dark theme support
  • πŸ“± Responsive β€” Works on desktop, tablet, and mobile

🎨 Design Aesthetic

Based on the Fynex dashboard style:

  • Color Palette: Soft lavender/purple gradients (#E8E4F5, #C4B5FD, #8B5CF6)
  • Cards: White/light backgrounds with subtle shadows and rounded corners
  • Floating Elements: Crypto icons with gentle floating animations
  • Typography: Clean sans-serif with bold headings
  • Animations: Smooth transitions using Framer Motion

πŸ› οΈ Tech Stack

  • Frontend: Next.js 14, React 18, TypeScript
  • Styling: Tailwind CSS, Shadcn UI
  • Web3: Wagmi, RainbowKit, Viem, Ethers.js
  • Animations: Framer Motion, Three.js, React Three Fiber
  • Charts: Recharts
  • Testing: Jest, React Testing Library, Playwright
  • Mock Data: Custom mock database for development

πŸ“¦ Installation

# Install dependencies
npm install

# Set up environment variables
cp .env.local.example .env.local

# Seed mock data (for development)
npm run db:seed

# Start development server
npm run dev

πŸš€ Getting Started

  1. Development Mode

    npm run dev

    Open http://localhost:3000

  2. Mock Database

    By default, the app runs with MOCK_DB=true for development:

    • Mock user: "Adam McCall"
    • Wallet: 0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb
    • Pre-seeded NFTs, transactions, and portfolio stats
  3. Connect Wallet

    Click "Connect Wallet" and select a provider. In mock mode, this simulates a connection without requiring an actual wallet.

πŸ“ Project Structure

src/
β”œβ”€β”€ app/                    # Next.js App Router
β”‚   β”œβ”€β”€ api/               # API endpoints
β”‚   β”œβ”€β”€ globals.css        # Global styles
β”‚   β”œβ”€β”€ layout.tsx         # Root layout
β”‚   └── page.tsx           # Homepage
β”œβ”€β”€ components/            # React components
β”‚   β”œβ”€β”€ 3d/               # Three.js components
β”‚   β”œβ”€β”€ animations/       # Framer Motion components
β”‚   β”œβ”€β”€ dashboard/        # Dashboard widgets
β”‚   β”œβ”€β”€ ui/               # Base UI components
β”‚   └── ...
β”œβ”€β”€ lib/                   # Utilities and hooks
β”‚   β”œβ”€β”€ hooks/            # Custom React hooks
β”‚   β”œβ”€β”€ mock-db.ts        # Mock database
β”‚   β”œβ”€β”€ utils.ts          # Helper functions
β”‚   └── wagmi-config.ts   # Web3 configuration
β”œβ”€β”€ types/                 # TypeScript types
β”‚   └── index.ts          # Type definitions
└── __tests__/            # Test files
    β”œβ”€β”€ components/       # Component tests
    β”œβ”€β”€ lib/              # Utility tests
    └── ...

e2e/                       # Playwright E2E tests
└── dashboard.spec.ts

πŸ§ͺ Testing

# Run unit tests
npm test

# Run tests with coverage
npm run test:coverage

# Run E2E tests
npm run test:e2e

πŸ“Š API Endpoints

Method Path Description
GET /api/wallet/connect Initialize wallet connection
GET /api/wallet/balance Fetch wallet balance
GET /api/wallet/nfts Fetch NFTs
GET /api/wallet/transactions Fetch transaction history
POST /api/contract/read Read contract data
POST /api/contract/write Write to contract
GET /api/blockchain/gas Fetch gas prices
GET /api/blockchain/prices Fetch token prices
POST /api/auth/siwe Sign-In with Ethereum
GET /api/portfolio/stats Fetch portfolio stats

🎯 Component Library

Layout Components

  • RootLayout β€” App wrapper with providers
  • Navbar β€” Top navigation bar
  • Sidebar β€” Collapsible sidebar
  • DashboardLayout β€” Main dashboard wrapper

Dashboard Widgets

  • StatCard β€” Gradient stat cards
  • EarningStatistics β€” Line chart with earnings
  • NodeStatus β€” Node health table
  • AchievementTiers β€” Tier progress tracker
  • ReferralWidget β€” Referral code display

Web3 Components

  • WalletConnect β€” Wallet connection modal
  • WalletButton β€” Connect/disconnect button
  • NFTGallery β€” NFT grid display
  • TransactionList β€” Transaction history

3D & Animation

  • Hero3D β€” Three.js hero component
  • FloatingIcons β€” Animated crypto icons
  • AnimatedBackground β€” Gradient mesh background
  • PageTransition β€” Framer Motion transitions

βš™οΈ Configuration

Environment Variables

# App
NEXT_PUBLIC_APP_NAME="Wemo Web3 Dashboard"
NEXT_PUBLIC_APP_URL=http://localhost:3000

# Blockchain
NEXT_PUBLIC_CHAIN_ID=11155111
NEXT_PUBLIC_CHAIN_NAME="Sepolia"
NEXT_PUBLIC_RPC_URL=https://rpc.sepolia.org
NEXT_PUBLIC_EXPLORER_URL=https://sepolia.etherscan.io

# Wallet Connect
NEXT_PUBLIC_WALLET_CONNECT_PROJECT_ID=your-project-id

# Mock DB
MOCK_DB=true
NEXT_PUBLIC_MOCK_USER_NAME="Adam McCall"
NEXT_PUBLIC_MOCK_USER_WALLET="0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb"

Tailwind Theme

Custom colors configured in tailwind.config.js:

  • web3-lavender: #E8E4F5
  • web3-purple: #C4B5FD
  • web3-violet: #8B5CF6
  • web3-indigo: #6366F1

πŸ“ Development Guidelines

DO

  • βœ… Use mock data for development
  • βœ… Test with MOCK_DB=true
  • βœ… Follow TypeScript strict mode
  • βœ… Write tests for new features
  • βœ… Use Framer Motion for animations
  • βœ… Maintain responsive design

DO NOT

  • ❌ Modify production configs
  • ❌ Skip animation implementations
  • ❌ Ignore mobile responsiveness
  • ❌ Deploy without testing
  • ❌ Break existing functionality

🚧 Implementation Phases

  • Phase 1: Project scaffolding (Week 1)
  • Phase 2: Core features (Week 2)
  • Phase 3: Web3 integration (Week 3)
  • Phase 4: NFT gallery (Week 4)
  • Phase 5: 3D & animations (Week 5)
  • Phase 6: Polish & testing (Week 6)

🀝 Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Commit your changes
  4. Push to the branch
  5. Create a Pull Request

πŸ“„ License

MIT License - see LICENSE file for details

πŸ™ Acknowledgments

  • Design inspired by Fynex dashboard
  • Built with Next.js and the amazing React ecosystem
  • Icons from Heroicons and Lucide

πŸ“ž Support

For issues and questions, please open an issue on GitHub.


Version: 1.0.0
Last Updated: March 19, 2026
Status: Phase 1 & 2 Complete βœ…

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors