php-prosvirin-dev / laravel-todo-inspector
Scan and manage TODO, FIXME, HACK comments in Laravel projects
Package info
github.com/php-prosvirin-dev/laravel-todo-inspector
pkg:composer/php-prosvirin-dev/laravel-todo-inspector
Requires
- php: ^8.1
- illuminate/console: ^9.0|^10.0|^11.0|^12.0|^13.0
- illuminate/database: ^9.0|^10.0|^11.0|^12.0|^13.0
- illuminate/filesystem: ^9.0|^10.0|^11.0|^12.0|^13.0
- illuminate/routing: ^9.0|^10.0|^11.0|^12.0|^13.0
- illuminate/support: ^9.0|^10.0|^11.0|^12.0|^13.0
Requires (Dev)
- laravel/pint: ^1.0
- orchestra/testbench: ^8.0|^9.0|^10.0
- pestphp/pest: ^2.0|^3.0
This package is auto-updated.
Last update: 2026-04-01 12:01:15 UTC
README
A powerful Laravel package to scan, manage, and track TODO, FIXME, HACK, REVIEW, and NOTE comments across your entire project. Transform scattered code comments into a manageable technical debt backlog with a beautiful web interface.
Features
- ๐ Smart Scanning - Detects TODO, FIXME, HACK, REVIEW, NOTE comments in single-line and multi-line formats
- ๐ Web Interface - Clean, responsive dashboard with filtering, search, and bulk actions
- ๐จ Dark/Light Theme - Automatic theme switching with user preference persistence
- ๐ Multi-language - Support for 9 languages (English, Russian, Ukrainian, Polish, German, French, Spanish, Chinese, Japanese)
- ๐ Authentication - Simple HTTP Basic Auth with configurable credentials
- โก Bulk Operations - Update multiple task statuses at once
- ๐๏ธ File Links - Direct links to files in PhpStorm (configurable for other IDEs)
- ๐ Statistics - Visual statistics by type, priority, and status
- ๐ ๏ธ Artisan Command -
php artisan todo:scanfor manual or scheduled scanning
Requirements
- PHP 8.1 or higher
- Laravel 10.x, 11.x, 12.x, or 13.x
- MySQL, PostgreSQL, or SQLite
Installation
1. Install via Composer
composer require php-prosvirin-dev/laravel-todo-inspector
2. Publish Package Assets
Publish everything at once:
php artisan vendor:publish --provider="Prosvirin\LaravelTodoInspector\TodoInspectorServiceProvider"
Or publish individually:
php artisan vendor:publish --tag=todo-inspector-config # Configuration php artisan vendor:publish --tag=todo-inspector-migrations # Database migrations php artisan vendor:publish --tag=todo-inspector-views # Blade templates php artisan vendor:publish --tag=todo-inspector-lang # Language files php artisan vendor:publish --tag=todo-inspector-assets # CSS/JS assets
3. Run Migrations
php artisan migrate
4. Configure Authentication
Add credentials to your .env file to secure the web interface:
TODO_INSPECTOR_LOGIN=admin TODO_INSPECTOR_PASSWORD=your-secure-password
Configuration
The configuration file is located at config/todo-inspector.php after publishing.
Basic Configuration
return [ 'table_name' => env('TODO_INSPECTOR_TABLE', 'todo_inspector_tasks'), 'theme' => env('TODO_INSPECTOR_THEME', 'dark'), 'auth' => [ 'login' => env('TODO_INSPECTOR_LOGIN', 'admin'), 'password' => env('TODO_INSPECTOR_PASSWORD', 'password'), ], 'locales' => [ 'en' => ['flag' => '๐ฌ๐ง', 'name' => 'English'], 'ru' => ['flag' => '๐ท๐บ', 'name' => 'ะ ัััะบะธะน'], 'uk' => ['flag' => '๐บ๐ฆ', 'name' => 'ะฃะบัะฐัะฝััะบะฐ'], 'pl' => ['flag' => '๐ต๐ฑ', 'name' => 'Polski'], 'de' => ['flag' => '๐ฉ๐ช', 'name' => 'Deutsch'], 'fr' => ['flag' => '๐ซ๐ท', 'name' => 'Franรงais'], 'es' => ['flag' => '๐ช๐ธ', 'name' => 'Espaรฑol'], 'zh' => ['flag' => '๐จ๐ณ', 'name' => 'ไธญๆ'], 'ja' => ['flag' => '๐ฏ๐ต', 'name' => 'ๆฅๆฌ่ช'], ], 'extensions' => ['php', 'js', 'vue', 'blade.php', 'css', 'scss'], 'exclude_dirs' => ['vendor', 'node_modules', 'storage', 'bootstrap/cache', '.git', 'tests'], 'exclude_files' => ['test-*.php', '*_test.php', '*.test.php'], 'github_repo' => env('TODO_INSPECTOR_GITHUB_REPO', null), ];
Usage
Run the scan command to find all TODO comments:
php artisan todo:scan
Options:
--clear- Clear existing tasks before scanning--type=TODO- Scan only specific type (TODO, FIXME, HACK, REVIEW, NOTE)--path=app/Http- Scan only specific directory
Example:
php artisan todo:scan --clear --type=FIXME --path=app/Http
Schedule Automatic Scans
Add to app/Console/Kernel.php:
protected function schedule(Schedule $schedule): void { $schedule->command('todo:scan')->dailyAt('03:00'); // or hourly: $schedule->command('todo:scan')->hourly(); }
Access Web Interface
http://your-project.test/todo-inspector
Login with credentials configured in .env.
Features in Web Interface
Dashboard
- Statistics Cards - Total tasks and breakdown by type
- Priority Statistics - Visual breakdown by priority level
- Click Filters - Click on any statistic card to filter tasks
Task Management
- Search - Search across content, file paths, and authors
- Filters - Filter by type, priority, and status
- Bulk Actions - Update multiple tasks at once
- Status Updates - Change task status directly from the table
- File Links - Click the code icon to open the file in PhpStorm
Theme & Language
- Dark/Light Mode - Toggle with persistent preference
- Multi-language - Select from 9 languages, saved to localStorage
Comment Format Examples
The package detects comments in the following formats:
Single-line Comments
// TODO: Fix this bug // FIXME: @username Memory leak here // HACK: [HIGH] Temporary workaround // REVIEW: @lead Please check this logic // NOTE: Important performance consideration
Multi-line Comments
/** * TODO: Refactor this method * FIXME: @developer Edge case not handled * REVIEW: Architecture decision needed */
Priority Tags
Use brackets to specify priority:
[LOW]- Low priority[MEDIUM]- Medium priority (default)[HIGH]- High priority[CRITICAL]- Critical priority
Author Tags
Use @username to assign tasks to specific developers.
Customization
Override Views
php artisan vendor:publish --tag=todo-inspector-views
Views will be copied to resources/views/vendor/todo-inspector/. Modify them as needed.
Override Translations
php artisan vendor:publish --tag=todo-inspector-lang
Translations will be copied to resources/lang/vendor/todo-inspector/. Add or modify translations.
Custom CSS/JS
php artisan vendor:publish --tag=todo-inspector-assets
Assets will be copied to public/vendor/todo-inspector/. Update CSS or JS files directly.
Troubleshooting
Tasks Not Found
- Check file extensions in config
- Verify exclude directories don't include your code
- Ensure comments match the expected patterns
Authentication Issues
- Verify credentials in
.envfile - Clear config cache:
php artisan config:clear
Translation Not Working
- Publish language files:
php artisan vendor:publish --tag=todo-inspector-lang - Clear view cache:
php artisan view:clear
Contributing
Contributions are welcome! Please submit a Pull Request or create an Issue.
License
The MIT License (MIT). Please see License File for more information.
Credits
- Created by Yauheni Prasviryn
- Built with Laravel and Tailwind CSS
