dev-Rachitgarg's picture
improvise code explaination part
c6aaa20 verified
<!DOCTYPE html>
<html lang="en" class="dark">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>CodeGenius AI - Smart Coding Companion</title>
<link rel="icon" type="image/x-icon" href="/static/favicon.ico">
<script src="https://cdn.tailwindcss.com"></script>
<script>
function copyComments() {
const content = document.getElementById('commentsPanel').textContent;
navigator.clipboard.writeText(content);
const notification = document.createElement('div');
notification.className = 'fixed bottom-4 right-4 bg-green-500 text-white px-4 py-2 rounded-md shadow-lg';
notification.textContent = 'Comments copied to clipboard!';
document.body.appendChild(notification);
setTimeout(() => {
notification.remove();
}, 2000);
}
function copyDocumentation() {
const content = document.getElementById('documentationPanel').textContent;
navigator.clipboard.writeText(content);
const notification = document.createElement('div');
notification.className = 'fixed bottom-4 right-4 bg-green-500 text-white px-4 py-2 rounded-md shadow-lg';
notification.textContent = 'Documentation copied to clipboard!';
document.body.appendChild(notification);
setTimeout(() => {
notification.remove();
}, 2000);
}
function copyBugAnalysis() {
const content = document.getElementById('bugTerminal').textContent;
navigator.clipboard.writeText(content);
const notification = document.createElement('div');
notification.className = 'fixed bottom-4 right-4 bg-green-500 text-white px-4 py-2 rounded-md shadow-lg';
notification.textContent = 'Bug analysis copied to clipboard!';
document.body.appendChild(notification);
setTimeout(() => {
notification.remove();
}, 2000);
}
function downloadBugAnalysis() {
const content = document.getElementById('bugTerminal').textContent;
const blob = new Blob([content], { type: 'text/plain' });
const url = URL.createObjectURL(blob);
const a = document.createElement('a');
a.href = url;
a.download = 'bug-analysis.txt';
document.body.appendChild(a);
a.click();
document.body.removeChild(a);
URL.revokeObjectURL(url);
}
function copyFixedCode() {
const code = document.getElementById('fixedCode').textContent;
navigator.clipboard.writeText(code);
const notification = document.createElement('div');
notification.className = 'fixed bottom-4 right-4 bg-green-500 text-white px-4 py-2 rounded-md shadow-lg';
notification.textContent = 'Fixed code copied to clipboard!';
document.body.appendChild(notification);
setTimeout(() => {
notification.remove();
}, 2000);
}
function downloadFixedCode() {
const code = document.getElementById('fixedCode').textContent;
const blob = new Blob([code], { type: 'text/javascript' });
const url = URL.createObjectURL(blob);
const a = document.createElement('a');
a.href = url;
a.download = 'fixed-code.js';
document.body.appendChild(a);
a.click();
document.body.removeChild(a);
URL.revokeObjectURL(url);
}
function downloadDocumentation() {
const content = document.getElementById('documentationPanel').textContent;
const blob = new Blob([content], { type: 'text/plain' });
const url = URL.createObjectURL(blob);
const a = document.createElement('a');
a.href = url;
a.download = 'documentation.txt';
document.body.appendChild(a);
a.click();
document.body.removeChild(a);
URL.revokeObjectURL(url);
}
function downloadComments() {
const content = document.getElementById('commentsPanel').textContent;
const blob = new Blob([content], { type: 'text/plain' });
const url = URL.createObjectURL(blob);
const a = document.createElement('a');
a.href = url;
a.download = 'code-comments.txt';
document.body.appendChild(a);
a.click();
document.body.removeChild(a);
URL.revokeObjectURL(url);
}
tailwind.config = {
theme: {
extend: {
colors: {
primary: '#6366f1',
secondary: '#8b5cf6',
dark: '#0f172a',
light: '#f8fafc'
}
}
}
}
</script>
<script src="https://unpkg.com/feather-icons"></script>
<script src="https://cdn.jsdelivr.net/npm/vanta@latest/dist/vanta.globe.min.js"></script>
<style>
@import url('https://fonts.googleapis.com/css2?family=Fira+Code:wght@300;400;500;600;700&display=swap');
body {
font-family: 'Fira Code', monospace;
}
.code-editor {
background-color: #1e293b;
border-radius: 0.75rem;
box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
}
.gradient-text {
background: linear-gradient(90deg, #6366f1 0%, #8b5cf6 100%);
-webkit-background-clip: text;
background-clip: text;
color: transparent;
}
.vanta-container {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: -1;
}
.feature-card:hover {
transform: translateY(-5px);
transition: all 0.3s ease;
}
.glow {
box-shadow: 0 0 15px rgba(139, 92, 246, 0.5);
}
</style>
</head>
<body class="bg-dark text-light min-h-screen">
<div id="vanta-bg" class="vanta-container"></div>
<!-- Navigation -->
<nav class="bg-dark/80 backdrop-blur-md border-b border-gray-800 fixed w-full z-50">
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
<div class="flex items-center justify-between h-16">
<div class="flex items-center">
<div class="flex-shrink-0 flex items-center">
<i data-feather="code" class="text-primary h-6 w-6"></i>
<span class="ml-2 text-xl font-bold gradient-text">CodeGenius AI</span>
</div>
</div>
<div class="hidden md:block">
<div class="ml-10 flex items-baseline space-x-4">
<a href="#" class="text-primary px-3 py-2 rounded-md text-sm font-medium">Home</a>
<a href="#" class="text-gray-300 hover:text-white px-3 py-2 rounded-md text-sm font-medium">Features</a>
<a href="#" class="text-gray-300 hover:text-white px-3 py-2 rounded-md text-sm font-medium">Pricing</a>
<a href="#" class="text-gray-300 hover:text-white px-3 py-2 rounded-md text-sm font-medium">Docs</a>
<a href="#" class="text-gray-300 hover:text-white px-3 py-2 rounded-md text-sm font-medium">About</a>
</div>
</div>
<div class="hidden md:block">
<div class="ml-4 flex items-center md:ml-6">
<button class="bg-primary hover:bg-primary/90 text-white px-4 py-2 rounded-md text-sm font-medium flex items-center">
<i data-feather="log-in" class="mr-2 h-4 w-4"></i> Sign In
</button>
</div>
</div>
<div class="-mr-2 flex md:hidden">
<button type="button" class="inline-flex items-center justify-center p-2 rounded-md text-gray-400 hover:text-white hover:bg-gray-700 focus:outline-none">
<i data-feather="menu"></i>
</button>
</div>
</div>
</div>
</nav>
<!-- Hero Section -->
<div class="relative pt-32 pb-20 px-4 sm:px-6 lg:pt-40 lg:pb-28 lg:px-8">
<div class="max-w-7xl mx-auto">
<div class="text-center">
<h1 class="text-4xl tracking-tight font-extrabold sm:text-5xl md:text-6xl">
<span class="block">AI-Powered</span>
<span class="block gradient-text">Coding Companion</span>
</h1>
<p class="mt-3 max-w-md mx-auto text-base text-gray-300 sm:text-lg md:mt-5 md:text-xl md:max-w-3xl">
Supercharge your development workflow with our AI-powered tools that detect bugs, fix code, explain logic, and generate documentation automatically.
</p>
<div class="mt-10 sm:flex sm:justify-center">
<div class="rounded-md shadow">
<a href="#" class="w-full flex items-center justify-center px-8 py-3 border border-transparent text-base font-medium rounded-md text-white bg-primary hover:bg-primary/90 md:py-4 md:text-lg md:px-10">
Get Started
</a>
</div>
<div class="mt-3 rounded-md shadow sm:mt-0 sm:ml-3">
<a href="#" class="w-full flex items-center justify-center px-8 py-3 border border-transparent text-base font-medium rounded-md text-primary bg-white hover:bg-gray-50 md:py-4 md:text-lg md:px-10">
Live Demo
</a>
</div>
</div>
</div>
</div>
</div>
<!-- Features Section -->
<div class="py-12 bg-dark/50 backdrop-blur-sm">
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
<div class="lg:text-center">
<h2 class="text-base text-primary font-semibold tracking-wide uppercase">Features</h2>
<p class="mt-2 text-3xl leading-8 font-extrabold tracking-tight text-white sm:text-4xl">
Everything you need to code smarter
</p>
</div>
<div class="mt-10">
<div class="grid grid-cols-1 gap-10 sm:grid-cols-2 lg:grid-cols-3">
<!-- Feature 1 -->
<div class="feature-card bg-gray-800/50 p-6 rounded-lg border border-gray-700 hover:border-primary">
<div class="flex items-center justify-center h-12 w-12 rounded-md bg-primary/10 text-primary mb-4">
<i data-feather="bug"></i>
</div>
<h3 class="text-lg font-medium text-white mb-2">AI Bug Detector</h3>
<p class="text-gray-300">
Real-time scanning and detection of bugs, errors, and vulnerabilities in your code with detailed reports.
</p>
</div>
<!-- Feature 2 -->
<div class="feature-card bg-gray-800/50 p-6 rounded-lg border border-gray-700 hover:border-primary">
<div class="flex items-center justify-center h-12 w-12 rounded-md bg-primary/10 text-primary mb-4">
<i data-feather="check-circle"></i>
</div>
<h3 class="text-lg font-medium text-white mb-2">AI Bug Fixer</h3>
<p class="text-gray-300">
Automated suggestions and fixes for identified bugs, with options to apply changes instantly.
</p>
</div>
<!-- Feature 3 -->
<div class="feature-card bg-gray-800/50 p-6 rounded-lg border border-gray-700 hover:border-primary">
<div class="flex items-center justify-center h-12 w-12 rounded-md bg-primary/10 text-primary mb-4">
<i data-feather="book-open"></i>
</div>
<h3 class="text-lg font-medium text-white mb-2">AI Code Explainer</h3>
<p class="text-gray-300">
In-depth breakdowns of complex code segments, simplifying logic and functionality for better understanding.
</p>
</div>
<!-- Feature 4 -->
<div class="feature-card bg-gray-800/50 p-6 rounded-lg border border-gray-700 hover:border-primary">
<div class="flex items-center justify-center h-12 w-12 rounded-md bg-primary/10 text-primary mb-4">
<i data-feather="file-text"></i>
</div>
<h3 class="text-lg font-medium text-white mb-2">AI Documentation Maker</h3>
<p class="text-gray-300">
Auto-generates comprehensive, well-structured documentation for projects in various formats.
</p>
</div>
<!-- Feature 5 -->
<div class="feature-card bg-gray-800/50 p-6 rounded-lg border border-gray-700 hover:border-primary">
<div class="flex items-center justify-center h-12 w-12 rounded-md bg-primary/10 text-primary mb-4">
<i data-feather="message-square"></i>
</div>
<h3 class="text-lg font-medium text-white mb-2">AI Auto-Commentor</h3>
<p class="text-gray-300">
Intelligently adds descriptive comments to code, improving readability and maintainability.
</p>
</div>
<!-- Feature 6 -->
<div class="feature-card bg-gray-800/50 p-6 rounded-lg border border-gray-700 hover:border-primary">
<div class="flex items-center justify-center h-12 w-12 rounded-md bg-primary/10 text-primary mb-4">
<i data-feather="users"></i>
</div>
<h3 class="text-lg font-medium text-white mb-2">Real-time Collaboration</h3>
<p class="text-gray-300">
Work together with your team in real-time with built-in collaboration tools and version control.
</p>
</div>
</div>
</div>
</div>
</div>
<!-- Interactive Code Section -->
<div class="py-16 px-4 sm:px-6 lg:px-8 max-w-7xl mx-auto">
<div class="grid grid-cols-1 gap-8">
<!-- Input JS Editor -->
<div class="code-editor p-4 glow">
<div class="flex items-center justify-between mb-4">
<div class="flex items-center">
<div class="flex space-x-2 mr-4">
<div class="w-3 h-3 rounded-full bg-red-500"></div>
<div class="w-3 h-3 rounded-full bg-yellow-500"></div>
<div class="w-3 h-3 rounded-full bg-green-500"></div>
</div>
<div class="text-sm text-gray-400">input.js</div>
</div>
<div class="flex space-x-2">
<button onclick="copyCode()" class="group relative text-gray-400 hover:text-white p-1.5 rounded hover:bg-gray-700/50 transition-all duration-200" title="Copy Code">
<i data-feather="copy" class="w-4 h-4"></i>
<span class="absolute top-full left-1/2 transform -translate-x-1/2 mt-1 px-2 py-1 text-xs text-white bg-gray-800 rounded opacity-0 group-hover:opacity-100 transition-opacity duration-200">Copy</span>
</button>
<button onclick="downloadCode()" class="group relative text-gray-400 hover:text-white p-1.5 rounded hover:bg-gray-700/50 transition-all duration-200" title="Download Code">
<i data-feather="download" class="w-4 h-4"></i>
<span class="absolute top-full left-1/2 transform -translate-x-1/2 mt-1 px-2 py-1 text-xs text-white bg-gray-800 rounded opacity-0 group-hover:opacity-100 transition-opacity duration-200">Download</span>
</button>
</div>
</div>
<div id="codeEditor" class="w-full h-96 bg-gray-800 text-gray-300 font-mono text-sm p-4 rounded overflow-auto">
<div>
<div class="text-primary font-medium">Function Declaration:</div>
<div class="text-gray-400 ml-4"><span class="text-purple-400">function</span> <span class="text-yellow-300">calculateTotal</span>(<span class="text-blue-400">items</span>) {</div>
</div>
<div class="mt-2">
<div class="text-primary font-medium">Input Validation:</div>
<div class="text-gray-400 ml-4"><span class="text-green-400">if</span> (!Array.isArray(<span class="text-blue-400">items</span>)) {</div>
<div class="text-gray-400 ml-8"><span class="text-green-400">throw</span> <span class="text-purple-400">new</span> <span class="text-blue-400">Error</span>(<span class="text-orange-300">'Items must be an array'</span>);</div>
<div class="text-gray-400 ml-4">}</div>
</div>
<div class="mt-2">
<div class="text-primary font-medium">Total Calculation:</div>
<div class="text-gray-400 ml-4"><span class="text-purple-400">let</span> total = <span class="text-blue-400">0</span>;</div>
<div class="text-gray-400 ml-4"><span class="text-blue-400">items</span>.forEach(<span class="text-blue-400">item</span> => {</div>
<div class="text-gray-400 ml-8"><span class="text-purple-400">const</span> price = <span class="text-blue-400">Number</span>(<span class="text-blue-400">item</span>.price) || <span class="text-blue-400">0</span>;</div>
<div class="text-gray-400 ml-8">total += price * (<span class="text-blue-400">item</span>.quantity || <span class="text-blue-400">1</span>);</div>
<div class="text-gray-400 ml-4">});</div>
</div>
<div class="mt-2">
<div class="text-primary font-medium">Return Value:</div>
<div class="text-gray-400 ml-4"><span class="text-green-400">return</span> total;</div>
<div class="text-gray-400 ml-4">}</div>
</div>
</div>
<div class="grid grid-cols-5 gap-3 mt-4">
<button onclick="explainCode()" class="group relative bg-gray-700/70 hover:bg-gray-600/80 border border-gray-600 hover:border-blue-500 text-white py-2.5 px-3 rounded-lg text-sm font-medium flex items-center justify-center transition-all duration-200 shadow-md hover:shadow-blue-500/20">
<div class="absolute inset-0 bg-blue-500/10 group-hover:bg-blue-500/20 rounded-lg opacity-0 group-hover:opacity-100 transition-opacity duration-300"></div>
<i data-feather="book-open" class="mr-2 w-4 h-4 text-blue-400"></i>
<span class="relative">Explain</span>
</button>
<button onclick="commentCode()" class="group relative bg-gray-700/70 hover:bg-gray-600/80 border border-gray-600 hover:border-purple-500 text-white py-2.5 px-3 rounded-lg text-sm font-medium flex items-center justify-center transition-all duration-200 shadow-md hover:shadow-purple-500/20">
<div class="absolute inset-0 bg-purple-500/10 group-hover:bg-purple-500/20 rounded-lg opacity-0 group-hover:opacity-100 transition-opacity duration-300"></div>
<i data-feather="message-square" class="mr-2 w-4 h-4 text-purple-400"></i>
<span class="relative">Comment</span>
</button>
<button onclick="analyzeCode()" class="group relative bg-gray-700/70 hover:bg-gray-600/80 border border-gray-600 hover:border-red-500 text-white py-2.5 px-3 rounded-lg text-sm font-medium flex items-center justify-center transition-all duration-200 shadow-md hover:shadow-red-500/20">
<div class="absolute inset-0 bg-red-500/10 group-hover:bg-red-500/20 rounded-lg opacity-0 group-hover:opacity-100 transition-opacity duration-300"></div>
<i data-feather="bug" class="mr-2 w-4 h-4 text-red-400"></i>
<span class="relative">Find Bugs</span>
</button>
<button onclick="documentCode()" class="group relative bg-gray-700/70 hover:bg-gray-600/80 border border-gray-600 hover:border-green-500 text-white py-2.5 px-3 rounded-lg text-sm font-medium flex items-center justify-center transition-all duration-200 shadow-md hover:shadow-green-500/20">
<div class="absolute inset-0 bg-green-500/10 group-hover:bg-green-500/20 rounded-lg opacity-0 group-hover:opacity-100 transition-opacity duration-300"></div>
<i data-feather="file-text" class="mr-2 w-4 h-4 text-green-400"></i>
<span class="relative">Document</span>
</button>
<button onclick="fixCode()" class="group relative bg-gray-700/70 hover:bg-gray-600/80 border border-gray-600 hover:border-indigo-500 text-white py-2.5 px-3 rounded-lg text-sm font-medium flex items-center justify-center transition-all duration-200 shadow-md hover:shadow-indigo-500/20">
<div class="absolute inset-0 bg-indigo-500/10 group-hover:bg-indigo-500/20 rounded-lg opacity-0 group-hover:opacity-100 transition-opacity duration-300"></div>
<i data-feather="wrench" class="mr-2 w-4 h-4 text-indigo-400"></i>
<span class="relative">Fix Code</span>
</button>
</div>
</div>
<!-- Combined Analysis Panel -->
<div class="grid grid-cols-1 lg:grid-cols-2 gap-8">
<!-- Left Column - Bug Analysis and Fixed Code -->
<div class="space-y-8">
<!-- Bug Analysis -->
<div class="code-editor p-4 glow">
<div class="flex items-center justify-between mb-4">
<div class="flex items-center">
<div class="flex space-x-2 mr-4">
<div class="w-3 h-3 rounded-full bg-red-500"></div>
<div class="w-3 h-3 rounded-full bg-yellow-500"></div>
<div class="w-3 h-3 rounded-full bg-green-500"></div>
</div>
<div class="text-sm text-gray-400">Bug Analysis</div>
</div>
<div class="flex space-x-2">
<button onclick="copyBugAnalysis()" class="text-gray-400 hover:text-white p-1 rounded hover:bg-gray-700/50 transition-all duration-200" title="Copy Analysis">
<i data-feather="copy" class="w-4 h-4"></i>
</button>
<button onclick="downloadBugAnalysis()" class="text-gray-400 hover:text-white p-1 rounded hover:bg-gray-700/50 transition-all duration-200" title="Download Analysis">
<i data-feather="download" class="w-4 h-4"></i>
</button>
</div>
</div>
<div id="bugTerminal" class="w-full h-48 bg-gray-800 text-gray-300 font-mono text-sm p-4 rounded overflow-y-auto">
<div class="text-green-400">$ Waiting for code analysis...</div>
</div>
</div>
<!-- Fixed Code -->
<div class="code-editor p-4 glow">
<div class="flex items-center justify-between mb-4">
<div class="flex items-center">
<div class="flex space-x-2 mr-4">
<div class="w-3 h-3 rounded-full bg-red-500"></div>
<div class="w-3 h-3 rounded-full bg-yellow-500"></div>
<div class="w-3 h-3 rounded-full bg-green-500"></div>
</div>
<div class="text-sm text-gray-400">fixed.js</div>
</div>
<div class="flex space-x-2">
<button onclick="copyFixedCode()" class="text-gray-400 hover:text-white p-1 rounded hover:bg-gray-700/50 transition-all duration-200" title="Copy Code">
<i data-feather="copy" class="w-4 h-4"></i>
</button>
<button onclick="downloadFixedCode()" class="text-gray-400 hover:text-white p-1 rounded hover:bg-gray-700/50 transition-all duration-200" title="Download Code">
<i data-feather="download" class="w-4 h-4"></i>
</button>
</div>
</div>
<pre id="fixedCode" class="text-gray-300 text-sm font-mono h-48 overflow-auto bg-gray-800 p-4 rounded">
<span class="text-gray-500">// Fixed code will appear here after analysis</span></pre>
<button onclick="applyFix()" class="group relative mt-4 w-full bg-gray-800/50 hover:bg-gray-700/70 border border-gray-700 hover:border-green-500 text-white py-2 px-4 rounded-md font-medium flex items-center justify-center transition-all duration-200 shadow-md hover:shadow-green-500/20">
<div class="absolute inset-0 bg-green-500/10 group-hover:bg-green-500/20 rounded-lg opacity-0 group-hover:opacity-100 transition-opacity duration-300"></div>
<i data-feather="check-circle" class="mr-2 text-green-400 w-4 h-4"></i>
<span class="relative">Apply Fix</span>
</button>
</div>
</div>
<!-- Right Column - Documentation and Comments -->
<div class="space-y-8">
<!-- Documentation -->
<div class="code-editor p-4 glow">
<div class="flex items-center justify-between mb-4">
<div class="flex items-center">
<div class="flex space-x-2 mr-4">
<div class="w-3 h-3 rounded-full bg-blue-500"></div>
<div class="w-3 h-3 rounded-full bg-purple-500"></div>
<div class="w-3 h-3 rounded-full bg-pink-500"></div>
</div>
<div class="text-sm text-gray-400">Documentation</div>
</div>
<div class="flex space-x-2">
<button onclick="copyDocumentation()" class="text-gray-400 hover:text-white p-1 rounded hover:bg-gray-700/50 transition-all duration-200" title="Copy Documentation">
<i data-feather="copy" class="w-4 h-4"></i>
</button>
<button onclick="downloadDocumentation()" class="text-gray-400 hover:text-white p-1 rounded hover:bg-gray-700/50 transition-all duration-200" title="Download Documentation">
<i data-feather="download" class="w-4 h-4"></i>
</button>
</div>
</div>
<div id="documentationPanel" class="w-full h-48 bg-gray-800 text-gray-300 font-mono text-sm p-4 rounded overflow-y-auto">
<div class="text-blue-400">/**
* <span class="text-purple-400">@function</span> calculateTotal
* <span class="text-purple-400">@description</span> Calculates the total price of items in a shopping cart
* <span class="text-purple-400">@param</span> {Array} items - Array of item objects with price and quantity
* <span class="text-purple-400">@returns</span> {Number} Total calculated amount
* <span class="text-purple-400">@throws</span> {Error} If items is not an array
*/</div>
</div>
</div>
<!-- Comments -->
<div class="code-editor p-4 glow">
<div class="flex items-center justify-between mb-4">
<div class="flex items-center">
<div class="flex space-x-2 mr-4">
<div class="w-3 h-3 rounded-full bg-green-500"></div>
<div class="w-3 h-3 rounded-full bg-yellow-500"></div>
<div class="w-3 h-3 rounded-full bg-red-500"></div>
</div>
<div class="text-sm text-gray-400">Comments</div>
</div>
<div class="flex space-x-2">
<button onclick="copyComments()" class="text-gray-400 hover:text-white p-1 rounded hover:bg-gray-700/50 transition-all duration-200" title="Copy Comments">
<i data-feather="copy" class="w-4 h-4"></i>
</button>
<button onclick="downloadComments()" class="text-gray-400 hover:text-white p-1 rounded hover:bg-gray-700/50 transition-all duration-200" title="Download Comments">
<i data-feather="download" class="w-4 h-4"></i>
</button>
</div>
</div>
<div id="commentsPanel" class="w-full h-48 bg-gray-800 text-gray-300 font-mono text-sm p-4 rounded overflow-y-auto">
<div class="text-green-400">// Function declaration with items parameter</div>
<div class="text-green-400 mt-2">// Input validation - checks if items is an array</div>
<div class="text-green-400 mt-2">// Initialize total to 0</div>
<div class="text-green-400 mt-2">// Loop through each item in the array</div>
<div class="text-green-400 mt-2">// Convert price to number, default to 0 if invalid</div>
<div class="text-green-400 mt-2">// Calculate line total (price * quantity)</div>
<div class="text-green-400 mt-2">// Return the calculated total</div>
</div>
<button onclick="applyComments()" class="group relative mt-4 w-full bg-gray-800/50 hover:bg-gray-700/70 border border-gray-700 hover:border-purple-500 text-white py-2 px-4 rounded-md font-medium flex items-center justify-center transition-all duration-200 shadow-md hover:shadow-purple-500/20">
<div class="absolute inset-0 bg-purple-500/10 group-hover:bg-purple-500/20 rounded-lg opacity-0 group-hover:opacity-100 transition-opacity duration-300"></div>
<i data-feather="check-circle" class="mr-2 text-purple-400 w-4 h-4"></i>
<span class="relative">Apply Comments</span>
</button>
</div>
</div>
</div>
</div>
</div>
<script>
function copyCode() {
const code = document.getElementById('codeEditor').textContent;
navigator.clipboard.writeText(code);
// Show copied notification
const notification = document.createElement('div');
notification.className = 'fixed bottom-4 right-4 bg-green-500 text-white px-4 py-2 rounded-md shadow-lg';
notification.textContent = 'Code copied to clipboard!';
document.body.appendChild(notification);
setTimeout(() => {
notification.remove();
}, 2000);
}
function downloadCode() {
const code = document.getElementById('codeEditor').textContent;
const blob = new Blob([code], { type: 'text/javascript' });
const url = URL.createObjectURL(blob);
const a = document.createElement('a');
a.href = url;
a.download = 'code.js';
document.body.appendChild(a);
a.click();
document.body.removeChild(a);
URL.revokeObjectURL(url);
}
function fixCode() {
analyzeCode();
setTimeout(() => {
applyFix();
}, 2000);
}
function analyzeCode() {
const code = document.getElementById('codeInput').value;
const bugTerminal = document.getElementById('bugTerminal');
// Clear terminal
bugTerminal.innerHTML = '<div class="text-green-400">$ Analyzing code...</div>';
// Simulate AI analysis
setTimeout(() => {
bugTerminal.innerHTML = `
<div class="text-green-400">$ Code analysis complete</div>
<div class="text-yellow-400">$ Found 2 potential issues:</div>
<div class="mt-2">
<div class="text-red-400">1. Line 3: Missing input validation for 'items' array elements</div>
<div class="text-gray-400 ml-4">- Items should be validated for required properties (price, quantity)</div>
</div>
<div class="mt-2">
<div class="text-red-400">2. Line 7: Potential floating point precision issue</div>
<div class="text-gray-400 ml-4">- Consider using toFixed(2) for currency calculations</div>
</div>
<div class="mt-4 text-green-400">$ Suggested fixes available</div>
`;
// Update fixed code
document.getElementById('fixedCode').innerHTML = `
<span class="text-purple-400">function</span> <span class="text-yellow-300">calculateTotal</span>(items) {
<span class="text-green-400">if</span> (!Array.isArray(items)) {
<span class="text-green-400">throw</span> <span class="text-purple-400">new</span> <span class="text-blue-400">Error</span>(<span class="text-orange-300">'Items must be an array'</span>);
}
<span class="text-purple-400">let</span> total = <span class="text-blue-400">0</span>;
items.forEach(item => {
<span class="text-green-400">if</span> (!item.price || !item.quantity) {
<span class="text-green-400">throw</span> <span class="text-purple-400">new</span> <span class="text-blue-400">Error</span>(<span class="text-orange-300">'Items must have price and quantity'</span>);
}
<span class="text-purple-400">const</span> price = <span class="text-blue-400">Number</span>(item.price) || <span class="text-blue-400">0</span>;
total += <span class="text-blue-400">Number</span>((price * (item.quantity || <span class="text-blue-400">1</span>)).toFixed(<span class="text-blue-400">2</span>));
});
<span class="text-green-400">return</span> total;
}`;
}, 1500);
}
function applyFix() {
const fixedCode = document.getElementById('fixedCode').textContent;
document.getElementById('codeInput').value = fixedCode;
const bugTerminal = document.getElementById('bugTerminal');
bugTerminal.innerHTML = `
<div class="text-green-400">$ Fix applied successfully!</div>
<div class="text-gray-400 mt-2">Original code has been replaced with the fixed version.</div>
<div class="text-green-400 mt-4">$ Ready for new analysis</div>
`;
}
</script>
<!-- Enhanced Code Explanation Section -->
<div class="py-16 px-4 sm:px-6 lg:px-8 max-w-7xl mx-auto bg-gradient-to-br from-gray-800/50 to-gray-900/60 rounded-lg border border-gray-700/50">
<div class="text-center mb-12">
<h2 class="text-3xl font-extrabold text-white sm:text-4xl">
<span class="gradient-text">AI-Powered Code Explanation</span>
</h2>
<p class="mt-3 max-w-2xl mx-auto text-lg text-gray-300">
Our AI analyzes your code structure, logic flow, and provides actionable insights.
</p>
</div>
<div class="grid grid-cols-1 lg:grid-cols-2 gap-8">
<!-- Interactive Code Breakdown -->
<div class="code-editor p-4 glow">
<div class="flex items-center justify-between mb-4">
<div class="text-sm text-gray-400">Interactive Code Breakdown</div>
<button onclick="toggleComplexity()" class="text-xs bg-gray-700/50 hover:bg-gray-600/70 text-gray-300 px-3 py-1 rounded-full">
<span id="complexityToggle">Show Advanced</span>
</button>
</div>
<div id="codeExplanation" class="text-gray-300 text-sm font-mono space-y-4">
<div class="bg-gray-800/50 p-3 rounded-lg border-l-4 border-primary">
<div class="flex items-center">
<i data-feather="chevron-right" class="text-primary mr-2"></i>
<div class="text-primary font-medium">Function Declaration</div>
</div>
<div class="mt-2 ml-6 text-gray-400">
<p>• Public function: calculateTotal(items)</p>
<p>• Accepts single parameter: items array</p>
<p>• Implicit return type: Number</p>
</div>
</div>
<div class="bg-gray-800/50 p-3 rounded-lg border-l-4 border-red-400">
<div class="flex items-center">
<i data-feather="shield" class="text-red-400 mr-2"></i>
<div class="text-red-400 font-medium">Input Validation</div>
</div>
<div class="mt-2 ml-6 text-gray-400">
<p>• Type check: Array.isArray()</p>
<p>• Throws Error on invalid input</p>
<p>• Missing: Element validation</p>
</div>
</div>
<div class="bg-gray-800/50 p-3 rounded-lg border-l-4 border-yellow-400">
<div class="flex items-center">
<i data-feather="repeat" class="text-yellow-400 mr-2"></i>
<div class="text-yellow-400 font-medium">Iteration Logic</div>
</div>
<div class="mt-2 ml-6 text-gray-400">
<p>• Array traversal: forEach</p>
<p>• Type coercion: Number()</p>
<p>• Default quantity: 1</p>
</div>
</div>
</div>
</div>
<!-- Advanced Analysis & Metrics -->
<div class="code-editor p-4 glow">
<div class="flex items-center justify-between mb-4">
<div class="text-sm text-gray-400">Advanced Analysis & Metrics</div>
<div class="flex space-x-2">
<button onclick="showPerformance()" class="text-xs bg-gray-700/50 hover:bg-gray-600/70 text-gray-300 px-3 py-1 rounded-full">Performance</button>
<button onclick="showSecurity()" class="text-xs bg-gray-700/50 hover:bg-gray-600/70 text-gray-300 px-3 py-1 rounded-full">Security</button>
<button onclick="showBestPractices()" class="text-xs bg-gray-700/50 hover:bg-gray-600/70 text-gray-300 px-3 py-1 rounded-full">Best Practices</button>
</div>
</div>
<div id="analysisMetrics" class="text-gray-300 text-sm font-mono space-y-4">
<div class="bg-gray-800/50 p-3 rounded-lg">
<div class="flex items-center justify-between">
<div class="font-medium flex items-center">
<i data-feather="clock" class="text-blue-400 mr-2"></i>
<span>Time Complexity</span>
</div>
<span class="text-green-400 text-xs bg-green-400/10 px-2 py-0.5 rounded-full">O(n)</span>
</div>
<div class="mt-2 text-gray-400">
<p>• Linear time operation based on input size</p>
<p>• No nested loops or recursive calls</p>
</div>
</div>
<div class="bg-gray-800/50 p-3 rounded-lg">
<div class="flex items-center justify-between">
<div class="font-medium flex items-center">
<i data-feather="cpu" class="text-purple-400 mr-2"></i>
<span>Memory Usage</span>
</div>
<span class="text-yellow-400 text-xs bg-yellow-400/10 px-2 py-0.5 rounded-full">O(1)</span>
</div>
<div class="mt-2 text-gray-400">
<p>• Constant space complexity</p>
<p>• Only primitive variables used</p>
</div>
</div>
<div class="bg-gray-800/50 p-3 rounded-lg">
<div class="flex items-center justify-between">
<div class="font-medium flex items-center">
<i data-feather="alert-triangle" class="text-red-400 mr-2"></i>
<span>Potential Issues</span>
</div>
<span class="text-red-400 text-xs bg-red-400/10 px-2 py-0.5 rounded-full">2 found</span>
</div>
<div class="mt-2 text-gray-400">
<p>• Floating point precision (currency)</p>
<p>• No input sanitization</p>
</div>
</div>
</div>
</div>
</div>
</div>
<script>
function toggleComplexity() {
const toggle = document.getElementById('complexityToggle');
const explanation = document.getElementById('codeExplanation');
if (toggle.textContent === 'Show Advanced') {
toggle.textContent = 'Show Basic';
// Add advanced explanations
explanation.innerHTML += `
<div class="bg-gray-800/50 p-3 rounded-lg border-l-4 border-green-400">
<div class="flex items-center">
<i data-feather="code" class="text-green-400 mr-2"></i>
<div class="text-green-400 font-medium">Advanced Analysis</div>
</div>
<div class="mt-2 ml-6 text-gray-400">
<p>• Potential race conditions: None</p>
<p>• Memory leaks: Unlikely</p>
<p>• Side effects: Pure function</p>
</div>
</div>
`;
} else {
toggle.textContent = 'Show Advanced';
// Remove advanced explanations
const advanced = explanation.querySelector('.border-l-4.border-green-400');
if (advanced) advanced.remove();
}
feather.replace();
}
function showPerformance() {
const metrics = document.getElementById('analysisMetrics');
metrics.innerHTML = `
<div class="bg-gray-800/50 p-3 rounded-lg">
<div class="flex items-center justify-between">
<div class="font-medium flex items-center">
<i data-feather="clock" class="text-blue-400 mr-2"></i>
<span>Time Complexity</span>
</div>
<span class="text-green-400 text-xs bg-green-400/10 px-2 py-0.5 rounded-full">O(n)</span>
</div>
<div class="mt-2 text-gray-400">
<p>• Linear time operation based on input size</p>
<p>• No nested loops or recursive calls</p>
</div>
</div>
<div class="bg-gray-800/50 p-3 rounded-lg">
<div class="flex items-center justify-between">
<div class="font-medium flex items-center">
<i data-feather="cpu" class="text-purple-400 mr-2"></i>
<span>Memory Usage</span>
</div>
<span class="text-yellow-400 text-xs bg-yellow-400/10 px-2 py-0.5 rounded-full">O(1)</span>
</div>
<div class="mt-2 text-gray-400">
<p>• Constant space complexity</p>
<p>• Only primitive variables used</p>
</div>
</div>
`;
feather.replace();
}
function showSecurity() {
const metrics = document.getElementById('analysisMetrics');
metrics.innerHTML = `
<div class="bg-gray-800/50 p-3 rounded-lg">
<div class="flex items-center justify-between">
<div class="font-medium flex items-center">
<i data-feather="shield" class="text-red-400 mr-2"></i>
<span>Security Analysis</span>
</div>
<span class="text-red-400 text-xs bg-red-400/10 px-2 py-0.5 rounded-full">3 risks</span>
</div>
<div class="mt-2 text-gray-400">
<p>• No input sanitization</p>
<p>• Potential type coercion issues</p>
<p>• No rate limiting protection</p>
</div>
</div>
<div class="bg-gray-800/50 p-3 rounded-lg">
<div class="flex items-center justify-between">
<div class="font-medium flex items-center">
<i data-feather="lock" class="text-green-400 mr-2"></i>
<span>Recommendations</span>
</div>
</div>
<div class="mt-2 text-gray-400">
<p>• Add input validation for array elements</p>
<p>• Implement proper error handling</p>
<p>• Consider using TypeScript</p>
</div>
</div>
`;
feather.replace();
}
function showBestPractices() {
const metrics = document.getElementById('analysisMetrics');
metrics.innerHTML = `
<div class="bg-gray-800/50 p-3 rounded-lg">
<div class="flex items-center justify-between">
<div class="font-medium flex items-center">
<i data-feather="award" class="text-yellow-400 mr-2"></i>
<span>Code Quality</span>
</div>
<span class="text-green-400 text-xs bg-green-400/10 px-2 py-0.5 rounded-full">85%</span>
</div>
<div class="mt-2 text-gray-400">
<p>• Good function naming</p>
<p>• Clear error handling</p>
<p>• Missing JSDoc comments</p>
</div>
</div>
<div class="bg-gray-800/50 p-3 rounded-lg">
<div class="flex items-center justify-between">
<div class="font-medium flex items-center">
<i data-feather="zap" class="text-blue-400 mr-2"></i>
<span>Optimizations</span>
</div>
</div>
<div class="mt-2 text-gray-400">
<p>• Use reduce() instead of forEach</p>
<p>• Add floating point precision</p>
<p>• Consider early returns</p>
</div>
</div>
`;
feather.replace();
}
</script>
<!-- CTA Section -->
<div class="bg-gradient-to-r from-primary/20 to-secondary/20 py-16 px-4 sm:px-6 lg:px-8">
<div class="max-w-3xl mx-auto text-center">
<h2 class="text-3xl font-extrabold text-white sm:text-4xl">
Ready to revolutionize your coding workflow?
</h2>
<p class="mt-3 text-xl text-gray-300">
Join thousands of developers who are coding smarter with AI assistance.
</p>
<div class="mt-10 sm:flex sm:justify-center">
<div class="rounded-md shadow">
<a href="#" class="w-full flex items-center justify-center px-8 py-3 border border-transparent text-base font-medium rounded-md text-white bg-primary hover:bg-primary/90 md:py-4 md:text-lg md:px-10">
Start free trial
</a>
</div>
<div class="mt-3 rounded-md shadow sm:mt-0 sm:ml-3">
<a href="#" class="w-full flex items-center justify-center px-8 py-3 border border-transparent text-base font-medium rounded-md text-primary bg-white hover:bg-gray-50 md:py-4 md:text-lg md:px-10">
See pricing
</a>
</div>
</div>
</div>
</div>
<!-- Footer -->
<footer class="bg-gray-900/80 backdrop-blur-md border-t border-gray-800 mt-20">
<div class="max-w-7xl mx-auto py-12 px-4 sm:px-6 lg:px-8">
<div class="grid grid-cols-2 md:grid-cols-4 gap-8">
<div>
<h3 class="text-sm font-semibold text-gray-400 tracking-wider uppercase">Product</h3>
<ul class="mt-4 space-y-4">
<li><a href="#" class="text-base text-gray-300 hover:text-white">Features</a></li>
<li><a href="#" class="text-base text-gray-300 hover:text-white">Pricing</a></li>
<li><a href="#" class="text-base text-gray-300 hover:text-white">API</a></li>
<li><a href="#" class="text-base text-gray-300 hover:text-white">Integrations</a></li>
</ul>
</div>
<div>
<h3 class="text-sm font-semibold text-gray-400 tracking-wider uppercase">Resources</h3>
<ul class="mt-4 space-y-4">
<li><a href="#" class="text-base text-gray-300 hover:text-white">Documentation</a></li>
<li><a href="#" class="text-base text-gray-300 hover:text-white">Guides</a></li>
<li><a href="#" class="text-base text-gray-300 hover:text-white">Blog</a></li>
<li><a href="#" class="text-base text-gray-300 hover:text-white">Support</a></li>
</ul>
</div>
<div>
<h3 class="text-sm font-semibold text-gray-400 tracking-wider uppercase">Company</h3>
<ul class="mt-4 space-y-4">
<li><a href="#" class="text-base text-gray-300 hover:text-white">About</a></li
</body>
</html>