feat: setup admin JSON generation and pdf viewer for free plan DPPs
This commit is contained in:
79
src/app/dashboard/ai-coach/readiness/page.tsx
Normal file
79
src/app/dashboard/ai-coach/readiness/page.tsx
Normal file
@@ -0,0 +1,79 @@
|
||||
"use client"
|
||||
|
||||
import { ReadinessGauge } from "@/components/AI/ReadinessGauge"
|
||||
import { Card, CardContent } from "@/components/ui/card"
|
||||
import { Button } from "@/components/ui/button"
|
||||
import { Gauge, ArrowLeft, Target, Award, ShieldAlert, CheckCircle2 } from "lucide-react"
|
||||
import Link from "next/link"
|
||||
|
||||
export default function ReadinessPage() {
|
||||
return (
|
||||
<div className="p-6 md:p-8 max-w-7xl mx-auto space-y-8 animate-in fade-in duration-500 min-h-screen">
|
||||
{/* Navigation Header */}
|
||||
<div className="border-b border-border/50 pb-6">
|
||||
<h1 className="text-3xl md:text-5xl font-black tracking-tight flex items-center gap-3">
|
||||
<Gauge className="text-[#00F0FF]" size={36} />
|
||||
Exam Readiness Analytics
|
||||
</h1>
|
||||
<p className="text-muted-foreground text-base md:text-lg mt-1 font-medium max-w-3xl">
|
||||
Real-time algorithmic prediction of your readiness percentage for JEE & NEET based on speed, accuracy, and test history.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div className="grid grid-cols-1 lg:grid-cols-3 gap-8">
|
||||
<div className="lg:col-span-2 space-y-8">
|
||||
<Card className="p-8 bg-secondary/10 border-border/60 rounded-3xl">
|
||||
<h2 className="text-2xl font-extrabold tracking-tight mb-6 flex items-center gap-2">
|
||||
<Award className="text-amber-400" size={24} /> Overall Readiness Index
|
||||
</h2>
|
||||
<ReadinessGauge />
|
||||
</Card>
|
||||
|
||||
{/* Subject Confidence Breakdown */}
|
||||
<Card className="p-6 bg-secondary/10 border-border/60 rounded-3xl space-y-6">
|
||||
<h3 className="text-xl font-extrabold tracking-tight">Subject Confidence Matrix</h3>
|
||||
<div className="space-y-4">
|
||||
{[
|
||||
{ subject: "Biology / Maths", score: 82, color: "bg-[#00F0FF]", status: "High Readiness" },
|
||||
{ subject: "Chemistry", score: 74, color: "bg-amber-400", status: "Moderate Readiness" },
|
||||
{ subject: "Physics", score: 61, color: "bg-red-400", status: "Needs Intensive Drill" },
|
||||
].map((sub) => (
|
||||
<div key={sub.subject} className="space-y-2">
|
||||
<div className="flex justify-between items-center text-sm font-bold">
|
||||
<span>{sub.subject}</span>
|
||||
<span className="text-muted-foreground">{sub.score}% • {sub.status}</span>
|
||||
</div>
|
||||
<div className="h-3 w-full bg-secondary rounded-full overflow-hidden">
|
||||
<div className={`h-full ${sub.color}`} style={{ width: `${sub.score}%` }} />
|
||||
</div>
|
||||
</div>
|
||||
))}
|
||||
</div>
|
||||
</Card>
|
||||
</div>
|
||||
|
||||
<div className="space-y-6">
|
||||
<Card className="p-6 bg-gradient-to-br from-amber-500/10 via-secondary/20 to-background border border-amber-500/30 rounded-3xl space-y-4">
|
||||
<h3 className="text-xl font-black tracking-tight text-amber-400 flex items-center gap-2">
|
||||
<ShieldAlert size={20} /> Readiness Boosters
|
||||
</h3>
|
||||
<ul className="space-y-3 text-sm font-medium text-muted-foreground">
|
||||
<li className="flex items-start gap-2">
|
||||
<CheckCircle2 size={16} className="text-amber-400 shrink-0 mt-0.5" />
|
||||
<span>Complete 2 Full-Length Mock Tests this week.</span>
|
||||
</li>
|
||||
<li className="flex items-start gap-2">
|
||||
<CheckCircle2 size={16} className="text-amber-400 shrink-0 mt-0.5" />
|
||||
<span>Clear 15 pending errors in Physics error queue.</span>
|
||||
</li>
|
||||
<li className="flex items-start gap-2">
|
||||
<CheckCircle2 size={16} className="text-amber-400 shrink-0 mt-0.5" />
|
||||
<span>Maintain a 7+ day study streak.</span>
|
||||
</li>
|
||||
</ul>
|
||||
</Card>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
Reference in New Issue
Block a user