ergare17 / tasks
Ergare Tasks
Installs: 7
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
Language:HTML
Type:project
pkg:composer/ergare17/tasks
Requires
- php: >=7.0.0
 - acacha/admin-lte-template-laravel: ^5.0
 - acacha/forge-publish: ^0.1.10
 - acacha/laravel-social: ^0.1.9
 - acacha/user: ^0.2.2
 - barryvdh/laravel-cors: ^0.11.0
 - fideloper/proxy: ~3.3
 - laravel/framework: 5.5.*
 - laravel/passport: ^4.0
 - laravel/tinker: ~1.0
 - predis/predis: ^1.1
 - spatie/laravel-permission: ^2.7
 
Requires (Dev)
- filp/whoops: ~2.0
 - fzaninotto/faker: ~1.4
 - laravel/dusk: ^2.0
 - mockery/mockery: ~1.0
 - phpunit/phpunit: ~6.0
 
- dev-master
 - 0.6
 - 0.5.5
 - 0.5.1
 - 0.5.0
 - 0.4.1
 - 0.4.0
 - 0.3.9
 - 0.3.8
 - 0.3.7
 - 0.3.6
 - 0.3.5
 - 0.3.0
 - 0.2.0
 - 0.1.0
 - dev-analysis-XamrAB
 - dev-analysis-XpllAa
 - dev-analysis-XammNZ
 - dev-analysis-z466yk
 - dev-analysis-zEddrA
 - dev-analysis-8QY5wg
 - dev-analysis-qJmyno
 - dev-analysis-8by4p5
 - dev-analysis-zRMArp
 - dev-analysis-zOmvMk
 - dev-analysis-zG0PeV
 - dev-analysis-z9eb09
 - dev-analysis-XN0Aov
 - dev-analysis-qynOgD
 - dev-analysis-q5gVMx
 - dev-analysis-8KKVl9
 - dev-analysis-XWYLLG
 - dev-analysis-8nonx0
 
This package is not auto-updated.
Last update: 2025-10-26 10:52:32 UTC
README
Tasques
MP7:
- 
Webs interessants:
- FlatIcon
 - Unsplash
 - Placeholder o lorempixel
 - https://screenpeek.io/
 
 - 
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
 
 - Comanda task:create:
 
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.
 
 - TaskViewsComponent que inclou els següents components:
 - 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ó
Comparar 3 interfícies:
- WEB
 - JSON API
 - CLI
 
i aprofitar codi (aproximació DRY no WET):
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
MP8: Ajax | HTTP CLIENT AXIOS | Working wiht APIs: JSON
Promise Based Axios:
- https://laracasts.com/series/es6-cliffsnotes/episodes/13
 - Necessitem tenir accés al MODEL/BASE DE DADES via API: vam començar jugar tema API JSON a: -- https://github.com/acacha/tinkeringJsonApi
 
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ó) <- Útil per provar mètode abort Laravel
 
MP8: Vue.js
TLTR:
- 
Explicar slots: Widget/Panel boostrap -> Col·locar en algún lloc la llista de todos: dins un widget
 - 
Components pares i fills -> comunicació entre components
 - 
Vue Events i Event Dispatcher -> Comunicació entre esdeveniments
- API $emit (entre esdeveniment) i $on (handler).
 - Object global Window.Event = new Vue -> Objecte compartir entre tots els components
 
 - 
Llista de todos/tasques dins d'un widget AdminLTE: https://adminlte.io/themes/AdminLTE/pages/widgets.html
 - 
Aprofitar per explicar slots i named slots de Vue.js per fer Content Distribution: https://vuejs.org/v2/guide/components.html#Content-Distribution-with-Slots
- 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: https://www.npmjs.com/package/adminlte-vue
 - 
MOSTRAR ERRORS API i missatges ok (added task) <- MessageComponent
 - 
Utilitzar component vam fer en un altre projecte: message /flash message MessageComponent
- Message component: Funció global flash per mostrar un missatge flash <- Refactorització:
- Patró de comunicació entre components EVENT DISPATCHER: https://laracasts.com/series/learn-vue-2-step-by-step |
 
 
 - Message component: Funció global flash per mostrar un missatge flash <- Refactorització:
 - 
Altres llibreries i noms
- Toastr: http://codeseven.github.io/toastr/demo.html
 - Gritter
 
 
COMPONENTS
- tasks
- adminlte-widget
- HEADER: title
 - CONTENT: Task list
 - FOOTER:
- create-task
 - Filters
 
 
 
 - adminlte-widget
 - message component
 
Done
Commands
CLI: another interface (like WEB or API JSON)
https://laravel.com/docs/5.5/artisan
php artisan make:command CreateTask
API:
- Wizard:
 
php artisan make:task
Preguntar pel nom de la tasca
- Nom de la tasca com a paràmetre
 
php artisan make:task taskname
Instal·lació 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:
https://github.com/acacha/relationships/blob/master/tests/Javascript/setup.js
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
- https://vue-test-utils.vuejs.org/en/guides/testing-SFCs-with-mocha-webpack.html
 - https://laracasts.com/series/testing-vue/episodes/6
 - https://github.com/vuejs/vue-test-utils
 - https://vue-test-utils.vuejs.org/en/guides/getting-started.html
 - https://github.com/acacha/relationships
 
Recursos
Vuetable:
npm i babel-plugin-transform-runtime babel-preset-stage-2 babel-preset-es2015