A simple task manager app built with Laravel 5.4.33
(1). Simply download or clone the repo:
git clone https://github.com/jcadima/Laravel-Project-mgmt.git
(2) Run composer install to get all the dependencies specified in the composer.lock file
composer install
(3) Run migrations
php artisan migrate
(4a) Import database and modify your .env file Task Management DB
NOTE: If using MariaDB you might see an error about "key too long", to fix this open:
/app/Providers/AppServiceProvider.php
make the following changes so that it looks like:
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
// Include Schema
use Illuminate\Support\Facades\Schema;
class AppServiceProvider extends ServiceProvider
{
public function boot()
{ // Read more about this error at:
// https://laravel-news.com/laravel-5-4-key-too-long-error
// Fix Laravel 5.4 utf8mb4:
Schema::defaultStringLength(191) ;
}
public function register()
{
//
}
}
OR
(4b) Run the database seeder:
php artisan db:seed
The project already includes a UsersTableSeeder.php class with the following:
App\User::create([
'admin' => 1,
'name' => 'Demo User',
'email' => 'demo@test.com',
'password' => bcrypt('demo2017')
]);
Note: If you need to install Homestead:
Laravel - Homestead
(5) open your Homestead.yaml file and see if it looks something like:
ip: "192.168.10.10"
memory: 2048
cpus: 1
provider: virtualbox
authorize: ~/.ssh/id_rsa.pub
keys:
- ~/.ssh/id_rsa
folders:
- map: ~/www
to: /home/vagrant/www
sites:
- map: laraproject.test
to: /home/vagrant/www/laraproject/public
databases:
- laraproject
(6) open your /etc/hosts and add an entry for this project (note the IP above in the Homestead.yaml file):
# Homestead
192.168.10.10 laraproject.test
Now launch the Vagrant Box:
vagrant up
(7) Your dev project will be available at:
http://laraproject.test
> php artisan route:list
+--------+--------------------------------+-----------------------------------------------------+------------------------------+---------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------+
| Domain | Method | URI | Name | Action | Middleware |
+--------+--------------------------------+-----------------------------------------------------+------------------------------+---------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------+
| | GET|HEAD | / | | Closure | web |
| | GET|HEAD | admin/projects | project.show | App\Http\Controllers\ProjectController@index | web,auth |
| | GET|HEAD | admin/projects/create | project.create | App\Http\Controllers\ProjectController@create | web,auth |
| | GET|HEAD | admin/projects/delete/{id} | project.delete | App\Http\Controllers\ProjectController@destroy | web,auth |
| | GET|HEAD | admin/projects/edit/{id} | project.edit | App\Http\Controllers\ProjectController@edit | web,auth |
| | POST | admin/projects/store | project.store | App\Http\Controllers\ProjectController@store | web,auth |
| | POST | admin/projects/update/{id} | project.update | App\Http\Controllers\ProjectController@update | web,auth |
| | GET|HEAD | admin/tasks | task.show | App\Http\Controllers\TaskController@index | web,auth |
| | GET|HEAD | admin/tasks/completed/{id} | task.completed | App\Http\Controllers\TaskController@completed | web,auth |
| | GET|HEAD | admin/tasks/create | task.create | App\Http\Controllers\TaskController@create | web,auth |
| | GET|HEAD | admin/tasks/delete/{id} | task.delete | App\Http\Controllers\TaskController@destroy | web,auth |
| | GET|HEAD | admin/tasks/deletefile/{id} | task.deletefile | App\Http\Controllers\TaskController@deleteFile | web,auth |
| | GET|HEAD | admin/tasks/edit/{id} | task.edit | App\Http\Controllers\TaskController@edit | web,auth |
| | GET|HEAD | admin/tasks/list/{projectid} | task.list | App\Http\Controllers\TaskController@tasklist | web,auth |
| | GET|HEAD | admin/tasks/search | task.search | App\Http\Controllers\TaskController@searchTask | web,auth |
| | GET|HEAD | admin/tasks/sort/{key} | task.sort | App\Http\Controllers\TaskController@sort | web,auth |
| | POST | admin/tasks/store | task.store | App\Http\Controllers\TaskController@store | web,auth |
| | POST | admin/tasks/update/{id} | task.update | App\Http\Controllers\TaskController@update | web,auth |
| | GET|HEAD | admin/tasks/view/{id} | task.view | App\Http\Controllers\TaskController@view | web,auth |
| | GET|HEAD | admin/users | user.index | App\Http\Controllers\UserController@index | web,auth |
| | GET|HEAD | admin/users/activate/{id} | user.activate | App\Http\Controllers\UserController@activate | web,auth |
| | GET|HEAD | admin/users/create | user.create | App\Http\Controllers\UserController@create | web,auth |
| | GET|HEAD | admin/users/delete/{id} | user.delete | App\Http\Controllers\UserController@destroy | web,auth |
| | GET|HEAD | admin/users/disable/{id} | user.disable | App\Http\Controllers\UserController@disable | web,auth |
| | GET|HEAD | admin/users/edit/{id} | user.edit | App\Http\Controllers\UserController@edit | web,auth |
| | GET|HEAD | admin/users/list/{id} | user.list | App\Http\Controllers\UserController@userTaskList | web,auth |
| | POST | admin/users/store | user.store | App\Http\Controllers\UserController@store | web,auth |
| | POST | admin/users/update/{id} | user.update | App\Http\Controllers\UserController@update | web,auth |
| | GET|HEAD | api/user | | Closure | api,auth:api |
| | GET|HEAD | laravel-filemanager | unisharp.lfm.show | \Unisharp\Laravelfilemanager\controllers\LfmController@show | web,auth,\Unisharp\Laravelfilemanager\middlewares\MultiUser,\Unisharp\Laravelfilemanager\middlewares\CreateDefaultFolder |
| | GET|HEAD | laravel-filemanager/crop | unisharp.lfm.getCrop | \Unisharp\Laravelfilemanager\controllers\CropController@getCrop | web,auth,\Unisharp\Laravelfilemanager\middlewares\MultiUser,\Unisharp\Laravelfilemanager\middlewares\CreateDefaultFolder |
| | GET|HEAD | laravel-filemanager/cropimage | unisharp.lfm.getCropimage | \Unisharp\Laravelfilemanager\controllers\CropController@getCropimage | web,auth,\Unisharp\Laravelfilemanager\middlewares\MultiUser,\Unisharp\Laravelfilemanager\middlewares\CreateDefaultFolder |
| | GET|HEAD | laravel-filemanager/cropnewimage | unisharp.lfm.getCropimage | \Unisharp\Laravelfilemanager\controllers\CropController@getNewCropimage | web,auth,\Unisharp\Laravelfilemanager\middlewares\MultiUser,\Unisharp\Laravelfilemanager\middlewares\CreateDefaultFolder |
| | GET|HEAD | laravel-filemanager/delete | unisharp.lfm.getDelete | \Unisharp\Laravelfilemanager\controllers\DeleteController@getDelete | web,auth,\Unisharp\Laravelfilemanager\middlewares\MultiUser,\Unisharp\Laravelfilemanager\middlewares\CreateDefaultFolder |
| | GET|HEAD | laravel-filemanager/deletefolder | unisharp.lfm.getDeletefolder | \Unisharp\Laravelfilemanager\controllers\FolderController@getDeletefolder | web,auth,\Unisharp\Laravelfilemanager\middlewares\MultiUser,\Unisharp\Laravelfilemanager\middlewares\CreateDefaultFolder |
| | GET|HEAD | laravel-filemanager/doresize | unisharp.lfm.performResize | \Unisharp\Laravelfilemanager\controllers\ResizeController@performResize | web,auth,\Unisharp\Laravelfilemanager\middlewares\MultiUser,\Unisharp\Laravelfilemanager\middlewares\CreateDefaultFolder |
| | GET|HEAD | laravel-filemanager/download | unisharp.lfm.getDownload | \Unisharp\Laravelfilemanager\controllers\DownloadController@getDownload | web,auth,\Unisharp\Laravelfilemanager\middlewares\MultiUser,\Unisharp\Laravelfilemanager\middlewares\CreateDefaultFolder |
| | GET|HEAD | laravel-filemanager/errors | unisharp.lfm.getErrors | \Unisharp\Laravelfilemanager\controllers\LfmController@getErrors | web,auth,\Unisharp\Laravelfilemanager\middlewares\MultiUser,\Unisharp\Laravelfilemanager\middlewares\CreateDefaultFolder |
| | GET|HEAD | laravel-filemanager/files/{base_path}/{file_name} | unisharp.lfm. | \Unisharp\Laravelfilemanager\controllers\RedirectController@getFile | |
| | GET|HEAD | laravel-filemanager/folders | unisharp.lfm.getFolders | \Unisharp\Laravelfilemanager\controllers\FolderController@getFolders | web,auth,\Unisharp\Laravelfilemanager\middlewares\MultiUser,\Unisharp\Laravelfilemanager\middlewares\CreateDefaultFolder |
| | GET|HEAD | laravel-filemanager/jsonitems | unisharp.lfm.getItems | \Unisharp\Laravelfilemanager\controllers\ItemsController@getItems | web,auth,\Unisharp\Laravelfilemanager\middlewares\MultiUser,\Unisharp\Laravelfilemanager\middlewares\CreateDefaultFolder |
| | GET|HEAD | laravel-filemanager/newfolder | unisharp.lfm.getAddfolder | \Unisharp\Laravelfilemanager\controllers\FolderController@getAddfolder | web,auth,\Unisharp\Laravelfilemanager\middlewares\MultiUser,\Unisharp\Laravelfilemanager\middlewares\CreateDefaultFolder |
| | GET|HEAD | laravel-filemanager/photos/{base_path}/{image_name} | unisharp.lfm. | \Unisharp\Laravelfilemanager\controllers\RedirectController@getImage | |
| | GET|HEAD | laravel-filemanager/rename | unisharp.lfm.getRename | \Unisharp\Laravelfilemanager\controllers\RenameController@getRename | web,auth,\Unisharp\Laravelfilemanager\middlewares\MultiUser,\Unisharp\Laravelfilemanager\middlewares\CreateDefaultFolder |
| | GET|HEAD | laravel-filemanager/resize | unisharp.lfm.getResize | \Unisharp\Laravelfilemanager\controllers\ResizeController@getResize | web,auth,\Unisharp\Laravelfilemanager\middlewares\MultiUser,\Unisharp\Laravelfilemanager\middlewares\CreateDefaultFolder |
| | GET|HEAD|POST|PUT|PATCH|DELETE | laravel-filemanager/upload | unisharp.lfm.upload | \Unisharp\Laravelfilemanager\controllers\UploadController@upload | web,auth,\Unisharp\Laravelfilemanager\middlewares\MultiUser,\Unisharp\Laravelfilemanager\middlewares\CreateDefaultFolder |
| | POST | login | | App\Http\Controllers\Auth\LoginController@login | web,guest |
| | GET|HEAD | login | login | App\Http\Controllers\Auth\LoginController@showLoginForm | web,guest |
| | POST | logout | logout | App\Http\Controllers\Auth\LoginController@logout | web |
| | POST | password/email | password.email | App\Http\Controllers\Auth\ForgotPasswordController@sendResetLinkEmail | web,guest |
| | POST | password/reset | | App\Http\Controllers\Auth\ResetPasswordController@reset | web,guest |
| | GET|HEAD | password/reset | password.request | App\Http\Controllers\Auth\ForgotPasswordController@showLinkRequestForm | web,guest |
| | GET|HEAD | password/reset/{token} | password.reset | App\Http\Controllers\Auth\ResetPasswordController@showResetForm | web,guest |
| | GET|HEAD | register | register | App\Http\Controllers\Auth\RegisterController@showRegistrationForm | web,guest |
| | POST | register | | App\Http\Controllers\Auth\RegisterController@register | web,guest |
+--------+--------------------------------+-----------------------------------------------------+------------------------------+---------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------
migrations
+-----------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------+------------------+------+-----+---------+----------------+
| id | int(10) unsigned | NO | PRI | NULL | auto_increment |
| migration | varchar(191) | NO | | NULL | |
| batch | int(11) | NO | | NULL | |
+-----------+------------------+------+-----+---------+----------------+
projects
+--------------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------------+------------------+------+-----+---------+----------------+
| id | int(10) unsigned | NO | PRI | NULL | auto_increment |
| project_name | varchar(191) | NO | | NULL | |
| created_at | timestamp | YES | | NULL | |
| updated_at | timestamp | YES | | NULL | |
+--------------+------------------+------+-----+---------+----------------+
task_files
+------------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------+------------------+------+-----+---------+----------------+
| id | int(10) unsigned | NO | PRI | NULL | auto_increment |
| task_id | int(10) unsigned | NO | MUL | NULL | |
| filename | varchar(191) | NO | | NULL | |
| created_at | timestamp | YES | | NULL | |
| updated_at | timestamp | YES | | NULL | |
+------------+------------------+------+-----+---------+----------------+
tasks
+------------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------+------------------+------+-----+---------+----------------+
| id | int(10) unsigned | NO | PRI | NULL | auto_increment |
| user_id | int(10) unsigned | NO | MUL | NULL | |
| project_id | int(10) unsigned | NO | MUL | NULL | |
| task_title | varchar(191) | NO | | NULL | |
| task | text | NO | | NULL | |
| priority | int(11) | NO | | 0 | |
| completed | tinyint(1) | NO | | 0 | |
| created_at | timestamp | YES | | NULL | |
| updated_at | timestamp | YES | | NULL | |
| duedate | datetime | YES | | NULL | |
+------------+------------------+------+-----+---------+----------------+
users
+----------------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------------+------------------+------+-----+---------+----------------+
| id | int(10) unsigned | NO | PRI | NULL | auto_increment |
| admin | tinyint(1) | NO | | 0 | |
| name | varchar(191) | NO | | NULL | |
| email | varchar(191) | NO | UNI | NULL | |
| password | varchar(191) | NO | | NULL | |
| remember_token | varchar(100) | YES | | NULL | |
| created_at | timestamp | YES | | NULL | |
| updated_at | timestamp | YES | | NULL | |
+----------------+------------------+------+-----+---------+----------------+