paint-brush
Avantages, inconvénients et pièges de Laravel Nova : une étude de cas sur le développement du système ERP pharmaceutiquepar@jatapp
3,453 lectures
3,453 lectures

Avantages, inconvénients et pièges de Laravel Nova : une étude de cas sur le développement du système ERP pharmaceutique

par JatApp8m2023/05/18
Read on Terminal Reader

Trop long; Pour lire

L'étude de cas révèle les principaux avantages, inconvénients et coins sombres de Laravel Nova. L'histoire tourne autour du projet détenu par JatApp, une société de développement de logiciels ukrainienne. Le client de JatApp, une société pharmaceutique, avait besoin d'un système ERP pour améliorer la gestion de sa chaîne d'approvisionnement. Étant donné que la solution doit être livrée dès que possible, Laravel Nova a été choisie comme une technologie capable de fournir des résultats rapides mais de qualité.
featured image - Avantages, inconvénients et pièges de Laravel Nova : une étude de cas sur le développement du système ERP pharmaceutique
JatApp HackerNoon profile picture

« Le plus vite possible » . L'expression que vous pouvez certainement associer aux entreprises qui souhaitent développer une solution logicielle personnalisée.


C'est pourquoi les agences de développement de logiciels essaient d'utiliser des technologies qui peuvent garantir aux dirigeants d'entreprise et aux fondateurs de startups un processus de développement de produit rapide. JatApp , un fournisseur de développement de logiciels ukrainien, a travaillé avec un tel client.


Laravel Nova était la technologie de choix car elle devait livrer au client un produit fonctionnel dans les plus brefs délais.


Laravel Nova a-t-il atteint son objectif ? Découvrons-le dans l'étude de cas suivante.


Laravel Nova en action


Une entreprise pharmaceutique avait besoin de son système ERP personnalisé

La gestion de la logistique et des chaînes d'approvisionnement dans l'industrie pharmaceutique est une lourde tâche.


Les réglementations légales, les exigences spécifiques pour le stockage des produits, la forte variabilité de la demande et les ruptures d'approvisionnement sont les principaux obstacles à une livraison fluide et rapide des produits pharmaceutiques sur l'ensemble de la chaîne d'approvisionnement.

Une chaîne d'approvisionnement typique dans l'industrie pharmaceutique


En outre, de nombreuses entreprises enregistrent manuellement leurs données de gestion de la chaîne d'approvisionnement, ce qui entraîne également des retards et de la confusion. Par conséquent, toute la chaîne d'approvisionnement est confrontée à un sérieux goulot d'étranglement en termes de performances.


Le client de JatApp avait l'intention d'éliminer ces processus mal équipés de sa gestion de la chaîne d'approvisionnement en développant un système de planification des ressources d'entreprise (ERP) personnalisé à usage interne.


L'application ERP devait numériser, optimiser et automatiser toutes les opérations de gestion de la chaîne d'approvisionnement au sein d'un système partagé unique accessible à toutes les parties prenantes de la chaîne d'approvisionnement.


Même si le client était bien conscient des problèmes de logistique de l'industrie pharmaceutique, l'entreprise n'avait apparemment aucune expertise en développement de logiciels. C'est pourquoi le client s'est adressé à JatApp pour demander une assistance technique.


Mais ici, cette chose «aussi vite que possible» est apparue. L'entreprise du client a dû investir beaucoup d'argent au départ, et leur désir d'obtenir rapidement un résultat tangible était naturel.


En plus de cela, le client ne voulait pas trop se concentrer sur l'interface utilisateur (UI) de l'ERP. Ils avaient l'intention de l'utiliser uniquement en interne, de sorte que toutes les cloches et sifflets supplémentaires pour rendre la solution commercialisable n'étaient pas obligatoires.


L'objectif principal était de développer la solution assez rapidement pour commencer à l'utiliser dès que possible pour le client. Nous avions évidemment besoin d'une pile technologique qui pourrait bien servir cet objectif.

Laravel Nova est une question de commodité et d'efficacité

Le système ERP était nécessaire pour automatiser et accélérer les opérations sur l'ensemble de la chaîne d'approvisionnement de l'entreprise, c'est pourquoi le développement d'un panneau d'administration robuste pour le contrôle des enregistrements de données et des autorisations des utilisateurs était la priorité absolue.


Et n'oublions pas que le processus de développement doit être à la fois rapide et efficace.


