diff --git a/attached_assets/generated_images/abstract_holographic_world_map_data_visualization.png b/attached_assets/generated_images/abstract_holographic_world_map_data_visualization.png new file mode 100644 index 0000000..c14d58b Binary files /dev/null and b/attached_assets/generated_images/abstract_holographic_world_map_data_visualization.png differ diff --git a/attached_assets/generated_images/dark_digital_circuit_board_background.png b/attached_assets/generated_images/dark_digital_circuit_board_background.png new file mode 100644 index 0000000..01ec2d7 Binary files /dev/null and b/attached_assets/generated_images/dark_digital_circuit_board_background.png differ diff --git a/client/src/App.tsx b/client/src/App.tsx index 15fa6de..91cbd05 100644 --- a/client/src/App.tsx +++ b/client/src/App.tsx @@ -6,6 +6,8 @@ import NotFound from "@/pages/not-found"; import Home from "@/pages/home"; import Passport from "@/pages/passport"; import Terminal from "@/pages/terminal"; +import Dashboard from "@/pages/dashboard"; +import Curriculum from "@/pages/curriculum"; function Router() { return ( @@ -13,6 +15,8 @@ function Router() { + + ); diff --git a/client/src/pages/curriculum.tsx b/client/src/pages/curriculum.tsx new file mode 100644 index 0000000..32fe2f1 --- /dev/null +++ b/client/src/pages/curriculum.tsx @@ -0,0 +1,141 @@ +import { motion } from "framer-motion"; +import { Link } from "wouter"; +import { ArrowLeft, Lock, CheckCircle2, Circle } from "lucide-react"; +import circuitBg from '@assets/generated_images/dark_digital_circuit_board_background.png'; + +const TECH_TREE = [ + { + id: "foundation", + title: "The Foundation", + nodes: [ + { id: 1, name: "Data Ethics", status: "completed" }, + { id: 2, name: "Logic Gates", status: "completed" }, + { id: 3, name: "System Architecture", status: "completed" }, + ] + }, + { + id: "verse", + title: "Verse Mastery", + nodes: [ + { id: 4, name: "Input Sanitization", status: "completed" }, + { id: 5, name: "Concurrency", status: "active" }, + { id: 6, name: "Spatial Logic", status: "locked" }, + ] + }, + { + id: "security", + title: "Aegis Protocols", + nodes: [ + { id: 7, name: "Threat Detection", status: "locked" }, + { id: 8, name: "Kill-Gate Implementation", status: "locked" }, + { id: 9, name: "Zero Trust Models", status: "locked" }, + ] + } +]; + +export default function Curriculum() { + return ( +
+ + {/* Background */} +
+ +
+ + {/* Header */} +
+ + + +
+

+ Codex Tech Tree +

+

+ Current Rank: Architect (Gold) +

+
+
+ + {/* Tree Container */} +
+ + {/* Connecting Line (Horizontal on Desktop) */} +
+ + {TECH_TREE.map((section, index) => ( +
+ + {/* Section Title */} +
+

{section.title}

+
Module 0{index + 1}
+
+ + {/* Nodes */} +
+ {section.nodes.map((node) => ( + + ))} +
+ + {/* Vertical Line for Section */} +
+
+ ))} + +
+ +
+ + + +
+ +
+
+ ); +} + +function Node({ data }: { data: { name: string, status: string } }) { + const isCompleted = data.status === "completed"; + const isActive = data.status === "active"; + const isLocked = data.status === "locked"; + + return ( + +
+ {data.name} + {isCompleted && } + {isActive &&
} + {isLocked && } +
+ + {/* Progress Bar for Active */} + {isActive && ( +
+ +
+ )} + + ) +} diff --git a/client/src/pages/dashboard.tsx b/client/src/pages/dashboard.tsx new file mode 100644 index 0000000..887c1fd --- /dev/null +++ b/client/src/pages/dashboard.tsx @@ -0,0 +1,150 @@ +import { motion } from "framer-motion"; +import { Link } from "wouter"; +import { ArrowLeft, Users, ShieldAlert, Globe, Activity, TrendingUp, Target } from "lucide-react"; +import { Bar, BarChart, ResponsiveContainer, XAxis, YAxis, Tooltip, LineChart, Line } from "recharts"; +import mapBg from '@assets/generated_images/abstract_holographic_world_map_data_visualization.png'; + +const MOCK_DATA = [ + { name: "Mon", value: 400 }, + { name: "Tue", value: 300 }, + { name: "Wed", value: 550 }, + { name: "Thu", value: 450 }, + { name: "Fri", value: 700 }, + { name: "Sat", value: 600 }, + { name: "Sun", value: 800 }, +]; + +const THREAT_DATA = [ + { name: "00:00", value: 12 }, + { name: "04:00", value: 8 }, + { name: "08:00", value: 45 }, + { name: "12:00", value: 120 }, + { name: "16:00", value: 90 }, + { name: "20:00", value: 35 }, +]; + +export default function Dashboard() { + return ( +
+ + {/* Background Map */} +
+ +
+ + {/* Header */} +
+
+ + + +

+ + Axiom Command +

+

Global Ecosystem Status // Real-time Telemetry

+
+ +
+
+
System Status
+
+ OPERATIONAL +
+
+
+
+ + {/* KPI Grid */} +
+ } /> + } /> + } /> + } /> +
+ + {/* Charts Section */} +
+ + {/* Map / Main Viz (Placeholder for now, using background) */} +
+
+

