contact@luc-mergault.fr

Coinmarketcal – Une extension du site

Je partage à travers ce blog mes projets et ma passion pour l'informatique en général.

Événements à venir

Coinmarketcal – Une extension du site

5
(2)

Aujourd'hui je vous parle de la nouvelle extension pour navigateur que j'ai développé, elle même basée sur le site Coinmarketcal.



Informations
Début de réalisation : 7 Mai 2020
Fin de réalisation : 18 Mai 2020
URL du projet : Voir le projet sur GitHub

Salut à toutes et à tous !

Parfois il m'arrive de me dire "il n'existe pas de projet pour ça, il faudrait que je le développe", c'est le cas de ce projet !

Aujourd'hui je vous présente un nouveau projet dont j'avais vraiment besoin.

L'histoire du projet

Pour ceux qui me connaissent un peu, vous savez que je m’intéresse beaucoup aux Cryptos-Monnaies.

Mais je ne fais pas que m’intéresser à celles-ci, j'en possède aussi un certain panel.

Plus j'en possède, plus je me confronte à un problème.

Il m'est impossible de me tenir au courant des événements des toutes celles-ci efficacement ( Notamment être au courant des swaps de certaines ).

C'est la qu'entre en jeu le site Coinmarketcal !

Coinmarketcal : Le site idéal ?

Coinmarketcal, c'est un site qui permet à n'importe qui de mettre en ligne des événements liés aux Cryptos-Monnaies.

Le principe de ce site est vraiment excellent, mais vient un problème.

Pour être tenu au courant des événements, il faut se rendre sur celui-ci régulièrement, au risque de manquer un événement important.

A noter qu'anciennement, il était possible de s'abonner à une newletter pour recevoir par mail les événements d'une Crypto-Monnaie en particulier. Cependant depuis quelques temps cette fonctionnalité n'est plus disponible.

Tout ça pour dire que le site dans l'état actuel n'est pas super pratique ( En tout cas pour les personnes ne souhaitant pas se rendre dessus tous les jours ).

Une extension pour navigateur ?

C'est là qu'entre donc en jeu mon projet, une extension pour navigateur !

L'idée avec cette extension, c'est de proposer certaines fonctionnalités du site, mais directement dans une extension pour navigateur.

Pour ça, j'ai développé tout un script permettant notamment de scraper certaines informations du site, pour ensuite les retranscrire sur l'extension ( Je ne souhaitais pas utiliser l'API du site, du fait que le projet est open-source ).

Actuellement, l'extension permet donc plusieurs choses que voici.

  • Visualiser les événements à venir.
  • Effectuer une recherche parmi tous les événements enregistrés sur le site.
  • Recevoir une notification lorsqu'un nouvel événement est ajouté sur le site.
  • Voter pour un événement directement depuis l'extension.

A noter qu'il est possible que l'extension reçoive d'autres fonctionnalités dans le futur. Je n'ai pour le moment pas eu le temps d'en développer plus.

Je vous invite à tester ces fonctionnalités en l'installant directement sur votre navigateur, via l'un de ces liens.

Utiliser Coinmarketcal sans API ? Un défi ?

Pour moi, ce fut un réel défi de développer une extension sans utiliser d'API.

Et oui, en temps normal pour développer un projet du genre, il est préférable d'utiliser une API pour faciliter la communication entre l'extension et le site en question.

Cependant ici, l'objectif premier quand j'ai lancé ce projet, c'était de le rendre open-source.

Rendre open-source un projet avec une API non propre à moi même est compliqué, étant donné que ça impliquerait la demande et l’utilisation d'une clef d'API unique pour chaque utilisateur.

Déjà que ce n'est pas ce qu'il y a de plus simple à faire, je me voyais mal infliger ça aux utilisateurs, le but étant d'avoir vraiment une extension "clef en main". Juste besoin de l'installer, et c'est parti pour l'utiliser.

Donc tout ça m'a emmené à devoir développer un système pour scraper les données depuis le site internet directement.

J'ai dans un premier temps commencé par développer une partie de script permettant de scraper les événements d'une page donné.

Ensuite il m'a été possible d'étendre ça afin de scraper directement toutes les pages du site.

Une autre défi technique, ça a été d'implémenter la possibilité de voter directement depuis l'extension. Ça ne parait pas comme ça, mais c'est vraiment compliqué ( Pour les connaisseurs, vous pouvez analyser le code source ) !

Edit : Mise à jour !

Suite à la publication de cet article, j'ai été contacté par l'équipe du site Coinmarketcal.

A la suite d'un échange avec eux, il m'on fait comprendre que mon projet n'était pas en accord avec leur CGU ( Ce dont je me doutais lors du développement de ce projet ).

Ils auraient pu me demander de shutdown le projet, mais au lieu de ça il m'ont fait la proposition suivante :

Ils prennent le projet au nom de Coinmarketcal, mais je reste le développeur de celui-ci.

Tout ça à condition d'intégrer leur API au projet.

Bon la suite est assez imaginable, j'ai accepté cette proposition.

Donc désormais l'extension ne scrap plus les données du site, mais utilise l'API du site directement.

De ce fait, il n'est plus possible de voter depuis l'extension ( Etant donné que l'API ne permet pas cela ).

Je tiens à remercier l'équipe de Coinmarketcal qui ont su être compréhensif, en me faisant cette proposition.

Conclusion

Je suis très content du résultat obtenu, il n'est pas parfait, mais pour une première version il me convient très bien.

Il est important de noter que j'ai développé ce projet assez rapidement ( Moins d'une semaine ), c'est pour cette raison que le code source n'est pas forcement très propre, et qu'il peut, sur certain points paraître assez brouillon. L'objectif était d'avoir un projet utilisable rapidement.

Si vous souhaitez aider au développement de celui-ci, je ne peux que vous inviter à le faire via la page du projet sur GitHub.

D'ailleurs n'hésitez pas à reporter les possibles bugs / problèmes sur cette page, ou encore aider à la traduction du projet en vous basant sur les traductions actuelles.

Bref, je pense en avoir assez dit sur ce projet.

Je vous remercie d'avoir pris le temps de tout lire, n'hésitez pas à me donner vos retours en commentaire de cet article !

A très bientôt !

  • Bitcoin
  • Ethereum
  • Binance coin
  • MetaMask
Scan to Donate Bitcoin to bc1qrunuqqs7e8e5x7lctmgflvde8claupv44qa9fg

Soutenez moi en envoyant des Bitcoin !

Scannez le QR code ci-dessous ou copiez l'adresse suivante pour me soutenir en envoyant des Bitcoin 😃

Scan to Donate Ethereum to 0x81D56c63Df07ef938425e53185984DC5670E206C

Soutenez moi en envoyant des Ethereum !

Scannez le QR code ci-dessous ou copiez l'adresse suivante pour me soutenir en envoyant des Ethereum 😃

Scan to Donate Binance coin to bnb18dy3mv3f6y7h4uems5d8emn8g7zgfq7vlslkpk

Soutenez moi en envoyant des Binance coin !

Scannez le QR code ci-dessous ou copiez l'adresse suivante pour me soutenir en envoyant des Binance coin 😃

Donner avec MetaMask

Si vous utilisez Metamask, vous pouvez me soutenir très simplement en cliquant sur ce bouton !

Donnez une note à cet article 😉

Note moyenne 5 / 5. Nombre de vote : 2

Pas encore de note, soyez le premier à donner une note !

Merci ! Partage cet article !

Je suis désolé que cet article ne te plaise pas

Améliorons cet article !

Dis moi ce que je peux améliorer !

 

Aucun commentaire

Ajoutez votre commentaire