اپلیکیشن مدیریت وظایف

اپلیکیشن مدیریت وظایف

این پروژه یک اپلیکیشن مدیریت وظایف با قابلیت‌های پیشرفته است که با استفاده از React، Redux و Firebase پیاده‌سازی شده است.

ReactReduxFirebaseTailwind CSSReact DnDReact QueryPWA

نمای لیست وظایف

نمای لیست وظایف

نمای کانبان

نمای کانبان

ویژگی‌ها

  • ایجاد، ویرایش و حذف وظایف
  • دسته‌بندی وظایف با برچسب‌ها
  • تعیین اولویت و تاریخ سررسید
  • فیلتر و جستجوی وظایف
  • نمایش وظایف به صورت لیست یا کانبان
  • یادآوری وظایف با نوتیفیکیشن
  • همگام‌سازی وظایف بین دستگاه‌های مختلف
  • طراحی ریسپانسیو برای تمام دستگاه‌ها

جزئیات فنی

این اپلیکیشن با استفاده از React و Redux پیاده‌سازی شده است. برای ذخیره‌سازی داده‌ها از Firebase Firestore استفاده شده و برای احراز هویت کاربران از Firebase Authentication بهره گرفته‌ایم. همچنین برای قابلیت کشیدن و رها کردن (Drag and Drop) در نمای کانبان از کتابخانه React DnD استفاده شده است.

این اپلیکیشن به صورت PWA (Progressive Web App) پیاده‌سازی شده و قابلیت نصب روی دستگاه‌های مختلف را دارد. همچنین به صورت کامل ریسپانسیو طراحی شده و در تمام دستگاه‌ها به خوبی نمایش داده می‌شود.

کد نمونه

// نمونه کد برای کامپوننت TaskList
import { useState, useEffect } from 'react';
import { useSelector, useDispatch } from 'react-redux';
import { fetchTasks, updateTask, deleteTask } from '@/redux/tasksSlice';
import TaskItem from './TaskItem';
import TaskFilter from './TaskFilter';

export default function TaskList() {
  const [filter, setFilter] = useState('all');
  const [searchTerm, setSearchTerm] = useState('');
  const dispatch = useDispatch();
  const { tasks, loading, error } = useSelector(state => state.tasks);
  
  useEffect(() => {
    dispatch(fetchTasks());
  }, [dispatch]);
  
  const handleStatusChange = (taskId, newStatus) => {
    dispatch(updateTask({ id: taskId, status: newStatus }));
  };
  
  const handleDelete = (taskId) => {
    dispatch(deleteTask(taskId));
  };
  
  const filteredTasks = tasks.filter(task => {
    // فیلتر بر اساس وضعیت
    if (filter !== 'all' && task.status !== filter) return false;
    
    // فیلتر بر اساس جستجو
    if (searchTerm && !task.title.toLowerCase().includes(searchTerm.toLowerCase())) return false;
    
    return true;
  });
  
  if (loading) return <div>در حال بارگذاری...</div>;
  if (error) return <div>خطا در بارگذاری وظایف</div>;
  
  return (
    <div>
      <TaskFilter 
        filter={filter} 
        setFilter={setFilter}
        searchTerm={searchTerm}
        setSearchTerm={setSearchTerm}
      />
      
      {filteredTasks.length === 0 ? (
        <div className="text-center py-8 text-gray-500">هیچ وظیفه‌ای یافت نشد</div>
      ) : (
        <div className="space-y-4">
          {filteredTasks.map(task => (
            <TaskItem 
              key={task.id} 
              task={task} 
              onStatusChange={handleStatusChange}
              onDelete={handleDelete}
            />
          ))}
        </div>
      )}
    </div>
  );
}

پروژه‌های مرتبط

داشبورد مدیریت

داشبورد مدیریت

داشبورد مدیریتی با انواع چارت‌ها و نمودارها برای تحلیل داده‌ها

مشاهده جزئیات
فروشگاه آنلاین

فروشگاه آنلاین

فروشگاه آنلاین با قابلیت‌های سبد خرید، پرداخت و مدیریت محصولات

مشاهده جزئیات
وب‌سایت شرکتی

وب‌سایت شرکتی

وب‌سایت شرکتی با طراحی مدرن و ریسپانسیو

مشاهده جزئیات