ComptAct : Régler mes comptes avec React 🤝
Il était temps
Des années après la première version de mon application de gestion de la compta destinée à ma très chère maman, j'ai décidé de faire quelque chose d'un tout petit peu mieux.
Un grand coup de refresh dans un projet débuté en 2012 en JAVA, réécrit en 2013 en C# puis en C++/Qt fin 2014. Je me suis pas mal cherché, au fil de mes découvertes et de mes amours technologiques. Côté stockage des données, je suis également parti de loin, en passant par le tristement célèbre fichier plat (j'étais jeune!), SQLite, MySQL ou encore MongoDB.
2019, la React-ion
Il est parfois difficile de se dire : allez hop, on refait tout. Certains développeurs adorent ça, d'autres fuient ces situations.
Mais quand votre client (votre maman de surcroît) vous explique qu'elle n'utilise plus votre app parce qu'elle met 6 minutes 30 à démarrer (quand elle ne crash pas), difficile de lui expliquer que c'est normal, que c'est parce qu'elle a été compilée en mode debug sous Windows XP, que SQLite 3 n'est pas forcément hyper opti, et que les images sont en bitmap et pèsent 50 Mo. Il n'était pas non plus temps d'essayer de lui vendre un nouveau PC, au risque de m'entendre dire que ses cahiers de compte faits main ne coûtaient rien, eux.
J'ai donc préféré ne pas faire de diagnostic plus poussé, et en ai profité pour me lancer sur une techno que je connaissais bien, mais avec laquelle je manquais un peu d'occasion de pratiquer : React.js
Quelques grammes de redux, un bon filet de material-ui, et une pincée de react-select plus tard, et ComptAct version 2019 sortait de terre.
Côté serveur, j'ai opté pour un petit projet basé sur Sails.js, en implémentant une authentification oauth2 basique.
Démo
L'app est utilisée à ce jour par ma cliente préférée, mais pour plus de simplicité, le back et le front tournent sur un petit Raspberry Pi sur son réseau local.
J'ai également publié une version de démo ici : https://demo.corentindesfarges.fr
Je préfère vous prévenir tout de suite : tout n'est pas parfait, et j'ai été contraint de mettre temporairement de côté le développement de ce projet, l'essentiel étant qu'il soit suffisamment fonctionnel et agréable à utiliser.
Pas de responsive design, un code un peu vieillissant par rapport aux dernières features de React, et pour la version de démo : la base de données est réinitialisée toutes les 5 minutes, car l'application ne tourne pas sur un très gros serveur.
Voili voilou, j'espère que vous le trouverez quand même pas trop mal.
Corentin