Hackathon#6 - Un tweetdeck-like pour Github - Team Magnolia

Pour cette sixième édition, Yann et Albin ont eu envie de créer un tweetdeck-like pour Github.

L’objectif de cet outil est d’aider les contributeurs des projets open source à mieux gérer leurs contributions : en effet, actuellement lorsqu’on est abonné à beaucoup de dépôts sur Github, les notifications qui nous concernent vraiment sont totalement noyées dans la masse et il est difficile de faire le tri. L’idée était donc de pouvoir créer des groupes personnalisés de dépôts.

KNP a déjà un petit outil pour aider à gérer les projets FOSS mais il n’est pas personnalisable et ne couvre pas les dépôts en dehors de l’organisation KNP.

Daily fin de jour 1 :

L’équipe a déterminé une direction et un objectif réalisable en deux jours :

  • grouper les dépôts et disposer de différents niveaux de notification.
  • Avoir plusieurs colonnes avec chacune un contenu différent par un système de filtre.

Les technos choisies sont standard : Symfony et Mysql, le but ici n’était pas d’expérimenter mais d’avoir une application utilisable à l’issue du hackathon. Il y avait cependant quelques contraintes de performance et d’architecture, notamment pour limiter le nombre d’appels à l’API de Github, au risque de se faire bloquer.

A la fin de cette première journée, le projet était boostrappé, la création de la DB était en cours, et Albin a commencé la récupération des événements qui vont alimenter les flux.

RAF pour le jour 2 :

Réaliser un POC en ligne de commande :

  • récupérer les événements des différents repos sur github
  • les transformer en événements formatés
  • rendre les flux avec le système de filtres. Cette gestion des flux remplacera les colonnes de tweetdeck.

Review fin de jour 2

L’équipe n’a commencé à coder que le soir du premier jour, et est cependant arrivée à quelque chose qu’elle a eu envie de continuer à utiliser.

La solution choisie repose sur une clean architecture (qui ressemble à l’architecture hexagonale) avec un système de usecase.

Un problème subsistait : seuls les admins d’un repo Github peuvent envoyer la donnée en temps réel, nous serions donc confrontés à un décalage qui pourra aller jusqu’à 1h.

Ce qui a été réalisé :

  • On peut créer un feed et lui associer un ou plusieurs repos.
  • On peut récupérer de la donnée (ce qui prend un peu de temps car l’API Github est lente, cette partie de l’appli n’est pas encore tout à fait finie).
  • On transforme les événements reçus.

Le but est de pouvoir à terme utiliser l’appli en http et non plus seulement en CLI.

Les photos de tous nos hackathons à découvrir sur notre page FB :D

Si vous voulez rejoindre la KNPTeam, on recrute pour des missions à Paris !