Taskify is a modern and responsive task management application built with React, TypeScript, and Vite.
It helps users organize daily tasks, track progress, and analyze productivity through a simple and intuitive interface.
The project focuses on clean architecture, performance optimization, scalability, and modern UI/UX practices.
Taskify allows users to manage their tasks efficiently with features such as:
- Creating and organizing tasks
- Tracking completion status
- Setting optional due dates
- Filtering and searching tasks
- Visualizing productivity with analytics
- Persistent storage using LocalStorage
- Light and dark theme support
The application is designed with performance, accessibility, and scalability in mind.
- Add new tasks
- Edit existing tasks
- Delete tasks
- Mark tasks as completed or pending
- Drag and drop task reordering
- Optional due dates for tasks
- Filter tasks by:
- All
- Pending
- Completed
- Search tasks by keyword
- Sort tasks for better organization
- Visual representation of task progress
- Completed vs Pending task chart
- Task completion percentage
- Overdue task detection
- Tasks completed today statistics
- Toggle between Light Mode and Dark Mode
- Theme persistence across sessions
- Tasks are stored using LocalStorage
- Data remains available after refreshing the application
- Optimized for:
- Desktop
- Tablet
- Mobile devices
- βοΈ React
- π· TypeScript
- β‘ Vite
- π¨ CSS Modules
- π Recharts (Analytics Charts)
- π§ͺ Vitest + React Testing Library
- π Sonner (Toast Notifications)
- π§© React Router
- π― Lucide Icons
The project follows a feature-based architecture to improve scalability and maintainability.
This structure allows each feature to be modular, reusable, and easier to maintain.
β Feature-based folder structure
β Reusable custom hooks
β Context API for theme management
β Performance optimizations using useMemo and React.memo
β Accessibility improvements (aria-label, semantic elements)
β Responsive design for mobile devices
β Lazy loading with React Router
β Clean component separation
Basic unit and component tests are implemented using:
- Vitest
- React Testing Library
Testing ensures that components behave correctly and improves maintainability.