import React, { useState } from 'react'; import { Table, Progress, Tag, Avatar, Button, DatePicker, Select } from 'antd'; import { Star, Edit, Trash2, Plus } from 'feather-icons-react'; import dayjs from 'dayjs'; const { Option } = Select; const { RangePicker } = DatePicker; const ProjectTracker = () => { const [selectedRowKeys, setSelectedRowKeys] = useState([]); const [filterStatus, setFilterStatus] = useState('All Status'); const [filterManager, setFilterManager] = useState('All Managers'); const [filterPriority, setFilterPriority] = useState('All Priority'); const [sortBy, setSortBy] = useState('Last 7 Days'); const [dateRange, setDateRange] = useState([ dayjs().subtract(7, 'day'), dayjs() ]); // Sample project data const projectData = [ { key: '1', id: 1, projectName: 'E-commerce Website Development', category: ['Web Development'], categoryColor: 'blue', manager: [ { name: 'John Smith', avatar: 'assets/img/profiles/avatar-01.jpg' }, { name: 'Sarah Johnson', avatar: 'assets/img/profiles/avatar-02.jpg' } ], startDate: '01 Jan 2024', progress: 85, deadline: '15 Mar 2024', status: 'In Progress', statusColor: 'warning', priority: 'high', starred: true, budget: '$45,000', client: 'TechCorp Inc.' }, { key: '2', id: 2, projectName: 'Mobile App UI/UX Design', category: ['Design'], categoryColor: 'purple', manager: [ { name: 'Mike Wilson', avatar: 'assets/img/profiles/avatar-03.jpg' }, { name: 'Lisa Chen', avatar: 'assets/img/profiles/avatar-04.jpg' } ], startDate: '15 Feb 2024', progress: 60, deadline: '30 Apr 2024', status: 'In Progress', statusColor: 'warning', priority: 'medium', starred: false, budget: '$28,000', client: 'StartupXYZ' }, { key: '3', id: 3, projectName: 'Database Migration Project', category: ['Backend'], categoryColor: 'green', manager: [ { name: 'David Brown', avatar: 'assets/img/profiles/avatar-05.jpg' }, { name: 'Emma Davis', avatar: 'assets/img/profiles/avatar-06.jpg' } ], startDate: '10 Mar 2024', progress: 100, deadline: '25 Mar 2024', status: 'Completed', statusColor: 'success', priority: 'high', starred: true, budget: '$35,000', client: 'DataFlow Ltd.' }, { key: '4', id: 4, projectName: 'Marketing Campaign Platform', category: ['Marketing'], categoryColor: 'orange', manager: [ { name: 'Tom Anderson', avatar: 'assets/img/profiles/avatar-07.jpg' }, { name: 'Jessica White', avatar: 'assets/img/profiles/avatar-08.jpg' } ], startDate: '20 Mar 2024', progress: 40, deadline: '15 Jun 2024', status: 'In Progress', statusColor: 'warning', priority: 'medium', starred: false, budget: '$52,000', client: 'MarketPro Agency' }, { key: '5', id: 5, projectName: 'Cloud Infrastructure Setup', category: ['DevOps'], categoryColor: 'cyan', manager: [ { name: 'Alex Rodriguez', avatar: 'assets/img/profiles/avatar-09.jpg' }, { name: 'Maria Garcia', avatar: 'assets/img/profiles/avatar-10.jpg' } ], startDate: '05 Apr 2024', progress: 75, deadline: '20 May 2024', status: 'In Progress', statusColor: 'warning', priority: 'high', starred: true, budget: '$38,000', client: 'CloudTech Solutions' }, { key: '6', id: 6, projectName: 'AI Chatbot Development', category: ['AI/ML'], categoryColor: 'red', manager: [ { name: 'Robert Lee', avatar: 'assets/img/profiles/avatar-11.jpg' }, { name: 'Sophie Turner', avatar: 'assets/img/profiles/avatar-12.jpg' } ], startDate: '12 Apr 2024', progress: 30, deadline: '30 Jul 2024', status: 'Planning', statusColor: 'default', priority: 'low', starred: false, budget: '$65,000', client: 'AI Innovations' }, { key: '7', id: 7, projectName: 'Security Audit & Compliance', category: ['Security'], categoryColor: 'red', manager: [ { name: 'Michael Brown', avatar: 'assets/img/profiles/avatar-13.jpg' }, { name: 'Rachel Davis', avatar: 'assets/img/profiles/avatar-14.jpg' } ], startDate: '25 Apr 2024', progress: 90, deadline: '10 May 2024', status: 'Review', statusColor: 'processing', priority: 'high', starred: true, budget: '$42,000', client: 'SecureBank Corp' }, { key: '8', id: 8, projectName: 'Content Management System', category: ['Web Development'], categoryColor: 'blue', manager: [ { name: 'Daniel Wilson', avatar: 'assets/img/profiles/avatar-15.jpg' }, { name: 'Amanda Johnson', avatar: 'assets/img/profiles/avatar-16.jpg' } ], startDate: '01 May 2024', progress: 55, deadline: '15 Aug 2024', status: 'In Progress', statusColor: 'warning', priority: 'medium', starred: false, budget: '$48,000', client: 'ContentHub Media' } ]; // Table columns configuration const columns = [ { title: '', dataIndex: 'starred', width: 50, render: (starred) => ( ) }, { title: '', dataIndex: 'priority', width: 20, render: (priority) => (
) }, { title: 'Project Name', dataIndex: 'projectName', key: 'projectName', render: (text) => ( {text} ) }, { title: 'Category', dataIndex: 'category', key: 'category', render: (category, record) => ( {category[0]} ) }, { title: 'Project Manager', dataIndex: 'manager', key: 'manager', render: (managers) => ( {managers.map((manager, index) => ( ))} ) }, { title: 'Start Date', dataIndex: 'startDate', key: 'startDate', render: (date) => ( {date} ) }, { title: 'Progress', dataIndex: 'progress', key: 'progress', render: (progress) => (
70 ? '#17a2b8' : progress > 40 ? '#ffc107' : '#dc3545'} showInfo={false} /> Progress: {progress}%
) }, { title: 'Deadline', dataIndex: 'deadline', key: 'deadline', render: (date) => ( {date} ) }, { title: 'Status', dataIndex: 'status', key: 'status', render: (status, record) => ( {status} ) }, { title: 'Budget', dataIndex: 'budget', key: 'budget', render: (budget) => ( {budget} ) }, { title: '', key: 'actions', width: 100, render: () => (
) } ]; // Row selection configuration const rowSelection = { selectedRowKeys, onChange: (selectedKeys) => { setSelectedRowKeys(selectedKeys); }, getCheckboxProps: (record) => ({ name: record.projectName, }), }; return (
{/* Header */}

Project Tracker

Manage Your Projects
{/* Project Lists */}
Project Lists Active Projects
`Row Per Page: ${range[1] - range[0] + 1} Entries | Showing ${range[0]} to ${range[1]} of ${total} entries` }} /> ); }; export default ProjectTracker;