On utilise Laravel Nova et on trouve ça cool ! 

Découvrez pourquoi Laravel Nova simplifie la création de back-offices

Vous cherchez à développer un back-office robuste ? Laravel Nova est certainement une très bonne solution… Il permet de développer une application très rapidement tout en reposant sur des technologies fiables. Et, c’est un peu notre crédo chez TheCodingMachine. Alors lorsqu’on a découvert Laravel Nova, on s’est dit qu’il fallait que l’on vous en parle. 

#1. Bon d’abord, qu’est-ce que Laravel Nova ? 

C’est un outil de conception de back-office, s’appuyant sur le très solide framework PHP Laravel

Laravel Nova permet de réduire à néant toutes les complexités inhérentes à la création d’un back-office d’administration (formulaire de création d’éléments complexes, affichage de listes triées, filtrées et paginées, déclenchement d’actions de masses, etc.), grâce à des outils clés en mains, robustes, et éprouvés.

Conçu pour drastiquement simplifier la mise en place de back-offices sur mesure, voici pourquoi vous devriez envisager d’utiliser Laravel Nova : 

  • Laravel Nova offre une interface utilisateur prête à l’emploi élégante. Vous n’avez pas besoin de créer une interface d’administration complexe depuis zéro. La gestion du menu, des listes, des formulaires, des erreurs, ou encore des dashboards est facilitée à travers des composants déjà pré-établis qualitatifs.
  • Rapidité de développement : en fournissant l’intégralité des vues et des composants du back-office, Laravel Nova permet de gagner du temps et de réduire la charge de travail de développement. Il permet notamment de générer des CRUD (interfaces pour les opérations de création, lecture, mise à jour et suppression des données) rapidement à partir du modèle de données, ou bien encore d’intégrer des fonctionnalités de recherche, tris et filtres  puissants. 
  • Bien que Nova fournisse des modèles de base, il est également personnalisable. Vous pouvez ajouter des champs et des outils personnalisés pour répondre aux besoins spécifiques de votre application. D’ailleurs chez TheCodingMachine, on adore concevoir des nouveaux champs, métriques ou ressources complètes sur-mesure pour nos clients : n’hésitez pas à suivre notre Github, on prévoit bientôt de mettre à disposition des composants Laravel Nova open-source !
  • Nova est spécialement conçu pour fonctionner en cohérence avec Laravel. Il tire parti des fonctionnalités telles que l’authentification, les autorisations, les migrations de base de données, les modèles Eloquent (détaillé ci-dessous), les validations, etc.
  • Nova intègre un système de gestion des autorisations qui vous permet de définir précisément qui peut accéder à quelles parties du back-office. Vous pouvez gérer les rôles et les autorisations de manière centralisée.

Nova propose un journal d’audit qui enregistre toutes les activités effectuées dans le back-office, ce qui peut être utile pour le suivi de l’activité des utilisateurs et la résolution de problèmes. Il est aussi optimisé pour être performant. 

Enfin, Laravel et Nova disposent d’une grande communauté de développeurs, ce qui signifie que vous pouvez trouver un grand nombre de ressources, de packages complémentaires et de documentation pour vous aider dans votre développement.

D’ailleurs, c’est le fondateur de Laravel qui est le créateur de Laravel Nova !

Exemple d'un back-office généré avec Laravel Nova.

#2. Ce qui est le plus cool : interagir simplement avec la base de donnée

Eloquent est l’ORM (Object-Relational Mapping) inclus avec Laravel. Il fournit une manière simple de travailler avec les bases de données, qu’importe la technologie utilisée (MySQL, MariaDB, PostgreSQL, SQL Server, etc.). 

Un modèle Eloquent est une classe qui représente une table dans votre base de données. Chaque modèle correspond à une table, et chaque instance du modèle correspond à un enregistrement dans cette table. Ces modèles permettent donc d’effectuer des requêtes sur la base de données de manière intuitive, en utilisant une syntaxe orientée objet.

