Laravel packages beoordelingscriteria

Requirements

In de keuzematrix wordt gekeken naar functionaliteiten of opties die te beantwoorden zijn met een ‘ja’ of ‘nee’ antwoord. Op deze manier ontstaat er een overzicht welke pakketten aan de meeste requirements voldoen. 

Basis information

  • URL
  • Type
  • Laravel version (7 of hoger)
  • PHP version (7.3 of hoger)
  • Prijs
  • Community/Support
  • Documentatie
  • Updates frequency
  • Gratis demo/trial
  • Extra plugins of add-ons

Basis requirements (musts)

  • File manager
  • Permission System
  • Menu management
  • Custom templates 
  • Routing
  • Bulk acties (verwijderen, uploaden, editen)
  • WYSIWYG editor (met image crop)
  • Data management
  • Filter en zoekopties in bijv tabellen

Nice to have (out-of-the-box)

  • Multilingual
  • Page management
  • Categories
  • Charts of de optie om een chart library toe te voegen.
  • Tags
  • Styling customization (logo en kleuren)
  • Icon library
  • Responsive
  • Docker

Om werkelijk te bepalen of een package geschikt is worden ze naast de keuzematrix ook beoordeeld op een aantal andere criteria. De criteria geven meer diepgang in het gebruiksgemak van een package, iets wat moeilijk te beoordelen is aan de hand van een “ja” of “nee” antwoord. Een package die voldoet aan alle bovenstaande eisen maar slechte documentatie heeft of nooit wordt geupdate kan net zo onbruikbaar zijn als een package die niet voldoet de eisen.

Documentatie

Het doel van de documentatie is om gemakkelijk en snel het CMS te installeren en functionaliteit in te bouwen. Documentatie zou voldoende moeten beschikken over uitleg waarom of wanneer je bepaalde oplossingen gebruikt.

Voorbeeld: "If you are using the public disk with the local driver, you should run the php artisan storage:link Artisan command to create a symbolic link from public/storage to storage/app/public." - Laravel Nova Documentatie

Daarnaast moeten alle elementen en functies volledig beschreven worden. Dit kan door middel van voorbeeld code en/of met een optie tabel waar alle functies in staan.

Voorbeeld:

Twill.io documentatie van een file upload field.

Community en support

Een grote community kan van grote waarde zijn bij een project wanneer je functionaliteiten moet ombouwen of wanneer je errors krijgt in je code. Het zorgt er ook voor dat het platform blijft groeien omdat er een grote community achter zit die actief bezig is met het verbeteren van het platform. Naast dat je hulp kunt vragen bij de community is het ook waardevol als je direct contact op kan nemen met de makers van het platform.

Frequent updates & easy-to-update

Security en nieuwe features zijn belangrijk om een platform up to date te houden. Kleine maar frequente updates zijn vaak meer waard dan grote updates eens in het jaar. Ook het gemakkelijk kunnen updaten van het platform is van belang om de projecten een langere levensduur te geven.

Gebruiksvriendelijkheid

Een CMS wordt gebruikt door verschillende gebruikers waarbij de technische kennis kan variëren. Een gebruiksvriendelijke UI (User Interface) is van belang voor een goede workflow en tevreden gebruikers. De gebruiksvriendelijkheid wordt in het algemeen en op basis elementen (bijv. filters, knoppen, tabellen, edit forms etc.) beoordeeld.

Toegankelijkheid 

De toegankelijkheid is de combinatie van bovenstaande punten. Bij toegankelijkheid wordt er gekeken naar het gemak waarmee een platform opgezet en customized kan worden door de developers van verschillende niveaus. 

Toegankelijkheid is moeilijk te beoordelen op alleen de website/documentatie van een package, de toegankelijkheid zal daarom alleen beoordeeld worden bij de packages die uitgekozen worden voor het maken van een prototype. 

In de Laravel Package Analyse worden de packages beoordeeld en vergeleken aan de hand van bovenstaande criteria. Uit deze analyse komen drie packages die verder worden onderzochten en getest in een prototype. 

 

Bronnen

https://www.smashingmagazine.com/2021/07/how-to-choose-a-headless-cms/
https://nova.laravel.com/docs/3.0/resources/file-fields.html#how-files-are-stored
https://twill.io/docs/#files