Skip to content

Latest commit

 

History

History

README.md

🎭 Bitcode Mock System - Complete Documentation

The most comprehensive enterprise-grade mocking system for the Bitcode commercial surface

Coverage Type Safety Zero Changes Enterprise Ready

🚀 Quick Start (30 seconds)

1. Run the Setup Script

# Navigate to your uapi directory
cd apps/uapi

# Run the easy setup script  
node mocking/scripts/setup-mock-system.js

# Or choose a specific scenario
node mocking/scripts/setup-mock-system.js enterprise

2. Start Your Server

npm run dev

3. Visit Any Page - You're Done! 🎉

Your entire Bitcode commercial surface now has rich, realistic mock data automatically.

📋 Table of Contents

🎯 What This System Covers

Complete Bitcode Coverage (138+ Features)

User Auxillaries (25+ features): Authentication, profiles, onboarding, preferences ✅ Conversations (10+ features): ChatGPT-style Bitcode conversations, tool responses, AI replies ✅ AssetPacks/Evidence Documents (16+ features): Main pipelines with 4 toggles, streaming ✅ Organizations (8+ features): Enterprise teams, members, treasury, invitations ✅ Integrations (25+ features): GitHub, GitLab, Bitbucket, Figma, Notion ✅ Marketplace (5+ features): Listings, orders, ticker, categories ✅ MCP Tools (4+ features): AWS, Supabase, Vercel integrations ✅ System Health (15+ features): Monitoring, analytics, admin dashboards ✅ Treasury (5+ features): BTC settlement, $BTD issuance, wallets ✅ Vector/AI (5+ features): Embeddings, pattern recognition, semantic search

⚙️ Setup Options

Option 1: Easy Setup Script (Recommended)

# Demo mode (rich, engaging data)
node mocking/scripts/setup-mock-system.js demo

# Enterprise mode (large-scale data)  
node mocking/scripts/setup-mock-system.js enterprise

# Testing mode (minimal, predictable data)
node mocking/scripts/setup-mock-system.js testing

Option 2: Manual Setup

Add to your .env.local:

NEXT_PUBLIC_MASTER_MOCK_MODE=true
NEXT_PUBLIC_MOCK_SCENARIO=demo
NEXT_PUBLIC_MOCK_DEBUG=true

Option 3: NPM Scripts

# If you have the scripts package installed
npm run setup:demo
npm run setup:enterprise
npm run validate

🛠️ Integration Guide

Zero-Change API Integration

// Before: Your existing route
export const GET = async (request: NextRequest) => {
  // Your original logic
};

// After: Enhanced with comprehensive mocking
import { mockAreas } from '@/mocking';

export const GET = mockAreas.pipelines.assetPacks.main()(async (request: NextRequest) => {
  // Your original logic - UNCHANGED!
});

Zero-Change Component Integration

// Automatic mock data in components
import { useMockData } from '@/mocking';

function MyComponent() {
  const { data, loading, error } = useMockData('ASSET_PACKS');
  
  // Your existing component logic works exactly the same!
  // Mock data appears automatically when enabled
}

Area-Specific Integration

// Specialized middleware for different system areas
export const authRoute = mockAreas.orbital.auth.github()(originalHandler);
export const chatRoute = mockAreas.conversation.chat.stream()(originalHandler);
export const repoRoute = mockAreas.integrations.github.repos()(originalHandler);
export const orgRoute = mockAreas.organizations.main()(originalHandler);

🎭 Available Scenarios

🎨 Demo Mode (Default)

  • Use case: Showcasing, sales, demos
  • Data: Rich, interconnected, engaging
  • Complexity: High with realistic relationships
  • Perfect for: Product demonstrations, client meetings

🏢 Enterprise Mode

  • Use case: Enterprise sales, scalability testing
  • Data: Large-scale organizational data
  • Complexity: Maximum with complex team structures
  • Perfect for: Enterprise demos, performance testing

🧪 Testing Mode

  • Use case: Automated testing, CI/CD
  • Data: Minimal, predictable, consistent
  • Complexity: Low with fast responses
  • Perfect for: Unit tests, integration tests