Pour ces raisons, l'équipe d'ingénierie logicielle de JatApp a décidé d'utiliser Laravel Nova comme outil pour gagner du temps et des efforts dans le codage du panneau d'administration. Mais pourquoi Laravel Nova ?


Laravel Nova est un panneau d'administration commerciale pour Laravel, un cadre d'application Web PHP populaire. Il est conçu pour fournir aux développeurs une interface personnalisable et facile à utiliser pour gérer l'administration de leurs applications Laravel.


Avec Laravel Nova, les développeurs de logiciels peuvent créer rapidement et facilement une interface d'administration Web qui leur permet de gérer divers aspects de leur application, tels que la gestion des utilisateurs, la gestion du contenu et d'autres tâches administratives.


Il comprend des fonctionnalités telles que des listes de ressources consultables, des filtres, des formulaires, des actions, des mesures et des autorisations.


Laravel Nova est construit avec Vue.js qui s'intègre bien avec PHP Laravel car Laravel prend en charge Vue.js en tant que solution prête à l'emploi.


Inutile de dire qu'une telle compatibilité de Nova et Vue.js apporte une grande flexibilité dans le développement de logiciels car la création de pages personnalisées, de champs, etc. devient possible.


C'est la raison générale pour laquelle nous avons choisi Laravel Nova. Mais la commodité et l'efficacité dans le développement de logiciels ne sont pas des termes abstraits et subjectifs.


Notre équipe a trouvé en Laravel Nova une solution efficace et pratique pour le projet du client en raison des avantages suivants :

Composants prêts à l'emploi

Laravel Nova propose une large gamme de solutions prêtes à l'emploi qui ont permis à nos développeurs de logiciels de composer le panneau d'administration de l'ERP avec une efficacité maximale : des menus, des filtres, des actions et des champs de recherche prêts à l'emploi ont été faciles à assembler en un ensemble complet. panneau d'administration à part entière.


Cependant, Laravel Nova n'est pas une plate-forme low code/no mais un outil avec une série d'éléments prédéfinis nécessaires à l'administration d'une application. Notre équipe devait encore écrire le code pour personnaliser et étendre ces composants en fonction des exigences du système.

Opérations CRUD sans prise de tête

La gestion de la chaîne d'approvisionnement de l'entreprise implique des tonnes de données qui doivent être échangées entre les différentes parties prenantes. C'est pourquoi il était primordial de rendre les données précises, facilement mises à jour et cohérentes sur l'ensemble de la chaîne d'approvisionnement.


Pour faire face à ce défi, l'équipe de JatApp a dû proposer une gestion appropriée des opérations dites CRUD.


Les opérations CRUD font référence aux fonctions de base nécessaires à la gestion des données dans la plupart des applications logicielles. CRUD signifie Créer, Lire, Mettre à jour et Supprimer, et ces opérations correspondent aux quatre fonctions de base que vous pouvez effectuer sur les données.



Dans le contexte de PHP Laravel, les opérations CRUD sont utilisées pour interagir avec une base de données et effectuer des actions telles que la création, la lecture, la mise à jour et la suppression d'enregistrements. Avec Laravel Nova, la navigation dans les opérations CRUD a été un jeu d'enfant pour notre équipe.


L'outil a facilité la structuration de l'architecture des données, permettant ainsi un gain de temps important sur le développement de l'ERP. Laravel Nova fournit une validation intégrée qui garantit que les données sont saisies correctement et répondent à des critères spécifiques.


Cela nous a aidés à rendre le système sensible aux erreurs. De cette manière, les utilisateurs de l'application ERP ont peu de chances de soumettre des données erronées ou non pertinentes au système.


Laravel Nova prend également en charge les relations entre différentes tables de base de données, ce qui simplifie le processus d'exécution des opérations CRUD sur les données associées. Cela était particulièrement important pour l'application ERP car elle devait impliquer des structures de données complexes avec plusieurs tables liées.


Les relations nous ont aidés à nous assurer que les données saisies dans le système sont toujours cohérentes et exactes. De plus, la fonction de relations a permis à nos ingénieurs logiciels de simplifier le code et de faciliter sa maintenance dans le temps.


Outre une bonne gestion des données, le client a souligné qu'il était important pour lui d'éviter l'effacement complet des données. Laravel Nova a pu résoudre cette tâche en un claquement de doigts, grâce à la fonctionnalité appelée suppression douce.


Cette fonctionnalité donne à un élément de données particulier le statut d'être exclu d'un ensemble de données, mais l'élément reste stocké dans la base de données.

Les champs personnalisés