+ Global Deployment Heatmap +

+ + {/* Fake Map Markers */} +
+
+
+ +
+
+ +
+
+ + {/* Grid Overlay */} +
+
+
+ + {/* Side Charts */} +
+
+

Recruitment Velocity

+
+ + + + + +
+
+ +
+

Threat Vectors (24h)

+
+ + + + + + +
+
+
+ +
+ +
+
+ ); +} + +function Card({ title, value, change, icon }: { title: string, value: string, change: string, icon: React.ReactNode }) { + return ( + +
+
{title}
+ {icon} +
+
+
{value}
+
{change}
+
+
+ ) +} diff --git a/client/src/pages/home.tsx b/client/src/pages/home.tsx index e106f16..d4534aa 100644 --- a/client/src/pages/home.tsx +++ b/client/src/pages/home.tsx @@ -1,6 +1,6 @@ import { motion } from "framer-motion"; import { Link } from "wouter"; -import { Shield, FileCode, Terminal as TerminalIcon, ChevronRight } from "lucide-react"; +import { Shield, FileCode, Terminal as TerminalIcon, ChevronRight, BarChart3, Network } from "lucide-react"; import gridBg from '@assets/generated_images/dark_subtle_digital_grid_texture.png'; export default function Home() { @@ -34,59 +34,67 @@ export default function Home() { {/* The Trinity Cards */}
- {/* Axiom */} - -
- -

Axiom

-

- The Foundation. The Law. We define the rules of engagement for the digital frontier. -

-
- Protocol: Active -
- - - {/* Codex (Link to Passport) */} - + {/* Axiom -> Dashboard */} + -
- -

Codex

+
+
+ + +
+

Axiom

- The Standard. Verification of talent not by degree, but by mastery of the code. + The Foundation. View the global command center, active architect metrics, and ecosystem health.

-
- View Passport +
+ Open Dashboard
- {/* Aegis (Link to Terminal) */} + {/* Codex -> Curriculum (with Passport link inside) */} + + +
+
+ + +
+

Codex

+

+ The Standard. Explore the skill tree, mastery nodes, and view your Architect Credential. +

+
+ View Tech Tree +
+ + + + {/* Aegis -> Terminal */}

Aegis

- The Shield. Real-time intervention and security protocols for the build environment. + The Shield. Enter the secure build environment. New: Live Threat Simulation available.

-
+
Launch Terminal
diff --git a/client/src/pages/terminal.tsx b/client/src/pages/terminal.tsx index f4cd680..9c5b054 100644 --- a/client/src/pages/terminal.tsx +++ b/client/src/pages/terminal.tsx @@ -1,7 +1,7 @@ -import { useState, useEffect } from "react"; +import { useState, useEffect, useRef } from "react"; import { motion, AnimatePresence } from "framer-motion"; import { Link } from "wouter"; -import { ArrowLeft, AlertTriangle, Shield, Activity, Lock, Terminal as TerminalIcon, FileCode } from "lucide-react"; +import { ArrowLeft, AlertTriangle, Shield, Activity, Lock, Terminal as TerminalIcon, FileCode, Zap, AlertOctagon, Skull } from "lucide-react"; export default function Terminal() { const [logs, setLogs] = useState([ @@ -12,29 +12,71 @@ export default function Terminal() { "> SHADOW LOGGING: ....................... [ RECORDING ]" ]); - const [showError, setShowError] = useState(false); + const [mode, setMode] = useState<"normal" | "attack" | "quarantined">("normal"); + const logsEndRef = useRef(null); + + const scrollToBottom = () => { + logsEndRef.current?.scrollIntoView({ behavior: "smooth" }); + }; useEffect(() => { - // Simulate typing/loading effect - const timer = setTimeout(() => { - setLogs(prev => [...prev, "! WARNING: Line 45 detects potential phone number input."]); - setShowError(true); - }, 2000); + scrollToBottom(); + }, [logs]); - const timer2 = setTimeout(() => { - if(showError) { - setLogs(prev => [...prev, "> AEGIS INTERVENTION: Input blocked."]); + const triggerAttack = () => { + setMode("attack"); + setLogs(prev => [...prev, "", "!!! UNKNOWN SIGNAL DETECTED !!!", "> ANALYZING PACKET...", "> SOURCE: EXTERNAL IP"]); + + // Simulate rapid attack logs + let count = 0; + const interval = setInterval(() => { + count++; + if (count < 8) { + const threats = [ + "! MALICIOUS PAYLOAD: SQL INJECTION ATTEMPT", + "! UNAUTHORIZED PORT ACCESS: 8080", + "! PII EXFILTRATION DETECTED", + "! MEMORY OVERFLOW IMMINENT" + ]; + setLogs(prev => [...prev, threats[Math.floor(Math.random() * threats.length)]]); + } else { + clearInterval(interval); + setTimeout(() => { + setMode("quarantined"); + setLogs(prev => [ + ...prev, + "", + "> AEGIS INTERVENTION: PROTOCOL OMEGA", + "> THREAT ISOLATED.", + "> CONNECTION SEVERED.", + "> SYSTEM RESTORED TO SAFE STATE." + ]); + }, 1000); } - }, 3500); + }, 300); + }; - return () => { clearTimeout(timer); clearTimeout(timer2); }; - }, [showError]); + const resetSystem = () => { + setMode("normal"); + setLogs([ + "> SYSTEM REBOOT...", + "> AEGIS CORE: ........................... [ ACTIVE ]", + "> READY." + ]); + }; return ( -
+
{/* Top Bar (IDE Style) */} -
+
- - AeThex Terminal v4.2 - [ STATUS: ONLINE ] + + + {mode === "attack" ? "AEGIS ALERT // UNDER ATTACK" : "AeThex Terminal v4.2"} + + {mode === "normal" && [ STATUS: ONLINE ]} + {mode === "attack" && [ STATUS: CRITICAL ]} + {mode === "quarantined" && [ STATUS: SECURE ]}
-
-
- PROJECT: - Project_Titan -
-
- ENGINE: - Fortnite UEFN (Verse) -
+ + {/* Simulation Controls */} +
+ {mode === "normal" && ( + + )} + {mode === "quarantined" && ( + + )}
-
+
+ {/* Red Alert Overlay */} + + {mode === "attack" && ( + +
+
+
+ Threat Detected +
+ + )} + + {/* Sidebar */} -
+