ergare17/tasks

Ergare Tasks

Maintainers

Details

github.com/eric98/Tasks

Source

Issues

Installs: 6

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 2

Forks: 0

Open Issues: 0

Language:HTML

Type:project


README

Scrutinizer Code Quality StyleCI Build Status Latest Stable Version Total Downloads Latest Unstable Version License Monthly Downloads Daily Downloads composer.lock Dependency Status

Tasques

MP7:

  • Webs interessants:

  • 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: https://laracasts.com/series/testing-vue

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ó

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:

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:

COMPONENTS

  • tasks
    • adminlte-widget
      • HEADER: title
      • CONTENT: Task list
      • FOOTER:
        • create-task
        • Filters
  • 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:

  1. Wizard:
php artisan make:task

Preguntar pel nom de la tasca

  1. 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

Recursos

Vuetable:

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

https://github.com/ratiw/vuetable-2-with-laravel-5.4/blob/master/resources/assets/js/components/MyVuetable.vue