Laravel Nova utilise les modèles Eloquent pour interagir avec les données de la base de données. Pour chaque modèle Eloquent que vous souhaitez gérer via l’interface d’administration de Nova, vous créez une « Resource » Nova correspondante qui définit comment ce modèle est présenté dans l’interface Nova, y compris les champs, les filtres, les actions, etc. 

Et ce qui est très fort, c’est que vos modèles peuvent être liés à d’autres entités (par exemple un utilisateur appartient à une entreprise, ou à l’inverse une entreprise est composée de plusieurs utilisateurs), Laravel Nova sait parfaitement représenter ces informations.

En résumé :  Nova étend la fonctionnalité des modèles Eloquent en fournissant une interface utilisateur graphique pour interagir avec ces modèles.

#3. Les alternatives à Laravel Nova

Il existe de nombreuses alternatives à Laravel Nova que nous allons prochainement tester (stay tuned !) : 

Voyager :

Voyager, souvent appelé l’Admin Panel pour Laravel, est une solution complète qui combine un outil d’administration avec un système de gestion de contenu intégré. Il est particulièrement apprécié pour sa simplicité d’installation et son interface utilisateur. Voyager propose une série de fonctionnalités clés telles que le CRUD (Créer, Lire, Mettre à jour, Supprimer) pour les modèles de base de données, un gestionnaire de rôles et de permissions, et un constructeur de menus, rendant la gestion de l’application Laravel plus efficace et intuitive. 

BackPack for Laravel :

BackPack for Laravel est une collection de packages qui fournit une solution d’administration personnalisable pour les applications Laravel. Il excelle dans la création d’interfaces d’administration complexes, offrant des fonctionnalités telles que la gestion des CRUD, des filtres avancés, et des formulaires avec validation. BackPack se distingue par sa capacité à étendre et personnaliser presque tous les aspects de l’interface d’administration, permettant aux développeurs de créer des back-offices qui s’adaptent parfaitement aux besoins spécifiques de leur application. Avec son architecture modulaire et ses nombreuses options de configuration, BackPack est idéal pour les projets nécessitant une approche plus sur mesure de la gestion de l’administration.

Conclusion

Il est nécessaire de parler des limites de Laravel Nova. D’abord, c’est un outil payant, ce qui peut être un facteur à prendre en compte. Il faut aussi avouer que cet outil vient avec les inconvénients de ses avantages comme par exemple, il est complexe de développer certaines fonctionnalités lorsqu’elles sont fournies en standard. 

Mais pour résumer, utiliser Nova avec Laravel simplifie considérablement la création de back-offices pour les applications web. Cela permet aux développeurs de se concentrer sur la logique métier de leur application plutôt que sur la création d’une interface d’administration complexe. 

Et, si vous souhaitez nous solliciter pour un projet Laravel Nova, n’hésitez pas à me contacter ! 

Laravel Nova, c'est cool - Aurélien Mutin

MVP SAAS Pourquoi et comment le développer rapidement

Faire un MVP (Minimum Viable Product) permet de tester très vite un marché. Comme nos clients, nous avons toujours beaucoup d’idées à tester ! Par exemple, depuis que nous existons, nous avons lancé différents projets de MVP SAAS : 

  • Apideo (2008): API pour permettre la diffusion de flux vidéo en temps réel sur des sites web (imaginez un vendeur qui puisse vous parler directement sur le site internet que vous visitez), 
  • Butterflive (2010): calcul de votre appétence pour un site, interagir sur le site en fonction de votre navigation (pensez à un site qui se transforme au fur et à mesure que vous naviguez), 
  • Domyplaylist (2014): outil pour gérer des playlists depuis Soundcloud ou Youtube pour streamer de la musique gratuitement, 
  • Workadventure (2020): univers que vous pouvez adapter permettant de faire des rencontres en Visio (vous pouvez faire la map de votre bureau, inviter l’ensemble des collaborateurs et interagir comme si vous y étiez). 

