Education
IT System Status Card - Technical Infrastructure
Monitor school IT systems and technology infrastructure status. Track system uptime and technical support metrics.
IT System Status Card
The IT System Status Card displays the status of key IT systems including LMS, WiFi, and email servers with status indicators.
Preview
Installation
npx shadcn@latest add https://vectormotion.vercel.app/registry/it-system-status-card.jsonIT System Status Card
'use client'import React from 'react';import { Server } from 'lucide-react';import { motion } from 'motion/react';import { clsx, type ClassValue } from "clsx";import { twMerge } from "tailwind-merge";import { ResponsiveContainer, BarChart, Bar, Tooltip, XAxis, Cell, YAxis } from 'recharts';function cn(...inputs: ClassValue[]) { return twMerge(clsx(inputs));}interface SystemData { system: string; uptime: number; color: string; [key: string]: any;}interface ItSystemStatusCardProps { className?: string; title?: string; subtitle?: string; data?: SystemData[];}const DEFAULT_DATA: SystemData[] = [ { system: 'LMS', uptime: 99.9, color: '#10b981' }, { system: 'WiFi', uptime: 98.5, color: '#f59e0b' }, { system: 'Email', uptime: 100, color: '#10b981' },];const DEFAULT_TITLE = "IT Systems";const DEFAULT_SUBTITLE = "Uptime Status";export const ItSystemStatusCard: React.FC<ItSystemStatusCardProps> = ({ className = "", title = DEFAULT_TITLE, subtitle = DEFAULT_SUBTITLE, data = DEFAULT_DATA,}) => { return ( <motion.div initial={{ opacity: 0, y: 20 }} animate={{ opacity: 1, y: 0 }} transition={{ duration: 0.5, delay: 0.3 }} className={cn( "relative overflow-hidden rounded-2xl border border-border bg-card text-card-foreground shadow-sm transition-all hover:border-primary/50 hover:shadow-md flex flex-col h-full", className )} > <div className="p-5 flex flex-col h-full relative z-10"> <div className="mb-4 flex items-start justify-between"> <div> <h3 className="font-bold text-lg text-foreground"> {title} </h3> <p className="text-sm text-muted-foreground font-medium"> {subtitle} </p> </div> <div className="rounded-xl bg-blue-500/10 p-2.5 text-blue-500 dark:text-blue-400 flex items-center justify-center ring-1 ring-blue-100 dark:ring-blue-800"> <Server className="h-5 w-5" /> </div> </div> <div className="flex-1 w-full min-h-[100px]"> <ResponsiveContainer width="100%" height="100%"> <BarChart data={data} layout="vertical" margin={{ top: 5, right: 30, left: 40, bottom: 5 }} barSize={16}> <XAxis type="number" hide domain={[90, 100]} /> <YAxis type="category" dataKey="system" tick={{ fontSize: 10, fill: '#71717a' }} width={40} axisLine={false} tickLine={false} /> <Tooltip cursor={{ fill: 'transparent' }} content={({ active, payload }) => { if (active && payload && payload.length) { return ( <div className="rounded-lg border border-zinc-200 dark:border-zinc-700 bg-white dark:bg-zinc-800 p-2 shadow-sm text-xs"> <span className="font-bold">{payload[0].payload.system}:</span> {payload[0].value}% </div> ); } return null; }} /> <Bar dataKey="uptime" radius={[0, 4, 4, 0]}> {data.map((entry, index) => ( <Cell key={`cell-${index}`} fill={entry.color} /> ))} </Bar> </BarChart> </ResponsiveContainer> </div> <div className="absolute -bottom-4 -right-4 z-0 opacity-5 pointer-events-none"> <Server className="w-32 h-32 text-blue-500" /> </div> </div> </motion.div> );};Usage
This component helps IT administrators monitor the health and status of critical educational technology systems.
Prop
Type