PHPackages                             ergare17/tasks - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Framework](/categories/framework)
4. /
5. ergare17/tasks

ActiveProject[Framework](/categories/framework)

ergare17/tasks
==============

Ergare Tasks

0.6(8y ago)07MITHTMLPHP &gt;=7.0.0

Since Nov 24Pushed 8y ago1 watchersCompare

[ Source](https://github.com/eric98/Tasks)[ Packagist](https://packagist.org/packages/ergare17/tasks)[ RSS](/packages/ergare17-tasks/feed)WikiDiscussions master Synced 3d ago

READMEChangelogDependencies (16)Versions (33)Used By (0)

Tasks
=====

[](#tasks)

[![Scrutinizer Code Quality](https://camo.githubusercontent.com/25f0e5ee8148b60380d1fce98ddc32ba113db2bae226f3d3a6997128a30b30d1/68747470733a2f2f7363727574696e697a65722d63692e636f6d2f672f6572696339382f5461736b732f6261646765732f7175616c6974792d73636f72652e706e673f623d6d6173746572)](https://scrutinizer-ci.com/g/eric98/Tasks/?branch=master)[![StyleCI](https://camo.githubusercontent.com/7d67d359ddef640d08d47316fd9e95c3175e894463bbb9fda86c764d0a150aaa/68747470733a2f2f7374796c6563692e696f2f7265706f732f3130373137333131332f736869656c643f6272616e63683d6d6173746572)](https://styleci.io/repos/107173113)[![Build Status](https://camo.githubusercontent.com/6e55edb5a23c95943b4ede97b5073a6cb1bb8b1df508387d3c5fc85376aced8d/68747470733a2f2f7472617669732d63692e6f72672f6572696339382f5461736b732e7376673f6272616e63683d6d6173746572)](https://travis-ci.org/eric98/Tasks)[![Latest Stable Version](https://camo.githubusercontent.com/ea5ce289e1a7ee5f7d1fa40012ff39ef1005ecc73364818e9b3ff545b03aad26/68747470733a2f2f706f7365722e707567782e6f72672f65726761726531372f7461736b732f762f737461626c65)](https://packagist.org/packages/ergare17/tasks)[![Total Downloads](https://camo.githubusercontent.com/515f8a3f06e02e7609b5d115cf0bb94f3abfb1e6192036c13cfa8a302914d62d/68747470733a2f2f706f7365722e707567782e6f72672f65726761726531372f7461736b732f646f776e6c6f616473)](https://packagist.org/packages/ergare17/tasks)[![Latest Unstable Version](https://camo.githubusercontent.com/b75475ca18aabc9e46fd83cb6ae79d5e212878b2df37bbdf197631dfa8e71d01/68747470733a2f2f706f7365722e707567782e6f72672f65726761726531372f7461736b732f762f756e737461626c65)](https://packagist.org/packages/ergare17/tasks)[![License](https://camo.githubusercontent.com/0748ca7cd760bc26cc9434b1722bb2be2a3f1a2da2c5ad8c072edacef649b975/68747470733a2f2f706f7365722e707567782e6f72672f65726761726531372f7461736b732f6c6963656e7365)](https://packagist.org/packages/ergare17/tasks)[![Monthly Downloads](https://camo.githubusercontent.com/9a5968d849299d93634a27b315a43b1b79b41b6e943c8b0344b73dae90a7dcc1/68747470733a2f2f706f7365722e707567782e6f72672f65726761726531372f7461736b732f642f6d6f6e74686c79)](https://packagist.org/packages/ergare17/tasks)[![Daily Downloads](https://camo.githubusercontent.com/bd5d8733995462213d458a42630cc6e1c9630db32371ed0f9595a268f29ec5a5/68747470733a2f2f706f7365722e707567782e6f72672f65726761726531372f7461736b732f642f6461696c79)](https://packagist.org/packages/ergare17/tasks)[![composer.lock](https://camo.githubusercontent.com/636bf27e22b8b39682f3ea505295f0884e3b530bd887479977e19f4c0127b36d/68747470733a2f2f706f7365722e707567782e6f72672f65726761726531372f7461736b732f636f6d706f7365726c6f636b)](https://packagist.org/packages/ergare17/tasks)[![Dependency Status](https://camo.githubusercontent.com/9542e2d17d416bcaa71f7608c9defd87bef850bbd4b19abb61c5fb2265fac399/68747470733a2f2f7777772e76657273696f6e6579652e636f6d2f757365722f70726f6a656374732f3561313834376538306662323466323132616662333433652f62616467652e7376673f7374796c653d666c61742d737175617265)](https://www.versioneye.com/user/projects/5a1847e80fb24f212afb343e)

Tasques
=======

[](#tasques)

MP7:

- Webs interessants:

    - FlatIcon
    - Unsplash
    - Placeholder o lorempixel
    -
- CRUD de tasques per línia de comandes (vegeu més abaix notes sobre les comandes):

    - Comanda task:create:
        - Dos opcions amb nom de tasca o sense nom i executar un assistens pregunti pel nom
    - Idem que l'anterior però Task:delete
    - Comanda task:list: mostrar la llista de tasques
    - Opcional task:edit i task:show
    - Crear els tests necessàris per les comandes. Utilitzar Mocks per tal de poder respondre a preguntes
- TDD:

MP8: Crud per interfície JSON API

- Només treballem amb Javascript/Vue (no hi ha controlador només vista)
- La vista es comunica amb el servidor(backend) via peticions API JSON
- URL: /tasks
- Components Vue: resources/asssets/js/components. Crear:
    - TaskViewsComponent que inclou els següents components:
        - MessageComponent per mostrar missatges flash
        - WidgetComponent per utilitza widget adminlte
        - TaskComponent: mostra les tasques dind del widget
    - Comunicació entre widgets i events.
- Widgets específics: select: multiselect
- TDD: tots els endpoitns de l'API tenen el seu corresponent test

MP9:

- URL: /tasks\_php
- CRUD per interfície web
    - Totes les operacions han de tenir el test específic
    - Una vista per create i una per edit.
- Protegir les tasques utilitzant autenticació per web (sessió) i autenticació per API (Token)
- Afegir suport per a Social Login
- Afegir suport per authorizació: roles i permissos, gates Laravel. Paquet laravel-permission

TODO. Refactoritazació
======================

[](#todo-refactoritazació)

Comparar 3 interfícies:

- WEB
- JSON API
- CLI

i aprofitar codi (aproximació DRY no WET):

Qüestions a tenir en compte:
----------------------------

[](#qüestions-a-tenir-en-compte)

- Modificar fitxer viwe Laravel sidebar.php per modificar el menu i tenir dos opcions de menú que apuntin a l'exercici de MP9 i al de MP7

TODO /Notes professor
---------------------

[](#todo-notes-professor)

MP8: Ajax | HTTP CLIENT AXIOS | Working wiht APIs: JSON

Promise Based Axios:

-
- Necessitem tenir accés al MODEL/BASE DE DADES via API: vam començar jugar tema API JSON a: --

TODO:

- CRUD sencer: tenim LIST falta:
    - SHOW
    - STORE
    - EDIT
    - DELETE

JSON APIS:

-

Mostrar els errors (catch de promises, missatges d'error de la pròpia API)

- Que mostrar sinó hi ha cap TODO (base de dades buida)
- Errors HTTP (500, 404, timeouts per que no funcioni connexió) &lt;- Útil per provar mètode abort Laravel

MP8: Vue.js

TLTR:

- Explicar slots: Widget/Panel boostrap -&gt; Col·locar en algún lloc la llista de todos: dins un widget
- Components pares i fills -&gt; comunicació entre components
- Vue Events i Event Dispatcher -&gt; Comunicació entre esdeveniments

    - API $emit (entre esdeveniment) i $on (handler).
    - Object global Window.Event = new Vue -&gt; Objecte compartir entre tots els components
- Llista de todos/tasques dins d'un widget AdminLTE:
- Aprofitar per explicar slots i named slots de Vue.js per fer Content Distribution:

    - Els slots permeten posar components dins altre components i també customitzar parts d'un widget com Footer, Content , Header
- Ja tinc un paquet per anar posant els components AdminLTE fets:

    -
- MOSTRAR ERRORS API i missatges ok (added task) &lt;- MessageComponent
- Utilitzar component vam fer en un altre projecte: message /flash message MessageComponent

    - Message component: Funció global flash per mostrar un missatge flash &lt;- Refactorització:
        - Patró de comunicació entre components EVENT DISPATCHER:  |
            -
- Altres llibreries i noms

    - Toastr:
    - Gritter

COMPONENTS
----------

[](#components)

- tasks
    - adminlte-widget
        - HEADER: title
        - CONTENT: Task list
        - FOOTER:
            - create-task
            - Filters
- message component

Done
----

[](#done)

Commands
--------

[](#commands)

CLI: another interface (like WEB or API JSON)

php artisan make:command CreateTask

API:

1. Wizard:

```
php artisan make:task

```

Preguntar pel nom de la tasca

2. Nom de la tasca com a paràmetre

```
php artisan make:task taskname

```

Instal·lació vue test utils
===========================

[](#installació-vue-test-utils)

Install npm libraries:

```
npm install --save-dev vue-test-utils mocha mocha-webpack jsdom jsdom-global expect

```

Create folder for Tests and file setup.js

```
tests/Javascript/setup.js

```

Example JSON:

File content:

```
require('jsdom-global')()

```

Add mpm script test on package.json:

```
"test" : mocha-webpack --webpack-config=node_modules/laravel-mix/setup/webpack.config.js --require tests/Javascript/setup.js tests/Javascript/**/*.spec.js

```

Hooking into Laravel mix: Observe --webpack-config=node\_modules/laravel-mix/setup/webpack.config.js

Folder for Javascript Tests:

```
tests/Javascript

```

Execute tests:

```
npm run test

```

PHPStorm configuration

- New run configuration mocha
- Change mocha executable to mocha-webpack!!!

Example test:

-

Exemple sense Laravel Mix:

-

**Resources**

-
-
-
-
-
    -

Recursos
--------

[](#recursos)

-
    -

Vuetable:

npm i babel-plugin-transform-runtime babel-preset-stage-2 babel-preset-es2015

###  Health Score

25

—

LowBetter than 37% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity4

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity59

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 99.3% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~8 days

Recently: every ~24 days

Total

14

Last Release

2978d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/6da3766bd1a2f07ec6bff45d147ea7445431c85af4ea180b19252ad431bc5778?d=identicon)[eric98](/maintainers/eric98)

---

Top Contributors

[![eric98](https://avatars.githubusercontent.com/u/23049504?v=4)](https://github.com/eric98 "eric98 (274 commits)")[![acacha](https://avatars.githubusercontent.com/u/4015406?v=4)](https://github.com/acacha "acacha (2 commits)")

---

Tags

frameworklaravel

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/ergare17-tasks/health.svg)

```
[![Health](https://phpackages.com/badges/ergare17-tasks/health.svg)](https://phpackages.com/packages/ergare17-tasks)
```

###  Alternatives

[bagisto/bagisto

Bagisto Laravel E-Commerce

26.2k161.6k7](/packages/bagisto-bagisto)[unopim/unopim

UnoPim Laravel PIM

9.4k1.8k](/packages/unopim-unopim)[nasirkhan/laravel-starter

A CMS like modular Laravel starter project.

1.4k2.7k](/packages/nasirkhan-laravel-starter)[juzaweb/cms

Juzaweb CMS is a Content Management System (CMS) developed based on Laravel Framework and web platform whose sole purpose is to make your development workflow simple again. Project develop by Juzaweb

187571.2k](/packages/juzaweb-cms)[marketplacekit/marketplacekit

Open source Marketplace Platform

8185.2k](/packages/marketplacekit-marketplacekit)[lms-laravel/lms-laravel

The Laravel Framework.

4981.8k](/packages/lms-laravel-lms-laravel)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
