A React-based task management application combining a Todo list and Kanban board for efficient task organization. Built with TypeScript, Redux Toolkit, and modern React practices.
- Create, edit, and delete tasks
- Mark tasks as complete/incomplete
- Drag-and-drop task reordering
- Delete confirmation dialog
- Real-time task status updates
- Create and organize tasks across different status columns
- Drag-and-drop tasks between status columns
- Delete tasks with ease
- Visual task status tracking
- React 18.3 with TypeScript
- Vite for build tooling
- Redux Toolkit for state management
- TailwindCSS for styling
- ESLint for code quality
- Node.js (v16 or higher)
- npm or yarn
- Git
- Clone the repository
git clone <repository-url>
cd todo-app
- Install dependencies
npm install
# or
yarn install
- Create a
.env
file in the root directory and add necessary environment variables
VITE_API_KEY=your_api_key
- Start the development server
npm run dev
# or
yarn dev
The application will be available at http://localhost:5173
todo-app/
├── src/
│ ├── components/
│ │ ├── Kanban/ # Kanban board components
│ │ └── ToDoList/ # Todo list components
│ ├── hooks/ # Custom React hooks
│ ├── store/
│ │ └── slices/ # Redux slices
│ ├── services/ # API services
│ ├── types/ # TypeScript types
│ └── pages/ # Page components
The application uses Redux Toolkit for state management with two main slices:
- Manages todo list tasks
- Handles task ordering, completion status, and CRUD operations
- Manages Kanban board tasks
- Handles task status changes and board organization
npm run dev
: Start development servernpm run build
: Build for productionnpm run lint
: Run ESLintnpm run preview
: Preview production build
- The project uses ESLint for code quality. Run linting with:
npm run lint
- For development:
npm run dev
- To build for production:
npm run build
To add new status columns to the Kanban board, modify the status types in src/types/Task.ts
:
export type KanbanTaskStatus = 'todo' | 'in-progress' | 'done' | 'your-new-status';
The project uses shadcn/ui components and TailwindCSS for styling. Customize the theme in:
tailwind.config.js
for TailwindCSS configurationcomponents/ui
for shadcn/ui component customization
- Fork the repository
- Create a new branch (
git checkout -b feature/improvement
) - Commit your changes (
git commit -am 'Add new feature'
) - Push to the branch (
git push origin feature/improvement
) - Create a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details