Et je dois en oublier ! J’aime encore toutes ces idées même si certaines commencent à dater et nous avons beaucoup appris. Mais je dois avouer que seuls quelques-uns de ces projets ont été commercialisés. Nous ne leur avons pas donné toutes les chances de réussir. Beaucoup de raisons nous ont fait abandonner certains de ces projets : manque de temps et/ou de ressources pour s’en occuper, investissement nécessaire… 

Retour d’expérience : développer un MVP SAAS avec Laravel Spark

Alors, pour tenter de réduire le coût de commercialisation de nos MVP SAAS, nous avons trouvé une solution qui a des limites mais sur laquelle nous pouvons vous faire un retour d’expérience : Laravel Spark

Laravel Spark est un boilerplate payant (99$) qui permet de démarrer très rapidement le développement d’un MVP SAAS. Il fournit de base une gestion des utilisateurs, des logins, des équipes. Il supporte la notion d’abonnement et est fourni avec une intégration à la plateforme de paiement Stripe.

La prise en main n’est pas complètement immédiate. Peut être parce que nous l’avons testé au moment de la migration de Laravel 7 à Laravel 8. Nous avons rencontré quelques problèmes à l’installation que nous avons surmontés. Une fois installé, le produit fait le job. L’écosystème Laravel a évolué très vite récemment (notamment avec des solutions comme Laravel Livewire qui changent complètement la manière de faire du front). Laravel Spark ne bénéficie hélas pas encore de ces évolutions (il reste basé sur l’ancienne manière de gérer le front avec VueJS et le paquet « Laravel UI »).

En bref, ça fonctionne, ce n’est pas forcément « state of the art », mais ça nous a permis d’économiser 2 à 4 semaines de travail et de nous focaliser sur ce qui fait la différence : notre produit.

Faire un MVP SAAS ne doit pas vous faire oublier que de nombreuses autres tâches sont associées au lancement d’une telle plateforme : 

  • en faire parler sur les réseaux,
  • développer une stratégie commerciale, 
  • chercher à satisfaire les premiers clients, 
  • définir une roadmap produit,
  • construire un business model.

Beaucoup d’éléments qui nécessitent de nombreux efforts ! Et des efforts qui doivent être tenus dans le temps (c’est comme cela que nous avons réussi TheCodingMachine). C’est en général là où l’on pèche et que le projet s’arrête. C’est compliqué de gérer un projet de MVP SAAS en parallèle d’une activité qui marche. Mais nous sommes incorrigibles, notre dernier bébé Workadventure nous plaît tellement qu’encore une fois, nous allons le lancer. Nous avons déjà d’ailleurs des premiers succès : organisation du forum PHP 2020 de l’AFUP, événement de recrutement pour la Société Générale ou encore le festival du digital de Nuremberg. 

En résumé :

Si vous souhaitez partager avec nous la manière dont vous gérez vos “side-business”et votre propre retour sur vos projets de MVP SAAS c’est par ici : contact@thecodingmachine.com !

Jean-Guillaume DUJARDIN (CEO)

From Paris to London, notre CTO anime un workshop à la PHP UK Conference 2020 !

ITW : David Négrier, notre CTO, nous raconte l’expérience de son 1er workshop PHP

« C’est vraiment sympa d’aller dans une conférence où on peut rencontrer des gens de la communauté PHP »
Le 21 février, David s’est rendu au coeur de la ville de Londres, au sein de la célèbre PHP UK Conference. L’opportunité pour lui d’animer un workshop centré sur PHP et GraphQL.
Chaque année, cette conférence vise à proposer un programme complet, accompagné de nombreux speakers, sponsors, et participants. Beaucoup de partage de connaissance et d’échange se font dans cet event, c’est ce qu’affirme David dans son interview.

1. Combien de temps a duré ton workshop ?

C’était une séance de 2h15. J’ai d’abord fait une présentation de 1h sur GraphQL en général ; l’écosystème autour de GraphQL en PHP ; et GraphQLite qui est la librairie PHP que nous avons développée, permettant de faire du GraphQL beaucoup plus facilement.
Suite à ça, j’ai fait une petite démo pour ensuite passer à l’atelier autour de GraphQLite.

2. Combien de personnes étaient présentes à ton workshop ?

