KanbanFlow is a modern, interactive web application designed to streamline task management using a classic Kanban board methodology. Built with TypeScript, React, and react-router, it offers a dynamic user experience with drag-and-drop functionality and local storage persistence.
- Dynamic Kanban Board: Visualize tasks across "Pending," "In Progress," and "Done" columns.
- Task Creation: Easily add new tasks to any column with a dedicated modal.
- Task Management: Edit existing tasks to update descriptions or details.
- Task Deletion: Remove tasks from the board when no longer needed.
- Drag-and-Drop Interface: Seamlessly move tasks between columns using
react-dndto update their status. - Local Persistence: Task states and data are automatically saved to your browser's local storage.
- Responsive Design: A clean, modern UI powered by TailwindCSS, ensuring a great experience on various devices.
To get a copy of the project up and running on your local machine, follow these steps.
First, clone the repository to your local machine:
git clone <repository-url>
cd kanban-testThen, install the project dependencies:
npm ciTo start the development server:
npm run devThe application will be accessible at http://localhost:5173 (or another port if 5173 is in use).
To create a production-ready build:
npm run buildTo serve the built application:
npm run startThis will typically serve the application on http://localhost:3000.
You can also run the application using Docker for a containerized environment.
- Build the Docker image:
docker build -t kanbanflow . - Run the Docker container:
The application will then be available in your browser at
docker run -p 3000:3000 kanbanflow
http://localhost:3000.
Once the application is running, you will be presented with the Kanban board interface, divided into three columns: "Pending," "In Progress," and "Done."
- Click the
➕button in the header of the column where you want to add a task (e.g., "Pending"). - A "Create Task" modal will appear.
- Enter your task description in the text area.
- Click "Add Task" to save it. The task will appear in the selected column.
- Click and hold a task card.
- Drag the card to another column (e.g., from "Pending" to "In Progress").
- Release the mouse button to drop the task. Its status will automatically update.
- On a task card, click the "Edit" button (represented by an edit icon).
- An "Edit Task" modal will appear.
- Modify the task description in the input field.
- Click "Edit Task" to save your changes.
- On a task card, click the "Delete" button (represented by a trash can icon).
- A "Delete Task" confirmation modal will appear.
- Click "Delete Task" to permanently remove the task.
| Technology | Description | Link |
|---|---|---|
| TypeScript | Strongly typed superset of JavaScript | TypeScript |
| React | A JavaScript library for building user interfaces | React |
| React Router | Declarative routing for React | React Router |
| React DND | Drag and Drop for React | React DND |
| TailwindCSS | A utility-first CSS framework | TailwindCSS |
| Vite | Next-generation frontend tooling | Vite |
Connect with me:
- Github: @botanicalcoder