J’ai un peu l’impression de les enchaîner ces temps-ci lol!
Je sais que vous aimez entendre parler de mes bons coups, mais je pense qu’on apprend tellement plus quand on partage les moins bons coups!
Non seulement ça, mais j’ai dû refaire une application web à partir de zéro en moins d’une semaine alors j’imagine que ceux qui veulent se faire une startup techno vont trouver ça intéressant!
Bref… Ça fait quelque temps que je suis en train de travailler sur un projet de têtes de caméra intelligentes pour mes studios intelligents.
L’Idée est de me prendre un actuateur linéaire (pour contrôler la hauteur), un sensor de distance (pour contrôler l’actuateur), un moteur pour bouger la caméra sur le plan X et un autre sur le plan Y.
Anyways, l’idée est ensuite de permettre aux gens de contrôler les caméras avec une application web progressive via leur téléphone cellulaire.
Comme ça, les gens vont pouvoir enregistrer des presets et de facilement enregistrer « l’état » du studio à leur goût.
Je voulais tester ça avec le studio de Sherbrooke sur lequel je suis présentement en train de travailler.
Pour être capable de faire ça, je n’aurai pas le choix d’adapter mon stack technologique. Par le passé, j’ai pris une base de donnée PostgreSQL sur Heroku que je contrôlait via un interface GraphQl sur Hasura.
J’ai fait ça mode MVP, j’avais programmé le tout en 2-3 week-end! Tout se faisait avec une 20e de Zap, Auth0 pour le login, 2-3 TypeForm, ThriveCart et Zoho Bookings. Le front-end était fait en Nuxt2 et Vuetify.
Ça « fonctionnait », mais ça paraissait que tout était rattaché avec de la broche. Si je voulais ajouter plus de complexité, je n’avais pas le choix de changer de stack et de prendre quelque chose de plus clean.
Pour ça, ça fait un petit bout que je regardais Strapi, un outil qui permet de faire un genre de backend à la WordPress, mais pour gérer et définir une base de donnée sur mesure. L’API et les permissions sont générés automatiquement et c’est super user friendly pour ceux qui ont à ajouter/modifier des données.
Bref, Strapi permet d’avoir une base de donnée PostgreSQL. Je me suis donc dit: « Hey, je vais installer ça sur ma base de donnée, juste pour voir à quoi ressemble leur structure. Comme ça, j’aurai une bonne idée du travail à faire pour migrer le tout quand je serai rendu-là! »
Oh boy… Little did I know…
J’installe donc Strapi et je me connecte au backend. Tout semble fonctionner.
Maintenant, je retourne du côté de Hasura pour voir s’il a détecté les nouvelles tables:
Tout semble bien… jusqu’à ce que j’essaie d’aller voir une de mes anciennes tables.
Attends un peu. Où sont mes données!?
Turns out que Strapi, en s’initialisant, a vérifié la structure de ma base de donnée. Puisque ce n’était pas conforme, il a tout supprimé et recommencé.
Un peu stressé, mais pas trop, je m’en vais voir sur Heroku pour voir ce qui s’est passé. J’imagine que j’ai configuré les backups automatiques alors ça ne devrait pas être trop compliqué de…
Oh wait. Je n’ai aucun backup.
La panique commence à s’installer, mais j’ai vite réalisé que ça ne servait à rien: j’ai perdu l’entièreté de mes données. Ces données incluent les jetons, historique de réservation et abonnements des gens.
Non seulement ça, mais les gens ne peuvent plus accéder au studio!
J’avais le choix. Soit que je prenais 3-4 jours pour recréé mon système de broche et le scrapper dans 1 mois pour le refaire comme il faut… soit je le fais comme il faut right now.
J’ai pris 2 minutes pour me recentrer et j’ai fait ce que tout bon entrepreneur doit faire quand il n’a pas le choix: j’ai vidé mon agenda, j’ai été me chercher une caisse de redbull et j’ai doublé ma prescription de concerta.
Certaines données étaient facile à récupérer. J’avais encore mes bookings via Zoho, alors je savais quand les gens devaient aller au studio. J’ai donc créer des codes d’accès que je leur ai envoyé par texto. Pour les comptes utilisateurs et qui doit avoir combien de jetons, je vais pouvoir utiliser mes données Stripe.
Bref, ça fait depuis mardi passé que je travaille 12h par jour là-dessus et j’ai presque terminé. Je dois avouer que je n’avais aucune idée de ce que je faisais et que ça a été une bonne courbe d’apprentissage. Je me suis arraché les cheveux de mardi à vendredi, mais les choses ont vraiment commencé à aller plus vite dimanche!
Pour ma nouvelle App, j’ai décidé de la refaire sur Nuxt3 et la nouvelle version de Vuetify. Puisque je vais sans doute avoir à migrer La Tranchée là-dessus un jour (à cause des problèmes d’optimisation de Nuxt2), je me disais que ce serait une bonne chose de profiter de ce défis pour me mettre à jour!
Les choses sont juste assez similaires, mais assez différentes, pour que je sois constamment en train de me demander pourquoi ce que je fais ne fonctionne pas.
Heureusement pour moi, ces 2 frameworks sont encore en développement! J’ai donc une belle documentation bien remplie…
Heureusement, je suis tombé sur la bibliothèque de Nuxt Strapi et le reste a été un charme!
Je devrais finir de programmer les fonctions de base aujourd’hui et faire en sorte que tout soit opérationnel d’ici la fin de la semaine.
Tl;Dr
- Faites-vous toujours un backup avant de jouer dans quoi que ce soit.
- Strapi est quand même cool! Ça m’a permis de sauver énormément de temps.
Laissez-moi un commentaire si le projet vous intéresse et je vais vous updater sur mes progrès. Je réalise qu’un petit journal de progrès aurais pas été de trop… Surtout pour ma tête de caméra intelligente qui m’a forcé à apprendre TEEEEELLEMENT de choses!