Skip to content

djihantii/DelightProject

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 

Repository files navigation

DelightProject

Test technique

Pour le test j'ai pensé à le réaliser à ma façon, et donc j'ai fait deux parties. Les deux projets(monitoring et visualisation) sont réalisés indépendamment.

Monitoring Chaque jour ça extrait les commits du jour d'avant et calcule le nombre.
Pour le moniroting je me suis basée sur le crontab de linux pour planifier l'extraction de données
la source de données est 'https://api.github.com/repos/Facebook/commits?since=DATE_D_HIER'
le script.sh sert à programmer alors le crontab.


Dependances
requests
datetime
time
os



Lancement du monitoring
Il suffit d'executer le script via la commande sh crontab_scheduling.sh
Le script va extraire les données de la veille chaque matin à 09h00 et remonter l'information si le nombre de commit est inférieur à 2
ces informations seront dans le fichier log




Flask
Pour extraires les données, les formatter puis les utiliser.
Pour cela il faut lancer un script pour lancer l'environnement virtuel et installer les différentes librairies utilisées pour le projet via la commande ==> (source script.sh)


Si le script ne fonctionne pas comme souhaité, vous pouvez installer les dépendances vous même et activer l'environnement via la commande (source bin/activate) Les librairires sont
flask
requests
json
matplotlib
pandas
datetime
time
os
io
calendar




Pour le fonctionnement de l'api
*On extrait les données de 'https://api.github.com/repos/Facebook/react/stats/contributors'
*En respectant les accept headers.
*On les formatte => En créant une classe et en affectant chaque type de donnée à son attribut
*On prend une date de début et date de fin, à partir de ces dates, on cherche la date du dimanche passé : car les semaines commencent par dimanche
*On Fait des transformations sur les dates de timestamp en date et vice versa.
*A partir des deux dates on calcule
*Le nombre de commit de chaque contributeur dans cette période
*On trie dans un ordre décroissant afin d'afficher les 9 premiers contributeurs dans cette période
*Le pourcentage de chaque contributeur dans ce total de commits
*On trace alors le graphe total + un graphe par contributeur pour la période précisée
*Les graphes seront dans le dossier static, ils seront aussi affichés dans une page web en utilisant flask

Lancemenet de l'api
Une fois le projet cloné, il faut executer le script.sh en utilisant la commance source script.sh ce qui va lancer l'environnement virtuel puis installer les différences dépendances nécessaires pour l'api.

Puis lancer avec la commance python3 serverDeight.py


Le port pour visualiser les résultats sera 5000 => localhost:5000