An open API service indexing awesome lists of open source software.

https://github.com/its-rath/kanban-task-management-system

Open Source Task Management System
https://github.com/its-rath/kanban-task-management-system

jsx rag react tailwindcss task-management-system tsx-language typescript

Last synced: 3 months ago
JSON representation

Open Source Task Management System

Awesome Lists containing this project

README

          

# Kanban Board Component

[![TypeScript](https://img.shields.io/badge/TypeScript-5.0-blue)](https://www.typescriptlang.org/)
[![React](https://img.shields.io/badge/React-18.2-61dafb)](https://reactjs.org/)
[![Tailwind CSS](https://img.shields.io/badge/Tailwind-3.3-38bdf8)](https://tailwindcss.com/)
[![Storybook](https://img.shields.io/badge/Storybook-7.0-ff4785)](https://storybook.js.org/)

A production-grade, fully accessible Kanban Board component built with React, TypeScript, and Tailwind CSS.

## โœจ Features

- **Drag & Drop**: Smooth drag-and-drop using @dnd-kit/core primitives
- **Type-Safe**: Built with TypeScript strict mode
- **Accessible**: WCAG 2.1 AA compliant with full keyboard navigation
- **Responsive**: Mobile, tablet, and desktop layouts
- **Performant**: Optimized with memoization and virtualization
- **Documented**: Comprehensive Storybook documentation

## ๐Ÿš€ Installation
```bash
npm install
npm run storybook
```

## ๐Ÿ“– Usage

import { KanbanBoard } from './components/KanbanBoard';
import { useKanbanBoard } from './hooks/useKanbanBoard';

function App() {
const {
columns,
tasks,
handleTaskMove,
handleTaskCreate,
handleTaskUpdate,
handleTaskDelete,
} = useKanbanBoard({ initialColumns, initialTasks });

return (

);
}

## ๐ŸŽฏ Architecture

### Component Structure

- **KanbanBoard**: Main container with drag-and-drop context
- **KanbanColumn**: Individual columns with droppable areas
- **KanbanCard**: Task cards with drag functionality
- **TaskModal**: Editing interface for task details

### Custom Hooks

- **useDragAndDrop**: Manages drag-and-drop state and sensors
- **useKanbanBoard**: Manages board state and CRUD operations

### Utilities

- **task.utils**: Task-related helper functions
- **column.utils**: Column manipulation utilities

## โŒจ๏ธ Keyboard Navigation

| Key | Action |
|-----------|---------------------------------------|
| Tab | Move focus between cards |
| Shift+Tab | Move focus backwards |
| Enter/Space | Select card or activate element |
| Arrow Keys| Navigate between cards |
| Escape | Close modal or cancel action |
| Delete | Delete focused card |

## ๐ŸŽจ Customization

Extend Tailwind configuration in `tailwind.config.js` to customize colors, spacing, and animations.

## ๐Ÿ“Š Performance

- React.memo for expensive components
- useCallback and useMemo for optimization
- List virtualization for large datasets (50+ items)
- Debounced search and filter inputs

## ๐Ÿงช Storybook Stories

- **Default**: Basic board with sample data
- **Empty State**: Board with no tasks
- **Large Dataset**: 50+ tasks for performance testing
- **Mobile View**: Responsive layout demonstration
- **Accessibility Demo**: Keyboard navigation showcase

## ๐Ÿงพ Conclusion

This production-grade Kanban Board component demonstrates enterprise-level React developmentwith TypeScript, featuring comprehensive accessibility, performance optimization, and Storybookdocumentation. All code follows strict type-safety standards and modern best practices for scalablecomponent libraries.

## ๐Ÿ“ License

MIT

## ๐Ÿ‘จโ€๐Ÿ’ป Author

[Swayam Rath]