A beautiful, modern task management application built with Laravel, Tailwind CSS, and Alpine.js. Features drag-and-drop functionality, dark mode, multi-language support, and a stunning UI.
- Drag & Drop: Intuitive drag-and-drop interface powered by SortableJS
- Beautiful UI: Modern, clean design with Tailwind CSS and smooth animations
- Task Management: Create, update, and delete tasks with priorities and due dates
- Tags System: Organize tasks with custom colored tags
- Multiple Boards: Create and manage multiple task boards
- Dynamic Columns: Add, edit, and delete columns with custom names and colors
- Responsive Design: Works perfectly on desktop and mobile devices
- 🌙 Dark Mode: Full dark theme support with smooth transitions
- 🌍 Multi-Language: Support for English and Russian languages
- 💾 Persistent Preferences: Theme and language preferences saved in localStorage
- 🎨 Custom Column Colors: Choose custom colors for each column
- ⚡ Real-time Ready: Built with Laravel Broadcasting support for real-time updates
- ✏️ Task Editing: Click on any task to edit it inline
- 🔍 Search & Filter: Real-time search and filter by priority
- 🏷️ Tag Management: Create, manage, and organize tasks with custom tags
- 📢 Toast Notifications: User-friendly notifications for all actions
- ⌨️ Keyboard Shortcuts: Fast navigation with keyboard shortcuts (N, B, T, D, L, /, ESC)
- 📱 Mobile Optimized: Touch-friendly drag & drop for mobile devices
- ⏰ Overdue Indicators: Visual indicators for tasks past their due date
- 🎯 Empty States: Helpful placeholders when columns or boards are empty
- 🌐 Locale-aware Dates: Dates formatted according to selected language
- Backend: Laravel 12
- Frontend: Tailwind CSS 3 + Alpine.js 3
- Build Tool: Vite 5
- Drag & Drop: SortableJS
- Database: SQLite (default, can be changed to MySQL/PostgreSQL)
- PHP 8.2 or higher
- Composer
- Node.js 18 or higher
- npm
-
Clone the repository
git clone <repository-url> cd SmartTaskBoard
-
Install PHP dependencies
composer install
-
Install Node.js dependencies
npm install
-
Configure environment
cp .env.example .env php artisan key:generate
-
Run migrations
php artisan migrate:fresh
-
Start development servers
In one terminal:
npm run dev
In another terminal:
php artisan serve
-
Open your browser
Navigate to
http://localhost:8000
- View All Boards: Click the "Boards" button in the header
- Create New Board:
- Click "Boards" button
- Click "New Board" in the modal
- Enter board name and description
- Click "Create"
- Switch Boards: Click on any board name in the boards list
- Add Column: Click the "Add Column" button at the end of the board
- Edit Column: Click the edit icon in the column header
- Delete Column: Click the trash icon in the column header
- Customize Colors: Choose custom colors when creating or editing columns
- Click the "New Task" button in the header (or press N)
- Fill in the task details:
- Select a column
- Enter task title (required)
- Add description (optional)
- Set priority level (Low, Medium, High, Urgent)
- Set due date (optional)
- Click "Create Task"
- Click on any task title or the edit icon
- Modify any task details
- Click "Save" to update
- Click the "Tags" button in the header (or press T)
- View all existing tags
- Create new tags with custom names and colors
- Delete unused tags
Simply drag and drop tasks between columns! The position will be saved automatically.
- Use the search bar to find tasks by title or description
- Filter tasks by priority using the dropdown
- Click "Clear Filters" to reset
Click the trash icon on any task card to delete it (confirmation required).
- Toggle Dark Mode: Click the sun/moon icon in the header (or press D)
- Change Language: Click the language button (EN/RU) in the header (or press L)
- Your preferences are automatically saved!
Access common actions quickly with keyboard shortcuts:
| Shortcut | Action |
|---|---|
| N | Create new task |
| B | Open boards menu |
| T | Manage tags |
| D | Toggle dark mode |
| L | Switch language |
| / | Focus search bar |
| ESC | Close any modal |
Click the help button (bottom-right corner) to view shortcuts anytime
SmartTaskBoard/
├── app/
│ ├── Http/Controllers/
│ │ ├── BoardController.php # Board management & CRUD
│ │ ├── ColumnController.php # Column management & CRUD
│ │ ├── TaskController.php # Task CRUD and drag-drop
│ │ └── TagController.php # Tag management
│ └── Models/
│ ├── Board.php # Board model with relationships
│ ├── Column.php # Column model
│ ├── Task.php # Task model with tags relationship
│ └── Tag.php # Tag model
├── database/
│ └── migrations/ # Database schema
├── lang/
│ ├── en/
│ │ └── app.php # English translations
│ └── ru/
│ └── app.php # Russian translations
├── public/
│ └── js/
│ └── translations.js # Frontend translations
├── resources/
│ ├── css/
│ │ └── app.css # Tailwind styles
│ ├── js/
│ │ ├── app.js # Alpine.js setup
│ │ └── bootstrap.js # Laravel Echo config
│ └── views/
│ ├── layout.blade.php # Main layout
│ └── board.blade.php # Task board with dark mode & i18n
├── routes/
│ └── web.php # Application routes
└── tailwind.config.js # Tailwind configuration
- Create a new language file in
lang/{locale}/app.php:
<?php
return [
'boards' => 'Your translation',
'tasks' => 'Your translation',
// ... other translations
];- Add translations to
public/js/translations.js:
const translations = {
en: { /* English translations */ },
ru: { /* Russian translations */ },
your_locale: { /* Your translations */ }
};- Update the
toggleLanguage()method inboard.blade.phpto include your language.
Edit the createDefaultBoard() method in BoardController.php:
$columns = [
['name' => 'To Do', 'color' => '#ef4444', 'position' => 0],
['name' => 'In Progress', 'color' => '#f59e0b', 'position' => 1],
['name' => 'Your New Column', 'color' => '#3b82f6', 'position' => 2],
];Edit tailwind.config.js to customize the color scheme:
theme: {
extend: {
colors: {
primary: {
// Your custom colors
},
},
},
}GET /- Display main boardGET /boards/{board}- Display specific board
POST /boards- Create new boardPUT /boards/{board}- Update boardDELETE /boards/{board}- Delete boardGET /api/boards- Get all boardsGET /api/boards/{board}/data- Get board data with all tasks
POST /columns- Create new columnPUT /columns/{column}- Update columnDELETE /columns/{column}- Delete column
POST /tasks- Create new taskPUT /tasks/{task}- Update taskDELETE /tasks/{task}- Delete taskPOST /api/tasks/{task}/move- Move task to different column/positionPOST /api/tasks/{task}/reorder- Reorder tasks within column
- Optimized database queries with eager loading
- Smooth CSS transitions using Tailwind utilities
- Efficient drag-and-drop with SortableJS
- Minimal JavaScript footprint with Alpine.js
- LocalStorage for theme and language preferences (no server requests)
- Responsive design with mobile-first approach
- ✅ Multi-board management - Create and switch between multiple boards
- ✅ Dynamic column management - Add, edit, and delete columns
- ✅ Task CRUD operations - Create, read, update, and delete tasks
- ✅ Task editing - Click to edit tasks inline
- ✅ Tag system - Create and manage custom tags with colors
- ✅ Search functionality - Real-time search across task titles and descriptions
- ✅ Priority filtering - Filter tasks by priority level
- ✅ Dark mode - Full dark theme support with smooth transitions
- ✅ Multi-language - English and Russian support with locale-aware dates
- ✅ Drag & drop - Smooth task movement between columns
- ✅ Task priorities - Low, Medium, High, Urgent levels
- ✅ Custom colors - Choose colors for columns and tags
- ✅ Persistent preferences - Theme and language saved in localStorage
- ✅ Toast notifications - Real-time user feedback for all actions
- ✅ Keyboard shortcuts - Fast navigation with hotkeys
- ✅ Empty states - Helpful placeholders for empty columns and boards
- ✅ Overdue indicators - Visual markers for tasks past due date
- ✅ Loading states - Spinner overlay during async operations
- ✅ Mobile responsive - Touch-friendly drag & drop for mobile devices
- ✅ Smooth animations - Fade-in and slide-up effects
- ✅ Custom scrollbars - Themed scrollbars for better aesthetics
- Real-time collaboration with Pusher/Laravel Echo
- User authentication and permissions
- Task assignments to team members
- File attachments for tasks
- Activity timeline and history
- Export board to PDF/CSV/JSON
- Task comments and discussions
- Task templates for quick creation
- Subtasks/checklists within tasks
- Task statistics and analytics dashboard
- Due date reminders and notifications
- Calendar view
- Time tracking
- Task dependencies
- Recurring tasks
Feel free to submit issues and enhancement requests!
This project is open-sourced software licensed under the MIT license.
Built with:
Made with ❤️ for amazing task management