This is a Task Management App built using React, TypeScript and styled with Tailwind CSS. It allows users to manage their tasks efficiently with features such as adding tasks, marking tasks as complete, filtering tasks, searching tasks, and saving tasks to local storage for persistence.
The Lighthouse report provides insights into the performance, accessibility, and best practices of the application. Make sure to review the report for optimization opportunities.
- Add Task: Users can add tasks to the list.
- Mark Task as Complete: Users can mark tasks as complete/incomplete.
- Delete Task: Users can remove tasks from the list.
- Filter Tasks: Allows filtering tasks by:
- All
- Completed
- Incomplete
- Search with Debounce: Users can search tasks with a debounce to avoid unnecessary re-renders.
- Basic Form Validation: Prevents adding empty tasks.
- Responsive Design: Optimized layout for both desktop and mobile devices.
- Local Storage: Tasks are saved to the browser’s local storage, so they persist across page reloads.
- Vite: Fast bundling and development server.
- React: Library for building the UI components.
- Tailwind CSS: Utility-first CSS framework for styling.
- TypeScript: Type-safe JavaScript for improved development experience.
- React Context API: For managing global state.
- Local Storage: To store tasks persistently in the browser.
- SWC (Speedy Web Compiler): For faster builds and performance.
├── public/ # Static assets (e.g., images, icons)
├── src/
│ ├── components/ # React components (TaskList, TaskItem, etc.)
│ ├── hooks/ # Custom React hooks
│ ├── context/ # React Context API setup for global state
│ ├── styles/ # Global styles and Tailwind CSS setup
│ ├── utils/ # Helper functions (e.g., debounce, validation)
│ ├── App.tsx # Main application component
│ ├── main.tsx # Application entry point
│ └── index.css # Global CSS file with Tailwind imports
├── package.json # Project dependencies and scripts
└── tailwind.config.js # Tailwind CSS configurationgit clone https://github.com/Strange1108/TodoAppcd TodoAppMake sure you have Node.js installed, then run:
npm installnpm run devThis will start the app on http://localhost:5173
To create an optimized production build:
npm run buildThe output will be in the dist/ folder.
- Type a task description in the input field.
- Click the "Add Task" button to add the task to your list.
- Click on the checkbox next to a task to toggle its status between complete and incomplete.
- Click on the "X" icon next to a task to delete it from your list.
- Use the "All", "Completed", or "Incomplete" filters to view tasks based on their status.
- Use the search bar to filter tasks by typing relevant keywords.



