Search by

vadykoo / laravel-todo-board

vadykoo

A standalone Laravel kanban-style todo board with assignees, due dates, images, and drag-and-drop.

Package info

github.com/vadykoo/laravel-todo-board

Language:Blade

pkg:composer/vadykoo/laravel-todo-board

Statistics

Installs: 1

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

v1.0.0 2026-10-21 19:38 UTC

This package is auto-updated.

Last update: 2026-10-21 19:51:37 UTC


README

A standalone kanban-style todo board for Laravel. Drag-and-drop columns, assignees, due dates, rich-text descriptions, and image attachments — installable via Composer with no Voyager (or other admin panel) dependency.

Package: vadykoo/laravel-todo-board
Requires: PHP 8.1+, Laravel 10, 11, or 12

Install

composer require vadykoo/laravel-todo-board
php artisan migrate
php artisan storage:link

Migrations load from the package automatically. Optional publishes:

php artisan vendor:publish --tag=todo-board-config
php artisan vendor:publish --tag=todo-board-views
php artisan vendor:publish --tag=todo-board-migrations

Open /todo-board while authenticated.

Features

  • Four columns: To do, In progress, Review, Done
  • Drag-and-drop reordering (plus a one-tap “mark done” control)
  • Assignees and due dates
  • TinyMCE rich-text descriptions
  • Image attachments (served privately through package routes)
  • Visibility rules: users see their own tasks; designated users see everything

Configuration

Publish the config file, then edit config/todo-board.php:

Key Default Purpose
route_prefix todo-board URL prefix
route_name_prefix todo-board. Route name prefix
middleware ['web', 'auth'] Route middleware
user_model \App\Models\User::class Eloquent user model
view_all_user_ids [1] User IDs that can view/manage all tasks
assignees null Optional callable to filter assignable users
disk public Filesystem disk for images

Who can see all tasks

The Gate todo-board.view-all defaults to allowing IDs listed in view_all_user_ids. Override it in your app if you prefer roles:

use Illuminate\Support\Facades\Gate;

Gate::define('todo-board.view-all', function ($user) {
    return $user->hasRole('admin'); // your own check
});

Everyone else only sees tasks where assigned_to is their user id.

Limit assignees

// config/todo-board.php
'assignees' => function ($query) {
    return $query->where('is_admin', true);
},

Legacy App\User models

'user_model' => \App\User::class,

Voyager (optional)

This package does not depend on Voyager. If you still use Voyager in the host app, you can add a menu item that points at the todo-board.index route yourself — that wiring stays in the host application.

Local path develop

{
    "repositories": [
        {
            "type": "path",
            "url": "../laravel-todo-board",
            "options": { "symlink": true }
        }
    ],
    "require": {
        "vadykoo/laravel-todo-board": "*"
    }
}

License

MIT