AeThex-OS/temp-forge-extract/aethex-forge-main/client/components/admin/AdminRoadmap.tsx
MrPiglr b3c308b2c8 Add functional marketplace modules, bottom nav bar, root terminal, arcade games
- ModuleManager: Central tracking for installed marketplace modules
- DataAnalyzerWidget: Real-time CPU/RAM/Battery/Storage widget (unlocked by Data Analyzer module)
- BottomNavBar: Navigation bar for Projects/Chat/Marketplace/Settings
- RootShell: Real root command execution utility
- TerminalActivity: Full root shell with neofetch, sysinfo, real Linux commands
- Terminal Pro module: Adds aliases (ll, la, h), command history
- ArcadeActivity + SnakeGame: Pixel Arcade module unlocks retro games
- fade_in/fade_out animations for smooth transitions
2026-02-18 22:03:50 -07:00

137 lines
3.9 KiB
TypeScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import {
Card,
CardContent,
CardDescription,
CardHeader,
CardTitle,
} from "@/components/ui/card";
import { Badge } from "@/components/ui/badge";
import { Button } from "@/components/ui/button";
import {
CheckCircle2,
ExternalLink,
Flag,
ListChecks,
Rocket,
Sparkles,
Target,
} from "lucide-react";
const linearProjectUrl =
"https://linear.app/duo-simulators/project/aethex-roadmap-8600b796e8ad";
const phases: {
title: string;
timeframe: string;
items: string[];
icon: any;
}[] = [
{
title: "Access & IA",
timeframe: "Now — 02 weeks",
icon: Target,
items: [
"Finalize realm gating across routes (RequireAccess + redirects)",
"Unify navigation and top-level IA labels",
"Admin: mentorship request status/actions and metrics",
"Community IA cleanup incl. Featured Studios curation",
],
},
{
title: "Community & Content",
timeframe: "Month 1",
icon: Sparkles,
items: [
"Mentor directory polish: filters, profiles, expertise tags",
"Featured Studios: persistent API + management tools",
"Blog: editor improvements, SEO (meta/OG), list pages",
"UI tokens/style unification across pages",
],
},
{
title: "Growth & Ops",
timeframe: "Month 2",
icon: Rocket,
items: [
"Opportunities tooling: applicant review, statuses, filters",
"Engage/pricing funnels: plans and conversion tracking",
"Observability & Sentry integration; surface Status metrics",
"Production deploy pipeline (Vercel)",
],
},
{
title: "Collaboration & Shipping",
timeframe: "Month 3",
icon: Flag,
items: [
"Teams & projects enhancements; notifications",
"Advanced mentoring flows: availability, pricing, scheduling",
"Public roadmap page linking to Linear; changelog integration",
],
},
];
export default function AdminRoadmap() {
return (
<div className="space-y-6">
<Card className="bg-card/60 border-border/40 backdrop-blur">
<CardHeader>
<div className="flex items-center gap-2">
<ListChecks className="h-5 w-5 text-aethex-300" />
<CardTitle>Roadmap</CardTitle>
</div>
<CardDescription>
High-level delivery plan. Track status in Linear or refine here.
</CardDescription>
</CardHeader>
<CardContent className="flex flex-wrap gap-2">
<Badge
variant="outline"
className="border-emerald-500/40 text-emerald-300"
>
All systems focused
</Badge>
<Button asChild size="sm">
<a
href={linearProjectUrl}
target="_blank"
rel="noreferrer noopener"
>
Open Linear project <ExternalLink className="ml-2 h-4 w-4" />
</a>
</Button>
</CardContent>
</Card>
<div className="grid gap-6 md:grid-cols-2">
{phases.map((p) => {
const Icon = p.icon;
return (
<Card
key={p.title}
className="bg-card/60 border-border/40 backdrop-blur"
>
<CardHeader>
<div className="flex items-center gap-2">
<Icon className="h-5 w-5 text-aethex-300" />
<CardTitle>{p.title}</CardTitle>
</div>
<CardDescription>{p.timeframe}</CardDescription>
</CardHeader>
<CardContent>
<ul className="space-y-2 text-sm text-muted-foreground">
{p.items.map((it) => (
<li key={it} className="flex items-start gap-2">
<CheckCircle2 className="mt-0.5 h-4 w-4 text-aethex-300" />
<span>{it}</span>
</li>
))}
</ul>
</CardContent>
</Card>
);
})}
</div>
</div>
);
}