Project Zero 0.1
(lecture : 5 minutes) â sĂ©rie : Lessyâs more
Jâen parlais lors de ma rĂ©trospective 2016 sur ma mĂ©thodologie de travail, jâai commencĂ© Ă bosser sur une application qui devrait me servir de cadre mĂ©thodologique. JusquâĂ maintenant jâutilisais le systĂšme de fichiers de lâordinateur pour organiser mes projets, mais câĂ©tait trop contraignant et je nâarrivais pas Ă assurer un suivi suffisant.
AprĂšs un mois de travail acharnĂ©, jâai enfin terminĂ© la version 0.1 de « Project Zero ». Le code source est disponible sur GitHub sous licence MIT et vous pouvez mĂȘme vous crĂ©er un compte sur le service que je mets Ă disposition : zero.marienfressinaud.fr. Attention, lâapplication nâest pas encore disponible en HTTPS !
Pourquoi Project Zero ?
Cela fait longtemps maintenant que jâimagine un outil de gestion de mes projets. Bien sĂ»r, je suis un Ă©ternel insatisfait des outils que jâutilise et il fallait absolument que je dĂ©veloppe mon propre logiciel :). Comme il devait sâagir du projet Ă la base de tous mes autres projets, je lâappelais « Projet ZĂ©ro ». Fin 2015 je donnais un coup de frein Ă ma contribution Ă FreshRSS pour commencer Ă bosser sur ce fameux outil⊠chose que je nâai jamais concrĂ©tisĂ©e car mes idĂ©es Ă lâĂ©poque nâĂ©taient absolument pas claires sur ce que je voulais faire.
Câest en aoĂ»t, pris dans la tourmente de mes nombreux projets commencĂ©s mais dont aucun nâavançait, que je mettais en place quelques actions pour me reconcentrer sur ce que je faisais. Cela a donnĂ© une prĂ©-version de ce que je voulais obtenir.
Fin dĂ©cembre, voyant que ma mĂ©thodologie avait globalement bien fonctionnĂ© mais que jâavais toujours des soucis Ă assurer le suivi, jâai dessinĂ© les premiers Ă©crans dâune application que jâai donc nommĂ© « Project Zero » (notez le passage Ă lâanglais).
Les (quelques) fonctionnalités
Il y a aujourdâhui trĂšs peu de fonctionnalitĂ©s car je veux dâabord voir comment Ă©voluent mes besoins. Je prĂ©fĂšre avoir trĂšs peu de fonctionnalitĂ©s qui me servent toutes que beaucoup qui ne me servent pas. Ce quâil est possible de faire :
- crĂ©er un compte (et sâauthentifier, Ă©videmment) ;
- gĂ©rer ses projets (qui ne consistent quâen un nom, une description en MarkDown et quelques dates) ;
- dĂ©marrer jusquâĂ trois projets en mĂȘme temps en prĂ©cisant une date de fin ;
- stopper les projets qui stagnent ;
- terminer les projets⊠terminés.

Il sâagit de la version 0.1 bien sĂ»r, tout reste encore Ă construire⊠et jâai pas mal dâidĂ©es pour ça :).
Sous le capĂŽt
Jâai pas mal tergiversĂ© avant de me dĂ©cider sur les technologies Ă utiliser pour dĂ©velopper Project Zero. Voulant au dĂ©part dĂ©couvrir de nouvelles choses, je partais sur un backend Django, le frontend en Elm et une API Ă base de GraphQL.
Mais plus jâhĂ©sitais plus je me convainquais que jâallais accumuler les difficultĂ©s et que je nâavancerais pas. Au final jâai dĂ©cidĂ© de partir sur des bases que je connais et avec lesquelles je suis Ă lâaise :
- Ruby on Rails pour le backend comme cela fait presque 1 an et demi que jâen fais quotidiennement, pas de difficultĂ© Ă ce niveau ;
- une API classique en Json, je savais que jâavais encore besoin de progresser lĂ -dessus mais je nâexclue pas dâinclure du GraphQL Ă terme ;
- VueJS pour le frontend, pour le coup que je ne connaissais pas mais qui nâest pas trop Ă©loignĂ© conceptuellement de React.
Pour ce qui est de VueJS, la lecture de la documentation mâa convaincu que tous les problĂšmes que jâavais avec React allaient disparaĂźtre comme par magie⊠et ce nâest pas tout Ă fait faux :). Bien sĂ»r dâautres questions se sont posĂ©es au fur et Ă mesure que jâavançais, mais je suis tout de mĂȘme content du rĂ©sultat ! LâĂ©poque oĂč jâĂ©crivais du JS imbitable sur FreshRSS est rĂ©volue :D.
Comme je le disais plus haut, le code est hĂ©bergĂ© sur GitHub mais il nâest pas exclu que je le dĂ©place sur Framagit. Ce qui me retient de le faire actuellement est de deux ordres :
- jâai dans lâespoir de trouver une troisiĂšme solution. Le but de Framasoft nâĂ©tant pas de tout centraliser sur ses serveurs, jâaimerais aller voir ailleurs et de prĂ©fĂ©rence chez un chaton local ;
- GitHub reste Ă des annĂ©es lumiĂšres de Gitlab au niveau expĂ©rience utilisateur. Gitlab a beau avoir des fonctionnalitĂ©s (trĂšs) intĂ©ressantes, son interface reste foutraque et jâai du mal Ă mây faire.
Le service Project Zero
Jâexpliquais plus haut que jâai mis Ă disposition un service Ă lâadresse zero.marienfressinaud.fr. Si lâadresse est temporaire, jâai dans lâespoir que le service ne le soit pas. Je ne me fais pas trop dâillusions, actuellement Project Zero est beaucoup trop limitĂ© fonctionnellement pour ĂȘtre utile Ă qui que ce soit, mais je pense quâĂ terme il pourrait plaire Ă quelques-uns.
Attention, le service est aujourdâhui ouvert Ă nâimporte qui et gratuit, mais je nâexclu pas Ă terme de le rendre payant. On ne pourra pas dire que je nâai pas prĂ©venu ! Bien sĂ»r le logiciel restera sous licence libre et je ne prĂ©vois absolument pas de version alternative « closed-source ». LâidĂ©e serait plutĂŽt de rembourser les coĂ»ts du serveur et de mettre un petit quelque chose de cĂŽtĂ© pour me donner un peu plus de temps libre, absolument pas de faire fortune.
Mes idées pour la suite
Voici une liste non-exhaustive de ce que jâai en tĂȘte pour le moment :
- gestion de listes de tùches à faire (communément appelées « todo lists ») ;
- gestion dâenvironnements pour distinguer les projets personnels des projets professionels ;
- envoi de mails de rappels ;
- gestion de sous-projets ;
- client en ligne de commande pour notamment synchroniser des dossiers en local, ça permettrait dâavoir par exemple un dĂ©pĂŽt Git en local associĂ© Ă un projet ;
- gestion du profil utilisateur et projets publics.
Ma prioritĂ© numĂ©ro 1 va ĂȘtre la gestion des tĂąches. Jâutilise actuellement Todoist et jâen suis vraiment trĂšs satisfait. Ceci dit il y a parfois des petits bugs et je nâaime pas la façon dont il gĂšre le systĂšme de karma qui pousse parfois Ă bacler des tĂąches seulement pour garder de bonnes statistiques. Et puis câest toujours rigolo de redĂ©velopper des choses qui existent dĂ©jĂ , non ? :). Je cogite encore pour rĂ©flĂ©chir Ă comment mây prendre et ne pas faire quelque chose de trop bĂąteau.