A modern, feature-rich task management application built with React, TypeScript, and Vite. Organize your tasks efficiently with categories, due dates, and powerful filtering options.
Task Manager is a comprehensive productivity tool that helps you organize, track, and manage your daily tasks. With an intuitive interface, dark/light theme support, and advanced features like drag-and-drop reordering, data export/import, and detailed statistics, it's designed to boost your productivity.
- ✅ Task Management - Create, edit, delete, and complete tasks
- 🏷️ Categories - Organize tasks with custom categories
- 📅 Due Dates - Track deadlines and overdue tasks
- 🔍 Search & Filter - Find tasks quickly with search and multiple filters
- 🎯 Sorting Options - Sort by date or title
- 🎨 Dark/Light Theme - Toggle between themes for comfortable viewing
- 📊 Statistics Dashboard - View task completion rates and insights
- 💾 Data Export/Import - Backup and restore tasks in JSON format
- 🖱️ Drag & Drop - Reorder tasks with intuitive drag-and-drop
- 📱 Responsive Design - Works seamlessly on desktop and mobile devices
- 💾 Local Storage - All data persists locally in your browser
- Frontend Framework: React 19
- Language: TypeScript
- Build Tool: Vite
- Styling: Tailwind CSS
- UI Components: Radix UI
- Icons: Lucide React
- State Management: React Hooks & Context API
- Clone the repository:
git clone <repository-url>
cd task-manager- Install dependencies:
npm install- Start the development server:
npm run dev- Open your browser and navigate to
http://localhost:5173
npm run dev- Start development servernpm run build- Build for productionnpm run preview- Preview production buildnpm run lint- Run ESLint
If you are developing a production application, we recommend updating the configuration to enable type-aware lint rules:
export default defineConfig([
globalIgnores(["dist"]),
{
files: ["**/*.{ts,tsx}"],
extends: [
// Other configs...
// Remove tseslint.configs.recommended and replace with this
tseslint.configs.recommendedTypeChecked,
// Alternatively, use this for stricter rules
tseslint.configs.strictTypeChecked,
// Optionally, add this for stylistic rules
tseslint.configs.stylisticTypeChecked,
// Other configs...
],
languageOptions: {
parserOptions: {
project: ["./tsconfig.node.json", "./tsconfig.app.json"],
tsconfigRootDir: import.meta.dirname,
},
// other options...
},
},
]);You can also install eslint-plugin-react-x and eslint-plugin-react-dom for React-specific lint rules:
// eslint.config.js
import reactX from "eslint-plugin-react-x";
import reactDom from "eslint-plugin-react-dom";
export default defineConfig([
globalIgnores(["dist"]),
{
files: ["**/*.{ts,tsx}"],
extends: [
// Other configs...
// Enable lint rules for React
reactX.configs["recommended-typescript"],
// Enable lint rules for React DOM
reactDom.configs.recommended,
],
languageOptions: {
parserOptions: {
project: ["./tsconfig.node.json", "./tsconfig.app.json"],
tsconfigRootDir: import.meta.dirname,
},
// other options...
},
},
]);