Skip to content

Instantly share code, notes, and snippets.

@acacha
Last active November 18, 2019 12:25
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save acacha/461541f97a6c4f3eaefef6be9e1122fc to your computer and use it in GitHub Desktop.
Save acacha/461541f97a6c4f3eaefef6be9e1122fc to your computer and use it in GitHub Desktop.
NOTES

FLOW USUARI NORMAL

Vegeu aplicació ebando per Android. Les interfície/frontend web/nuxt si tenen gestió (creació de canals, CRUD canals i missatges, etc) però les Apps natives Android/Ios només tenen funcionailitats usuaris normals

Notes sobre seguretat:

  • Canals són públics i els missatges també: de fet no caldria usuari a la app mòbil.
  • Crides GET a la API totes públiques!!!

CANVIS EN EL BACKEND

  • Concepte de canal publicat

    • Els canals no apareixen/no són públics als usuaris (només es poden subscriure a canals publicats) fins que no estan publicats:
      • Camp extra: published_at: data de publicació
    • No confondre amb actiu/inactiu: ho deixarem també
    • Test nou unitari: channels_can_be_published
    • Canvi en la funcionalitat: regular users només poden veure canals publicats: refactor tests
    • Canvis a API:
      • Think of different states as different resources adamwathan/laracon2017#4
      • PublishedChannels:
      • api end_point:
        • Route::post('/channels/{id}/publish', 'ChannelsController@publish');
        • Route::post('/published-channels', 'PublishedChannelsController@store');
      • Nous PublishedChannelsController i PublishedChannelsControllerTest
  • Relacions n a n:

    • Problema de noms taules tipus user_channel:
      • No acaba de definir la relació entre usuaris i canals (cnals propietat de l'usuari? Canals als que l'usuari està subscrit?)
      • Importància de conèixer el domini per buscar noms a la relacions. Les relacions en si són models/entitats (especialment es n a n)
      • Millor noms com: subscriptions, owned_channels...
  • Concepte de subscripció:

TDD:

  • Unit Test: class User
    • php artisan make:test --unit UserTest -> tests/Unit/UserTest.php
    • Provar el concepte de subscripció sense crides a la API només mètodes de la classe User i Channels
  • Unit Test: class Channel
    • php artisan make:test --unit ChannelTest -> tests/Unit/ChannelTest.php
  • Feature Tests:
    • Cruddy By design: Tip 3: Treat pivot models as their own resource
    • API ENDPOINT:
      • Route::post('/channel/{id}/subscribe', 'ChannelController@subscribe');
      • Route::post('/subscriptions','Subscriptions@store');
    • php artisan make:test SubscriptionsControllerTest

LAYOUT

  • Plantilla basada en: DRAWER LAYOUT DE NATIVESCRIPT
  • Drawer:
    • Organitzar subcomponents (composition): use de components Layouts
    • Part superior: profile de l'usuari ???
    • Part inferior:
  • Menú navegació:
    • Link a Home
    • Link a subscriure's a un canal (afegr un canal propi de l'usuari)

HOME ( ELS MEUS CANALS)

Canvis al layout

  • Action barTitle: titol Els meus canals FAB: Floating action button:
  • Finestra/Modal amb tancar/backbutton
  • Cercador de canals tipus autocomplete:
    • Mostrar llista de canals i acció inscriure/desinscriure
  • List View: llista dels canals de l'usuari (canals subscrits). Item/detail view
    • Mostrar nom del canal
    • Mostrar icona
    • Nombre de missatges del canal
  • CHANNEL DETAIL VIEW:
    • Mostra el detall d'un canal:
      • Page Native Script amb un Action Bar amb titol nom del canal i back button
      • Navegació per tabs: Missatges/Pregons | Calendari | info del canal | settings
      • ActionBar actions (menu tres punts verticals) -> Marcar tots com llegits
      • Llista de missatges del canal: un altre view detail:
        • Mostra titol i descripció (limit màxim de text i tres punts) del missatge i data creació/publicació
        • Marca de llegit o no llegit
        • Etiquetas del canal
  • MESSAGE DETAIL VIEW:
    • Actions: compartir/marcar com a llegit/eliminar

LOGIN

  • De moment obviar-> accessToken Hardcoded
  • Crear un usuari amb permisos normals a backend, obtenir token i utilitzar aquest token

WIDGETS:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment