🏠 Accueil

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.

Dashboard de Project Zero 0.1 Vue d’un project dans Project Zero 0.1

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.

Revenir à la série