Vector Motion
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.json
IT 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