🎓 Onboarding Mode

  • Use case: New user experience, tutorials
  • Data: Progressive from empty to populated
  • Complexity: Moderate with guided flows
  • Perfect for: User onboarding, UX testing

📭 Empty Mode

  • Use case: Zero-state testing, edge cases
  • Data: Empty arrays, null values
  • Complexity: Minimal edge case handling
  • Perfect for: Empty state design, error boundaries

🔧 Configuration

Environment Variables

Master Controls

NEXT_PUBLIC_MASTER_MOCK_MODE=true          # Enable/disable everything
NEXT_PUBLIC_MOCK_SCENARIO=demo             # Global scenario
NEXT_PUBLIC_MOCK_DEBUG=true                # Debug information

Performance & Caching

NEXT_PUBLIC_MOCK_PERFORMANCE_MONITORING=true
NEXT_PUBLIC_MOCK_CACHE_ENABLED=true
NEXT_PUBLIC_MOCK_CACHE_TTL_SECONDS=300
NEXT_PUBLIC_MOCK_CACHE_MAX_SIZE_MB=100

Feature-Specific Overrides

# Override specific features
NEXT_PUBLIC_MOCK_ASSET_PACKS=true
NEXT_PUBLIC_MOCK_ASSET_PACKS_SCENARIO=enterprise
NEXT_PUBLIC_MOCK_CONVERSATION_CONVERSATIONS=true
NEXT_PUBLIC_MOCK_GITHUB_REPOS=false        # Keep GitHub real

Error Injection (Testing)

NEXT_PUBLIC_MOCK_ERROR_INJECTION=true
NEXT_PUBLIC_MOCK_ERROR_PROBABILITY=0.01
NEXT_PUBLIC_MOCK_ERROR_TYPES=network,timeout

Programmatic Configuration

import { initializeMockSystem } from '@/mocking';

initializeMockSystem({
  enabled: true,
  defaultScenario: 'enterprise',
  debug: true,
  features: {
    ASSET_PACKS: { enabled: true, scenario: 'demo' },
    GITHUB_REPOS: { enabled: false } // Use real GitHub data
  }
});

📊 Features Overview

Core Pipeline Features

  • AssetPacks: Full pipeline with streaming, logs, events
  • Evidence Documents: Nearly identical to AssetPacks experience
  • Real-time: Streaming simulation with realistic timing

User Experience Areas

  • Authentication: GitHub, ChatGPT, Metamask, sessions
  • Profiles: Complete user data, preferences, API keys
  • Onboarding: Step-by-step guidance and progress tracking

Business Features

  • Organizations: Team management, billing, invitations
  • Marketplace: Listings, orders, categories, ticker
  • Treasury: BTC settlement, $BTD issuance, wallet posture

Developer Tools

  • Integrations: GitHub, GitLab, Bitbucket, Figma, Notion
  • MCP Tools: AWS, Supabase, Vercel API integrations
  • Health: System monitoring, analytics, admin dashboards

🎛️ Advanced Usage

Custom Scenarios

import { MockOrchestrator } from '@/mocking';

const orchestrator = MockOrchestrator.getInstance();

orchestrator.registerScenario({
  id: 'my-custom-scenario',
  name: 'My Custom Data',
  description: 'Custom scenario for specific testing',
  type: 'custom',
  complexity: 'moderate',
  timing: 'realistic',
  features: {
    ASSET_PACKS: { enabled: true, data: { /* custom data */ } }
  }
});

Performance Monitoring

import { MockOrchestrator } from '@/mocking';

const orchestrator = MockOrchestrator.getInstance();

// Get real-time metrics
const metrics = orchestrator.getPerformanceMetrics();
console.log('Cache hit ratio:', metrics.mocking.cacheHitRatio);
console.log('Memory usage:', metrics.system.memoryUsageMB);

// Validate system health
const validation = await orchestrator.validateSystem();
console.log('System valid:', validation.valid);

Debug Tools

