Passer au contenu principal
Story

Un nouveau système d'organisation

Un récit sur la façon dont l'équipe capgo a ajouté un système d'organisation

Un nouveau système d'organisation

Introduction

Salut, je suis WcaleNieWolny - Capgo’s lead ingénieur logiciel.

Au cours des 8 derniers mois, j'ai développé le un système d'organisation, et à partir du 14 avril, je suis heureux de vous annoncer que le système est désormais terminé 🎉 🎊

Enfin, après 8 mois, chaque partie de Capgo est accessible aux membres de l'organisation. Cela inclut :

  • applications
  • statistiques
  • facturation
  • plein support CLI
  • et bien plus encore !

Ce n'a pas été facile d'arriver là ; il y a eu 3 révisions majeures du système.

Organisations v1

Les débuts ont été difficiles… Au début, j'ai commencé à travailler sur ce projet 2 semaines après avoir rejoint l'équipe. À l'époque, j'avais peu de connaissances sur la base de code ou sur une idée plus vaste de comment l'implémenter.

Cela a conduit à l'implémentation d'une solution très hackeuse qui ne supportait que l'accès aux applications, aux canaux et aux versions. Elle ne permettait même pas à l'utilisateur invité d'accéder aux statistiques.

And puis j'ai attendu que Martin révise cela. J'ai attendu et attendu, mais rien n'a vraiment eu lieu. 3 mois plus tard, j'ai décidé de revenir sur cela et de résoudre tous les conflits de fusion. J'ai également décidé de tester, ce qui s'est avéré être une excellente idée. À ce moment-là, la solution hacky a complètement échoué. J'ai donc décidé de corriger tous les bugs et d'écrire un test E2E exhaustif. J'ai dû travailler avec des code très cassés et de nombreuses mauvaises décisions que j'avais prises à l'époque, mais après 2 semaines difficiles, j'ai finalement réussi à le faire fonctionner.

Cela ne signifie pas, cependant, que cela était parfait. Le propriétaire de l'organisation avait encore beaucoup plus d'accès que même l'utilisateur invité le plus élevé. L'expérience utilisateur était également très limitée. L'utilisateur invité ne pouvait même pas voir les statistiques de l'application, gérer les factures et le CLI était limité à l'upload seulement.

Même avec tous ces défis, Martin avait révisé le PR, et une semaine plus tard, cela a été poussé en prod.

Organisations v2

Le système d'organisation fonctionnait plutôt bien malgré tous ces défis. Les utilisateurs l'utilisaient et cela a vraiment poussé l'ensemble du projet en avant. Cependant, j'avais encore à:

  • corriger le désordre créé dans la sécurité au niveau de ligne
  • ajouter le support pour l'intégralité du CLI
  • ensure that admin users have the same access as the owner

Après de nombreuses discussions Nous avons décidé avec Martin que la meilleure façon d'avancer était de réécrire les règles de sécurité entières et de déplacer la propriété de tous les ressources vers les organisations et non les utilisateurs. Cela permettrait une intégration plus facile avec le nouveau système d'organisation, et cela supprimerait également beaucoup de legacy code.

Écrire les nouvelles RLS code était très fastidieux, mais après une semaine et demi, la migration entière était prête.

Cette fois-ci, nous avons décidé de ne pas écrire les tests E2E, ce qui signifie que nous devions les tester manuellement. Après 3 appels très étendus ensemble, Martin et moi avons finalement décidé de pousser vers la production et espérer qu'il irait bien 🙏

Je n'ai pas réussi à mettre en place l'inscription des utilisateurs, ce qui empêchait les nouveaux utilisateurs de créer un compte.

Après un appel de panique rapide, j'ai rapidement poussé quelques modifications en prod et suis allé me coucher. Malheureusement, mes modifications n'ont créé que plus de problèmes.

Après que j'ai réveillé, j'ai découvert que les utilisateurs avaient beaucoup d'organisations vides. C'est pas censé se produire car il ne devrait y avoir qu'une organisation par utilisateur. Il a fallu du temps de réflexion pour supprimer toutes les organisations dupliquées vides, mais en dehors de cela, les modifications sont allées plutôt bien.

Organisations v3

Même cela n'a pas suffi. Il y avait encore un composant immense manquant - la facturation.

Jusqu'à présent, seul le propriétaire pouvait gérer les factures. Cela a créé quelques problèmes intéressants où un utilisateur a acheté un plan en pensant qu'il l'achetait pour l'organisation. Nous avons rapidement résolu le problème manuellement et c'est à ce moment-là que nous avons décidé que ce problème était inacceptable

La migration a été plutôt fluide. Il a fallu une semaine de travail mais comparé à V1 et V2, cela n'a vraiment pas été si dur 🚀

Organisations v4 - l'avenir

Après tout ce travail dur, je pense qu'il est temps de se concentrer sur autre chose pour l'instant 😎

Ce n'était pas facile mais j'ai appris beaucoup et capgo a reçu une très belle et importante fonctionnalité Je dois encore dépréciquer les fonctions legacy, améliorer l'expérience utilisateur de la webapp, surveiller les bogues, mais il ne devrait pas y avoir de changements majeurs à ce système.


Thank you for reading 🚀

Continuez à partir de Système d'organisation de nouvelle marque

Si vous utilisez Système d'organisation de nouvelle marque pour planifier le tableau de bord et les opérations de API, connectez-l’avec API Vue d'ensemble pour les détails d'implémentation dans API Vue d'ensemble, Introduction pour les détails d'implémentation dans Introduction, API Clés pour les détails d'implémentation dans API Clés, Appareils pour les détails d'implémentation dans les appareils, et Bundles pour les détails d'implémentation dans les Bundles.

Actualisations en direct pour les applications Capacitor

When a web-layer bug is live, ship the fix through Capgo instead of waiting days for app store approval. Users get the update in the background while native changes stay in the normal review path.

Dernières actualités de notre Blog

Capgo vous donne les meilleures informations dont vous avez besoin pour créer une application mobile vraiment professionnelle.