Javascript [Node] Live Wikipedia stream viewer

Sparkdaemon

Staff
Membre du personnel
Inscrit
7 Avril 2009
Messages
556
Reactions
3
#1
Bon, c'est pas le projet du siècle, mais j'ai besoin d'apprendre à gérer plusieurs trucs sous NodeJS.

J'apprends à maîtriser ces modules:
Express.js (Que je compte remplacer par Angular, il paraît que c'est mieux pour faire du templating?)
eventsource (Pour gérer l'eventsource de Wikipédia)
socket.io (Pour le côté temps-réel de l'appli)

J'apprends à éviter les callback aussi, j'ai découvert les promesses y'a pas si longtemps et c'est bô
Il est codé avec le cul, du coup je partage pas encore le lien car je compte d'abord faire un bon gros nettoyage des familles dans le code (surtout de l'optimisation) et dans la base de données.

wiki1.png wiki2.png

L'idée, c'est de pouvoir suivre en temps réel les modifications qui sont apportées sur wikipedia sans avoir à bouger son gros cul de l'onglet en cours.
Wikipedia dispose de tout un système de protection des articles, d'approbation de contenu et rien que sur le wiki Français je recense 28.000 modifications par tranche de 24h.
La première grosse intégration sur le site, c'est les statistiques (Screen 1)
Elles permettent de savoir ce qui a été le plus modifié ces dernières 24H. Je compte faire une commande pour ne récupérer que les statistiques récentes (type /stats <h debut> <h fin>).

La deuxième grosse intégration, c'est le volet de droite. J'en ai chié.
Le fonctionnement est simple. Lorsque le code côté client reçoit une modification (Que l'on reçoit au format JSON, sans les détails) il demande au serveur d'aller récupérer les diff, puis les affiches à droite (Screen 2) au survol de la souris, ou sur l'overlay au clic.

Enfin, la dernière intégration, celle qui a le plus besoin d'optimisations, c'est la recherche parmi les modifications; (/search term1 [2,3,4,5,...])
Quand on reçoit les modifications faites sur les pages, grosso-merdo, je récupère les diff de la modification donnée que je stocke ensuite dans la base de données, pour l'instant telles quelles.

J'ai pas trop le temps de développer plus pour le moment, c'est l'heure de faire graille les petits, alors je mettrai le topic à jour (Notamment pour le lien :]) plus tard
 

BlueDream

Administrateur
Membre du personnel
Inscrit
8 Decembre 2012
Messages
2 010
Reactions
149
#2
Bon courage Spark, merci du partage :teeth:
 

zahid98

Membre Actif
Inscrit
13 Decembre 2014
Messages
352
Reactions
2
#3
Intéressant comme projet, je commence aussi à m’intéresser au web quoique je ne trouve toujours pas d'idée de projet pour apprendre.
 
Inscrit
25 Novembre 2015
Messages
169
Reactions
20
#4
Je penses que tu vas avoir du mal à remplacer Express.JS (qui est un framework server-side) par angular (qui lui est client-side) si je ne m'abuse ^^
Bon courage pour ton projet !

Et sinon zahid un truc interessant à faire c'est de mettre a profit ses connaissances en C# pour développer le côté serveur avec ASP.NET Core et son interface en JS (react native pour du mobile, angular pr web...). C'est l'une des meilleure alternative pour développer des applications cross-platform cloud-based de nos jour vu que le JS se lance partout :)
 
Haut Bas