Beaucoup, je dirais qu’il y avait une bonne cinquantaine de personnes présentes et accompagnées de leur machine (ordinateur).

3. C’est ton 1er workshop en tant qu’intervenant ?

J’ai déjà fait de nombreux talks, la plupart en France, un à San Francisco en 2007, mais je n’avais jamais animé de workshop. Et en particulier en anglais!

4. Tu étais stressé de présenter ce workshop ?

J’avoue que j’étais un peu stressé. D’ailleurs, j’ai passé plusieurs semaines à le préparer. J’ai même pris le soin d’amener une clé USB pour chaque participant, contenant le projet installé.
Aussi, je stressais par rapport à mon accent anglais, j’ai essayé de m’appliquer oralement pour qu’on me comprenne.

 5. As-tu rencontré des difficultés à mener ce workshop ?

La seule difficulté était le temps. Intervenir dans un workshop de 50 personnes pour seulement 2h, ça passe très vite, et par conséquent ça ne laisse pas assez de place pour l’interaction.
Dans ces situations, on sait qu’il y a des personnes qui n’arriveront pas à suivre, mais il faut malgré tout faire en sorte qu’elles ne s’ennuient pas. Ainsi, la difficulté était de trouver un bon équilibre entre le manque de temps et la pertinence du workshop, mais aussi entre la présentation théorique et les travaux pratiques.
Lors de l’atelier GraphQLite, j’ai tout de même essayé au maximum d’accorder du temps à chaque participant.

6. As-tu assisté à d’autres workshops de la PHP UK Conference en tant que participant ?

Oui bien sûr, j’ai pu participer à 2 ateliers très intéressants dont « ATDD Bowling – A Practical BDD Workshop » présenté par John Behrens, et « Introduction to Time Series » présenté par David McKay.

7. Tu as pu discuter avec des personnes de ton workshop et des personnes en dehors de ton workshop ?

En effet, à la fin de mon workshop, j’ai eu plus de temps pour discuter avec certains participants. D’ailleurs, j’ai pu aider un autre speaker à mettre en place une extension PHPStan. Ces moments d’interaction avec la communauté PHP sont vraiment importants. J’ai même pu rencontrer Georges Banyard, qui travaille sur la gestion des erreurs dans le coeur du langage PHP, un sujet qui nous intéresse énormément à TheCodingMachine puisque nous avons écrit une librairie PHP pour résoudre ce genre de problème.
Puis, j’ai passé la majorité de mon temps à me balader allant à la rencontre d’autres participants & intervenants. J’ai croisé Mathieu Napoli, l’intervenant du workshop « Serverless PHP applications with Bref », une personne que j’admire avec qui j’ai eu l’occasion de discuté plusieurs fois lors d’autres événements.
Bref, c’est vraiment sympa d’aller dans une conférence où on peut rencontrer des gens de la communauté PHP.

8. Si c’était à refaire tu le ferais ? Quelles améliorations apporterais-tu ?

Sans aucune hésitation, oui, je ferais d’autres workshop avec plaisir. C’était vraiment une belle expérience, j’ai rencontré beaucoup de monde, ainsi que des gens que j’avais déjà discuté dans d’autres événements.
Pour mon prochain workshop, je pense que j’essaierai de trouver une solution pour davantage interagir avec les participants.
PHP UK Conference TheCodingMachine

Quelques témoignages des participants au workshop de David :

Témoignage de Chris Hogben
Wow. This tutorial was amazing and could have easily have been a full-day workshop. As Adam says, it was really well prepared with hands-on examples that were easy to follow and see what was happening at each stage. The amount of information provided for each concept was enough to understand and add value, but not too much to slow down the session. It did feel slightly rushed, but this was probably to be expected given the amount of content. Thanks David for this session! 🙂
Témoignage d’Adam Cooper
One of the best prepared workshops I’ve seen in a long time with about as much of an in depth review of the tech/libraries that you could fit into a 2 hour slot.
Merci à David Négrier pour cet interview, retrouvez-le prochainement :

N’hésitez pas à réserver vos places !