Le système ERP est utilisé par de multiples parties prenantes, ce qui signifie que le risque d'erreur humaine est élevé. C'est là que la fonction de champs personnalisés de Laravel Nova s'est avérée utile.


Les champs personnalisés dans Laravel Nova nous ont permis de créer et de personnaliser des champs dans le panneau d'administration qui étaient essentiels aux exigences de données de l'application ERP.


Avec les champs personnalisés, notre équipe a ajouté de nouveaux types de champs de saisie, personnalisé l'affichage des champs existants et créé des types de champs complexes pouvant être utilisés pour collecter ou afficher des données.


Nous avons créé des champs de saisie adaptés aux données du système et amélioré l'efficacité et la précision des opérations CRUD.


Ainsi, la saisie des données dans le système ERP est devenue plus intuitive pour les utilisateurs, tandis que la qualité des données s'est améliorée grâce à l'application de formats de saisie et de règles de validation spécifiques.

Politiques de gestion des autorisations

Nous avons mentionné que l'utilisation du système ERP était censée impliquer différentes parties : les employés du stockage, les chauffeurs, les clients, etc. Pour cette raison, il était crucial d'isoler tous les flux d'utilisateurs afin de s'assurer que les parties prenantes n'interfèrent pas avec les données des autres.


La fonction de politiques nous a aidés à résoudre cette tâche. Dans Laravel Nova, les politiques sont une fonctionnalité qui permet de définir des règles pour contrôler l'accès aux différentes parties de votre application. Les stratégies définissent les actions qu'un utilisateur peut effectuer sur une ressource, en fonction de son rôle ou de ses autorisations.


Grâce à cette fonctionnalité, nos développeurs ont pu créer un large éventail d'autorisations pour chaque utilisateur. La mise en œuvre des autorisations dans le système a évité de nombreuses confusions puisque chaque utilisateur avait accès aux données qui le concernaient.

La commodité ne va pas sans défis

Même si Laravel Nova était un outil pratique pour créer rapidement et facilement le panneau d'administration, il y avait un obstacle majeur : les éléments du panneau n'étaient pas entièrement personnalisables.


L'outil fournissait une large gamme de composants prêts à l'emploi pour le développement de panneaux d'administration même complexes, mais beaucoup d'entre eux ne répondaient tout simplement pas à nos exigences.


Comme cela arrive souvent avec l'utilisation de solutions prêtes à l'emploi, vous devenez leur prisonnier. Dans les dernières étapes du développement, notre équipe a été confrontée à des défis liés à la personnalisation de plusieurs composants, car Laravel Nova ne les a pas personnalisés comme nous le souhaitions.


Sans aucun doute, ces défis ont quelque peu ralenti le rythme du processus de développement.


Grâce à l'inventivité et à la créativité de notre équipe de développement, nous avons trouvé des moyens non évidents mais fonctionnels pour que l'ERP réponde à ses exigences et ressemble à ce qu'il était.


Pour sortir du piège de la "solution prête à l'emploi", nous avons dû utiliser Vue.js pour que l'interface du système ressemble exactement à la spécification des exigences logicielles indiquées.


Laravel Nova nous a incités à l'utiliser en offrant des possibilités de personnalisation presque infinies, mais nous aurions dû lancer une courte démo pour voir si ces capacités sont vraiment si bonnes dans la pratique.


La bonne nouvelle est que nos développeurs de logiciels ont résolu le problème en sortant des sentiers battus et en trouvant une solution créative. Le jeu de mots voulu, soit dit en passant.

Laravel Nova vaut-il la peine d'être essayé ?

Oui mais…


Laravel Nova est un bon outil pour créer rapidement un panneau d'administration, quelle que soit la complexité de l'application. L'outil nous a aidés à développer un tel panneau d'administration pour le système ERP du client.


Le client était satisfait du résultat et prévoit même de faire évoluer la solution pour optimiser les processus dans d'autres aspects de son activité pharmaceutique.


Mais la liberté de personnaliser chaque bouton brillant et chaque coin sombre de votre panneau d'administration est insaisissable. Cela signifie que vous devez être absolument sûr que Laravel Nova conviendra parfaitement à votre projet ou que votre équipe est suffisamment créative et compétente pour lisser les angles de composants obstinément non personnalisables.


Notre verdict et leçon apprise : Laravel Nova est un outil assez efficace pour le développement rapide d'un panneau d'administration, mais vous devriez veiller à exécuter une courte démo pour vous assurer que vous êtes parfaitement d'accord avec ce que cet outil peut apporter à la table.