deaf-full-stack-platform / Visual_Service
pinkycollie's picture
Upload 17 files
ac6f50a verified
import React, { useState } from 'react';
import { Play, Pause, Camera, Monitor, Wifi, Database, Zap, Users, Shield, Brain, Eye, Layers, CheckCircle, ArrowRight, Code, Video, FileText, Sparkles, Wand2, Cpu } from 'lucide-react';
const MBTQVisualPlatform = () => {
const [activeTab, setActiveTab] = useState('overview');
const [isRecording, setIsRecording] = useState(false);
const [annotationMode, setAnnotationMode] = useState(false);
const [processingStage, setProcessingStage] = useState(0);
const tabs = [
{ id: 'overview', label: 'System Overview', icon: Eye },
{ id: 'equipment', label: 'Equipment Stack', icon: Camera },
{ id: 'workflow', label: 'PinkSync Workflow', icon: Zap },
{ id: 'prototype', label: 'Live Prototype', icon: Video },
{ id: 'architecture', label: 'Architecture', icon: Layers }
];
const equipmentTiers = [
{
tier: 'MVP Setup',
budget: '$300-500',
items: [
{ name: 'Tempered Glass Panel', cost: '$50', source: 'Hardware Store' },
{ name: 'LED Ring Light', cost: '$80', source: 'Amazon' },
{ name: 'Smartphone Tripod', cost: '$30', source: 'Amazon' },
{ name: 'Neon Markers', cost: '$15', source: 'Office Supply' },
{ name: 'DaVinci Resolve', cost: 'Free', source: 'BlackmagicDesign' }
]
},
{
tier: 'Professional Setup',
budget: '$2K-3K',
items: [
{ name: 'Transparent LED Display', cost: '$1200', source: 'Pro AV Supplier' },
{ name: 'Sony A7 III Camera', cost: '$1800', source: 'B&H Photo' },
{ name: 'Elgato Cam Link 4K', cost: '$130', source: 'Amazon' },
{ name: 'OBS Studio Pro', cost: 'Free', source: 'obsproject.com' },
{ name: 'Professional Lighting Kit', cost: '$300', source: 'B&H Photo' }
]
},
{
tier: 'Enterprise Setup',
budget: '$8K-12K',
items: [
{ name: 'Professional Lightboard', cost: '$5000', source: 'Lightboard.info' },
{ name: 'PTZ Camera System', cost: '$3000', source: 'Pro AV' },
{ name: 'vMix Pro License', cost: '$1200', source: 'vmix.com' },
{ name: 'Studio Lighting Grid', cost: '$2000', source: 'Pro AV' },
{ name: 'Audio Interface + Mics', cost: '$800', source: 'B&H Photo' }
]
}
];
const workflowStages = [
{
stage: 'Capture',
icon: Camera,
component: 'OBS Studio',
actions: ['Start recording', 'Overlay graphics', 'Real-time monitoring'],
output: 'Raw video + metadata'
},
{
stage: 'Upload',
icon: Wifi,
component: 'PinkSync',
actions: ['Auto-upload to Firebase', 'Generate thumbnails', 'Extract keyframes'],
output: 'Cloud-stored assets'
},
{
stage: 'Process',
icon: Brain,
component: '360 Magicians',
actions: ['OCR annotations', 'Vector tracing', 'Visual summarization'],
output: 'Structured annotation data'
},
{
stage: 'Validate',
icon: Shield,
component: 'Fibonrose',
actions: ['Quality scoring', 'Tag generation', 'Reputation assignment'],
output: 'Validated knowledge node'
},
{
stage: 'Serve',
icon: Monitor,
component: 'Vercel Edge',
actions: ['Deploy to CDN', 'Generate access tokens', 'Enable community feedback'],
output: 'Live educational content'
}
];
const architectureComponents = [
{
layer: 'Identity Layer',
component: 'DeafAUTH',
purpose: 'Access control & authentication',
tech: 'Firebase Auth + Custom JWT',
icon: Shield
},
{
layer: 'Execution Layer',
component: 'PinkSync',
purpose: 'Workflow automation & orchestration',
tech: 'Vercel Functions + GitHub Actions',
icon: Zap
},
{
layer: 'Trust Layer',
component: 'Fibonrose',
purpose: 'Quality validation & reputation',
tech: 'Smart contracts + IPFS',
icon: CheckCircle
},
{
layer: 'Intelligence Layer',
component: '360 Magicians',
purpose: 'AI-powered content processing',
tech: 'Claude API + Computer Vision',
icon: Wand2
},
{
layer: 'Storage Layer',
component: 'Firebase + IPFS',
purpose: 'Persistent data & media storage',
tech: 'Cloud Firestore + Distributed storage',
icon: Database
}
];
const simulateRecording = () => {
setIsRecording(!isRecording);
if (!isRecording) {
setProcessingStage(0);
const interval = setInterval(() => {
setProcessingStage(prev => {
if (prev >= 4) {
clearInterval(interval);
setIsRecording(false);
return 0;
}
return prev + 1;
});
}, 2000);
}
};
return (
<div className="min-h-screen bg-gradient-to-br from-purple-900 via-blue-900 to-indigo-900 text-white p-8">
<div className="max-w-7xl mx-auto">
{/* Header */}
<div className="text-center mb-12">
<div className="flex items-center justify-center gap-3 mb-4">
<Wand2 className="w-12 h-12 text-pink-400 animate-pulse" />
<h1 className="text-6xl font-bold bg-gradient-to-r from-pink-400 via-purple-400 to-blue-400 bg-clip-text text-transparent">
MBTQ Visual-First Education
</h1>
<Wand2 className="w-12 h-12 text-blue-400 animate-pulse" />
</div>
<p className="text-2xl text-blue-300 mb-2">Transparent Annotation System Architecture</p>
<p className="text-lg text-pink-300 italic">✨ Powered by Creative Magician ✨</p>
<div className="mt-6 flex items-center justify-center gap-4 text-sm">
<div className="flex items-center gap-2">
<Eye className="w-5 h-5 text-pink-400" />
<span>Deaf-First Design</span>
</div>
<div className="flex items-center gap-2">
<Brain className="w-5 h-5 text-purple-400" />
<span>AI-Powered Processing</span>
</div>
<div className="flex items-center gap-2">
<Shield className="w-5 h-5 text-blue-400" />
<span>Trust-Validated</span>
</div>
</div>
</div>
{/* Navigation */}
<div className="flex gap-2 mb-8 overflow-x-auto pb-2">
{tabs.map(tab => {
const Icon = tab.icon;
return (
<button
key={tab.id}
onClick={() => setActiveTab(tab.id)}
className={`flex items-center gap-2 px-6 py-3 rounded-lg font-semibold transition-all whitespace-nowrap ${
activeTab === tab.id
? 'bg-gradient-to-r from-pink-500 to-purple-500 shadow-lg scale-105'
: 'bg-white/10 hover:bg-white/20'
}`}
>
<Icon className="w-5 h-5" />
{tab.label}
</button>
);
})}
</div>
{/* Content Area */}
<div className="bg-white/10 backdrop-blur-lg rounded-2xl p-8 shadow-2xl">
{/* Overview Tab */}
{activeTab === 'overview' && (
<div className="space-y-8">
<h2 className="text-4xl font-bold mb-6">System Overview</h2>
<div className="grid md:grid-cols-2 gap-6">
<div className="bg-gradient-to-br from-pink-500/20 to-purple-500/20 rounded-xl p-6 border border-pink-500/30">
<h3 className="text-2xl font-bold mb-4 flex items-center gap-2">
<Eye className="w-6 h-6" />
The Visual Problem
</h3>
<p className="text-gray-200 leading-relaxed">
Traditional education relies on audio narration. Technical concepts are explained through voice