Package Data | |
---|---|
Maintainer Username: | areyi |
Maintainer Contact: | fariz.studionexus@gmail.com (areyi) |
Package Create Date: | 2015-12-26 |
Package Last Update: | 2015-12-28 |
Home Page: | |
Language: | PHP |
License: | BSD 3-Clause |
Last Refreshed: | 2024-12-14 15:09:13 |
Package Statistics | |
---|---|
Total Downloads: | 46 |
Monthly Downloads: | 0 |
Daily Downloads: | 0 |
Total Stars: | 10 |
Total Watchers: | 4 |
Total Forks: | 5 |
Total Open Issues: | 1 |
A simple task manager for Laravel
TaskManager is a Laravel package which allows you to create projects, and create tasks. The package is in development stage for time being, and not ready for production uses.
0.3.2
Download the package as a zip, and then put it on /vendor folder.
Add the following line on your composer.json file, under the psr-4:
"psr-4": {
...
"Areyi\\TaskManager\\": "vendor/areyi/taskmanager/src"
}
After that, register the TaskManagerServiceProvider in the /config/app.php file, under the providers array:
'Areyi\TaskManager\Laravel\TaskManagerServiceProvider'
And in the same file, put the TaskManager alias under the aliases array:
'TaskManager' => 'Areyi\TaskManager\Facades\TaskManager'
And finally, run all the migration files
php artisan migrate --path=vendor/areyi/taskmanager/src/database/migrations
First, you must supply with the user_id (which you can get from your favourite authentication managers). This will make sure projects and tasks belongs to the right user.
$user_id = 1; // get from your login manager
TaskManager::setUserId($user_id);
Try this:
$project_details = [
'name' => 'New Project',
'name' => 'new_project', //optional
];
TaskManager::addProject($project_details);
which will return:
Areyi\TaskManager\Base Object
(
[userID] => 1
[result] => 1
[project_id] => 77
)
You can straightaway creating a task without supplying the project_id if you have created a project before
$task_details = [
'name' => 'New Task'
];
TaskManager::addTask($task_details);
or you can also chain them to create multiple tasks:
TaskManager::addTask($task_details)->addTask($task2_details)->addTask($task3_details);
which will return:
Areyi\TaskManager\Base Object
(
[userID] => 1
[result] => 1
[project_id] => 79
[task_id] => Array
(
[0] => 75
[1] => 76
[2] => 77
)
)
and you can also create project and add tasks to it at the same time:
TaskManager::addProject($project_details)->addTask($task_details)->addTask($task_details);
To get all existing projects:
TaskManager::getProjects();
which will returns straightaway:
Areyi\TaskManager\Base Object
(
[userID] => 1
[projects] => Array
(
[0] => Array
(
[id] => 1
[name] => Web Development Project
[slug] => webdev
[owner_id] => 1
[owner] => admin
[created_at] => 2015-12-26 01:00:55
[updated_at] => 2015-12-26 01:00:55
)
[1] => Array
(
[id] => 2
[name] => New Project
[slug] => new_project
[owner_id] => 2
[owner] => staff
[created_at] => 2015-12-26 01:43:38
[updated_at] => 2015-12-26 01:43:38
)
)
)
To get all tasks assign to a project:
$project_id = 1;
TaskManager::getProject($project_id)->getTasks();
which returns:
Areyi\TaskManager\Base Object
(
[userID] => 1
[id] => 1
[name] => Web Development Project
[slug] => webdev
[owner_id] => 1
[owner] => admin
[created_at] => 2015-12-26 01:43:38
[updated_at] => 2015-12-26 01:43:38
[tasks] => Array
(
[0] => Array
(
[id] => 1
[name] => Buy a milk
[slug] =>
[author_id] => 1
[author] => admin
[completed] => 0
[description] =>
[created_at] => 2015-12-26 01:43:38
[updated_at] => 2015-12-26 01:43:38
)
[1] => Array
(
[id] => 2
[name] => Buy a book
[slug] =>
[author_id] => 1
[author] => admin
[completed] => 0
[description] =>
[created_at] => 2015-12-26 01:43:38
[updated_at] => 2015-12-26 01:43:38
)
)
)
You can also get all projects along with their tasks:
TaskManager::getAll();
To delete a project (this will also delete all tasks under the same project):
$projectId = 1;
TaskManager::deleteProject($projectId);
To delete a task:
$task_id = 1;
TaskManager::deleteTask($task_id);
To mark a task as completed:
TaskManager::completeTask($task_id)
This is still under development! TaskManager is included with a powerful formatter, allowing you to edit or delete projects/tasks and complete a task on the run. The formatter is powered by AJAX.
To list all projects as a list
TaskManager::getProjects()->format()->asList();
Result:
To list all tasks under a project as a list
$project_id = 1;
TaskManager::getProject($project_id)->getTasks()->format()->asList();
Result:
These are the available routes in the package:
| Route | Uses | |----------------------------------------------|------------------------------------------| | GET /taskmanager/list/all | List all projects and tasks | | GET /taskmanager/list/projects | List all projects | | GET /taskmanager/list/project/{project_id} | Get a project with the given project id | | GET /taskmanager/list/tasks/{project_id} | Get tasks associated with the project id | | GET /taskmanager/delete/project/{project_id} | Delete the project | | GET /taskmanager/delete/task/{task_id} | Delete the task | | GET /taskmanager/complete/task/{task_id} | Mark the task as completed |
These are the methods in the package:
| Method | Uses | |--------------------------------------------|----------------------------------------------| | TaskManager::setUserId($userId); | Set the ownership for all projects and tasks | | TaskManager::addProject($project_details); | Create a new project | | TaskManager::addTask($task_details); | Add a new task | | TaskManager::getProjects(); | Get all projects | | TaskManager::getProject($project_id); | Get a project by given project_id | | TaskManager::getTasks(); | Get all tasks | | TaskManager::getTask($project_id); | Get a task by given project_id | | TaskManager::getAll(); | Get all projects and their tasks | | TaskManager::deleteProject($projectId); | Delete a project | | TaskManager::deleteTask($taskId); | Delete a task | | TaskManager::completeTask($taskId); | Mark a task as done | | TaskManager::format(); | (todo) |
BSD 3-Clause
Feel free to contribute to the project! It will be much appriciated! And most importantly, its a Free Software, Hell Yeah!