import { useQuery } from '@tanstack/react-query'; import axios from 'axios'; import { Search, FileText, Bot, Zap, Globe, BarChart3, CheckCircle, AlertTriangle, XCircle } from 'lucide-react'; const API_BASE_URL = import.meta.env.VITE_API_URL || '/api'; export function About() { const { data: health } = useQuery({ queryKey: ['health'], queryFn: async () => { const response = await axios.get(`${API_BASE_URL}/health`); return response.data; }, refetchInterval: 30000, }); const features = [ { icon: Search, title: 'Patent Retrieval', description: 'Automated collection via SerpAPI\'s Google Patents', }, { icon: FileText, title: 'Intelligent Parsing', description: 'Extracts key sections from patent documents', }, { icon: Bot, title: 'AI Analysis', description: 'Deep analysis powered by Claude 3.5 Sonnet', }, { icon: Zap, title: 'Batch Processing', description: 'Analyze multiple companies concurrently', }, { icon: Globe, title: 'REST API', description: 'FastAPI web service for seamless integration', }, { icon: BarChart3, title: 'Analytics', description: 'Track and visualize historical analysis data', }, ]; const techStack = [ { label: 'Backend', value: 'Python, FastAPI' }, { label: 'AI Model', value: 'Claude 3.5 Sonnet' }, { label: 'Database', value: 'PostgreSQL' }, { label: 'Frontend', value: 'React, TailwindCSS' }, { label: 'Data Source', value: 'SerpAPI Patents' }, ]; return (
{/* Header */}

About SPARC

{/* Main Content */}
{/* Description */}

SPARC (Semiconductor Patent & Analytics Report Core) is an AI-powered patent analysis platform that evaluates company performance by analyzing their patent portfolios with cutting-edge language models.

{/* Features */}

Key Features

{features.map(({ icon: Icon, title, description }) => (
{title}
{description}
))}
{/* Sidebar */}
{/* Tech Stack */}

Technology Stack

{techStack.map(({ label, value }) => (
{label}
{value}
))}
{/* API Endpoints */}

API Endpoints

http://localhost:8000/docs http://localhost:8000/health
{/* System Status */}

System Status

); } function StatusCard({ label, status }: { label: string; status: 'online' | 'offline' | 'configured' }) { const statusConfig = { online: { icon: CheckCircle, color: 'text-success', bg: 'bg-success' }, offline: { icon: XCircle, color: 'text-error', bg: 'bg-error' }, configured: { icon: AlertTriangle, color: 'text-warning', bg: 'bg-warning' }, }; const { icon: Icon, color, bg } = statusConfig[status]; return (
{label}
{status}
); }