// Available in browser console when debug mode is enabled
__bitcodeMockSystem.getMetrics()           // Performance metrics
__bitcodeMockSystem.switchScenario('demo') // Change scenario
__bitcodeMockSystem.validateSystem()       // Health check
__bitcodeMockSystem.clearCache()           // Clear cache

Conditional Rendering

import { MockOnly, RealOnly, useMockContext } from '@/mocking';

function MyComponent() {
  const { isEnabled, currentScenario } = useMockContext();
  
  return (
    <div>
      <MockOnly>
        <div className="bg-yellow-100 p-2">
          🎭 Mock Mode: {currentScenario}
        </div>
      </MockOnly>
      
      <RealOnly>
        <div className="bg-green-100 p-2">
          🚀 Live Data Mode
        </div>
      </RealOnly>
      
      {/* Your regular content */}
    </div>
  );
}

🔍 Troubleshooting

Common Issues

Mock Data Not Loading

# Check environment configuration
node mocking/scripts/validate-mock-system.js

# Verify master mode is enabled
grep NEXT_PUBLIC_MASTER_MOCK_MODE .env.local

# Check browser console for errors
# Look for mock system logs

Performance Issues

# Reduce data complexity for testing
NEXT_PUBLIC_MOCK_SCENARIO=testing
NEXT_PUBLIC_MOCK_COMPLEXITY=minimal

# Enable caching
NEXT_PUBLIC_MOCK_CACHE_ENABLED=true

# Monitor memory usage
NEXT_PUBLIC_MOCK_PERFORMANCE_MONITORING=true

TypeScript Errors

# Ensure all mock system files are present
ls mocking/types/
ls mocking/generators/

# Check imports in your files
import type { MockableFeature } from '@/mocking/types/core';

Validation Script

# Run comprehensive validation
node mocking/scripts/validate-mock-system.js

# This checks:
# - Environment configuration
# - File structure
# - TypeScript compilation
# - Runtime validation

Debug Mode

# Enable detailed logging
NEXT_PUBLIC_MOCK_DEBUG=true

# Check browser console for:
# - Mock system initialization
# - Data generation logs
# - Performance metrics
# - Error details

📚 Additional Resources

Documentation Files

Generated Quick Start Guides

  • QUICK_START_DEMO.md - Generated after running setup
  • QUICK_START_ENTERPRISE.md - Enterprise-specific guide
  • QUICK_START_TESTING.md - Testing-specific guide

Scripts

TypeScript Support

// Full type safety throughout
import type { 
  MockableFeature, 
  MockScenarioType, 
  MockDataContainer 
} from '@/mocking/types/core';

// Comprehensive feature types
const feature: MockableFeature = 'ASSET_PACKS'; // 138+ options
const scenario: MockScenarioType = 'demo';       // 6 scenario types

Enterprise Features

  • Performance Monitoring: Built-in metrics and validation
  • Intelligent Caching: TTL-based with automatic cleanup
  • Error Resilience: Graceful fallbacks to real APIs
  • Memory Management: Configurable limits and monitoring
  • Concurrent Access: Thread-safe operations
  • Production Safety: Disabled by default in production

🎉 Success Stories

✅ Zero Breaking Changes

  • Existing code continues to work exactly the same
  • No client-side modifications required
  • Existing 39+ mock flags continue through the stable mock control surface

✅ Single Flag Control

# This one line mocks your entire platform
NEXT_PUBLIC_MASTER_MOCK_MODE=true

✅ Enterprise Scale

  • Supports billions of users with performance optimization
  • Intelligent caching and memory management
  • Real-time performance monitoring

✅ Rich Developer Experience

  • Type-safe throughout with comprehensive TypeScript
  • Rich debugging tools and console utilities
  • Multiple scenarios for different use cases

🚀 Get Started Now!

# 1. Run the setup script
node mocking/scripts/setup-mock-system.js

# 2. Start your server  
npm run dev

# 3. Visit any page - you're done! 🎉

Your entire Bitcode commercial surface now has enterprise-grade mocking with zero code changes.


Built with ❤️ by the Bitcode team for developers building the future 🎭