import { useState, useEffect, Suspense } from 'react'; import Spline from '@splinetool/react-spline'; import { BarChart, PieChart, Layout, Plus, Search, Filter, Calendar, Clock, Tag, CheckCircle2, XCircle, AlertCircle } from 'lucide-react'; // Add proper Spline component const SplineScene = () => { return ( ); }; const LoadingSpinner = () => (
); export default function TaskManagementSystem() { const [tasks, setTasks] = useState(() => { const savedTasks = localStorage.getItem('tasks'); return savedTasks ? JSON.parse(savedTasks) : [ { id: 1, title: 'Implement Authentication', status: 'In Progress', priority: 'High', category: 'Backend', dueDate: '2024-02-20', created: '2024-01-15' }, { id: 2, title: 'Design Dashboard Layout', status: 'Completed', priority: 'Medium', category: 'Frontend', dueDate: '2024-02-15', created: '2024-01-16' }, { id: 3, title: 'API Integration', status: 'Pending', priority: 'High', category: 'Backend', dueDate: '2024-02-25', created: '2024-01-17' }, ]; }); const [filter, setFilter] = useState({ status: 'all', priority: 'all', category: 'all' }); const [searchQuery, setSearchQuery] = useState(''); const [newTask, setNewTask] = useState({ title: '', status: 'Pending', priority: 'Medium', category: 'Frontend', dueDate: '' }); const [activeTab, setActiveTab] = useState('tasks'); useEffect(() => { localStorage.setItem('tasks', JSON.stringify(tasks)); }, [tasks]); const addTask = (e) => { e.preventDefault(); if (!newTask.title.trim() || !newTask.dueDate) return; setTasks(prev => [...prev, { id: Date.now(), ...newTask, created: new Date().toISOString().split('T')[0] }]); setNewTask({ title: '', status: 'Pending', priority: 'Medium', category: 'Frontend', dueDate: '' }); }; const filteredTasks = tasks.filter(task => { const matchesSearch = task.title.toLowerCase().includes(searchQuery.toLowerCase()); const matchesStatus = filter.status === 'all' || task.status === filter.status; const matchesPriority = filter.priority === 'all' || task.priority === filter.priority; const matchesCategory = filter.category === 'all' || task.category === filter.category; return matchesSearch && matchesStatus && matchesPriority && matchesCategory; }); const getAnalytics = () => { const statusCount = tasks.reduce((acc, task) => { acc[task.status] = (acc[task.status] || 0) + 1; return acc; }, {}); const priorityCount = tasks.reduce((acc, task) => { acc[task.priority] = (acc[task.priority] || 0) + 1; return acc; }, {}); return { statusCount, priorityCount }; }; const updateTaskStatus = (taskId, newStatus) => { setTasks(prev => prev.map(task => task.id === taskId ? { ...task, status: newStatus } : task )); }; return (
{/* Hero Section with fixed 3D Animation */}
}>

Task Management System

Organize, track, and visualize your projects with our powerful task management solution

{/* Main Content */}
{/* Glass-morphism styled tabs */}
{activeTab === 'tasks' ? (
{/* Task Creation Form - Enhanced with glass morphism */}
setNewTask(prev => ({ ...prev, title: e.target.value }))} className="border border-gray-200 rounded-lg px-4 py-2 bg-white/50 backdrop-blur-sm focus:ring-2 focus:ring-blue-500 focus:border-transparent transition-all" /> setNewTask(prev => ({ ...prev, dueDate: e.target.value }))} className="border rounded-lg px-4 py-2" />
{/* Filters and Search */}
setSearchQuery(e.target.value)} className="pl-10 pr-4 py-2 border rounded-lg w-full" />
{/* Task Cards - Enhanced with modern design */}
{filteredTasks.map(task => (

{task.title}

{task.priority} {task.category} Due: {task.dueDate} Created: {task.created}
))}
) : ( // Analytics View - Enhanced with 3D elements

Task Status Distribution

{Object.entries(getAnalytics().statusCount).map(([status, count]) => (
{status}
{count}
))}

Priority Distribution

{Object.entries(getAnalytics().priorityCount).map(([priority, count]) => (
{priority}
{count}
))}
)}
); }