A modern, responsive task management application built with React, TypeScript, and Tailwind CSS. TaskFlow helps you organize your tasks with an intuitive drag-and-drop interface, real-time dashboard, and beautiful dark/light mode support.
- π Task Management: Create, edit, and delete tasks with detailed information
- π― Priority Levels: Organize tasks by Low, Medium, and High priority
- π Status Tracking: Track tasks through To Do, In Progress, and Completed states
- π·οΈ Custom Labels: Create and assign colored labels to categorize tasks
- π Due Dates: Set and track task deadlines with overdue indicators
- π±οΈ Drag & Drop: Intuitive task movement between columns
- π± Responsive Design: Works seamlessly on desktop, tablet, and mobile
- π Dark/Light Mode: Toggle between themes with system preference detection
- πΎ Local Storage: Automatic data persistence across browser sessions
- π Real-time Dashboard: Live statistics and progress tracking
- Completion Rate: Visual progress tracking
- Task Counters: Real-time count of tasks by status
- Due Soon Alerts: Highlights tasks due within 3 days
- Progress Bar: Visual representation of task distribution
- Frontend: React 18 with TypeScript
- Styling: Tailwind CSS with dark mode support
- Drag & Drop: React DnD with HTML5 backend
- Icons: Lucide React
- Build Tool: Vite
- Deployment: Netlify
- Data Storage: Browser localStorage
src/
βββ components/ # React components
β βββ Dashboard.tsx # Analytics and statistics
β βββ Header.tsx # Navigation bar with theme toggle
β βββ TaskBoard.tsx # Main kanban board
β βββ TaskCard.tsx # Individual task cards
β βββ TaskColumn.tsx # Drag-drop columns
β βββ TaskForm.tsx # Task creation/editing form
β βββ LabelForm.tsx # Label creation form
βββ context/ # React context providers
β βββ TaskContext.tsx # Task state management
β βββ ThemeContext.tsx # Theme state management
βββ types/ # TypeScript type definitions
β βββ index.ts # Task, Label, Priority types
βββ App.tsx # Main application component
βββ main.tsx # Application entry point
βββ index.css # Global styles and Tailwind imports
- Node.js (version 16 or higher)
- npm or yarn package manager
-
Clone the repository
git clone <repository-url> cd taskflow-organizer
-
Install dependencies
npm install
-
Start the development server
npm run dev
-
Open your browser 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
- Click the "Add Task" button in the Task Board section
- Fill in task details:
- Title: Brief task description
- Description: Detailed task information
- Priority: Low, Medium, or High
- Status: To Do, In Progress, or Completed
- Due Date: Optional deadline
- Labels: Assign custom labels for categorization
- Edit: Click the edit icon on any task card
- Delete: Click the trash icon (with confirmation)
- Move: Drag and drop tasks between columns
- Status: Tasks automatically update status when moved
- Click "Add Label" in the task form
- Enter label name and choose a color
- Labels can be reused across multiple tasks
- Click the sun/moon icon in the header
- Automatically detects system preference
- Preference saved in browser storage
- Primary: Blue (#3B82F6) for main actions
- Success: Green (#10B981) for completed items
- Warning: Yellow (#F59E0B) for in-progress items
- Danger: Red (#EF4444) for high priority/overdue
- Mobile: < 768px (single column layout)
- Tablet: 768px - 1024px (responsive grid)
- Desktop: > 1024px (full three-column layout)
- Keyboard navigation support
- ARIA labels for screen readers
- High contrast color ratios
- Focus indicators
TaskFlow uses browser localStorage to persist:
- All tasks and their properties
- Custom labels
- Theme preference
- Application state
Data is automatically saved on every change and restored on page reload.
- Update the
Statustype insrc/types/index.ts - Add new column configuration in
TaskBoard.tsx - Update the dashboard statistics in
Dashboard.tsx
Modify the COLORS array in src/components/LabelForm.tsx to add new color options.
Update Tailwind configuration in tailwind.config.js to customize colors, fonts, and spacing.
The application is deployed on Netlify with automatic builds from the main branch.
- Fork this repository
- Connect your GitHub account to Netlify
- Deploy from your forked repository
- Netlify will automatically build and deploy
npm run build
# Upload the 'dist' folder to your hosting provider- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is open source and available under the MIT License.
- React Team for the amazing framework
- Tailwind CSS for the utility-first CSS framework
- Lucide for the beautiful icon set
- Netlify for free hosting and deployment
If you have any questions or need help with the application:
- Open an issue on GitHub
- Check the documentation above
- Review the code comments for implementation details
Built with β€οΈ using React, TypeScript, and Tailwind CSS