Réorganisation des tutoriels / formations

1
,

L'objectif est de repenser l'organisation de tutoriel pour mieux guider les utilisateur vers les formations et vidéos à regarder et d'aider les personnes arrivant depuis un moteur de recherche à s'y retrouver. On désigne pour un tutoriel les technologies qui sont utilisées dans la vidéo en mettant le "focus" sur les technologies qui sont le centre d'attention de la vidéo. La technologie ou le tutoriel peut avoir des requirements qui désigne les formations ou les tutoriels à regarder pour comprendre. L'utilisateur peut marquer certaines vidéos / formations comme vu. A partir de ces vus il est possible de savoir si l'utilisateur a le niveau suffisant pour voir la vidéo mais aussi de suggérer des vidéos non vues qui traite (focus) les technologies qu'il maitrise ou de lui proposer de découvrir de nouvelle technologies qui require celle qu'il connait déjà.

Représentation en graph

La différence "Enseigne" et "Utilise"

Je ne suis pas sûr de cette différenciation mais je pense qu'il est important de différencier les vidéos qui se focalisent sur l'apprentissage d'une technologie par rapport aux vidéos qui sont plutôt des cas pratiques :

  • "Découverte de l'ECMAScript 2015" enseigne JavaScript
  • "Créer un carousel" utilise JavaScript (plutôt un cas pratique)

Système de dépendance

Les liaisons require sont la clef de ce nouveau système car cela va permettre la suggestion de vidéo. Si l'utilisateur clique sur une vidéo, on lui présente les vidéos required les plus profondes qu'il doit regarder pour avoir le niveau requis. On peut aussi présenter les vidéos qui require la vidéo actuellement regardée.

  • Une vidéo pourra être marqué comme vu avec un bouton (ou lorsque la vidéo se finit)
  • Si une vidéo est vue, on considère toutes les vidéos required comme vues

Maquette

Voila une preview de l'avancement

Apprentissage d'un langage
Présentation des formations d'un langage

Présentation du chemin de formation "général"
Présentation d'un parcourt

Côté base de données ?

Le problème est que MySQL ne permet pas de liaisons récursive pour trouver facilement tous les requirements d'une vidéo. De la même manière certaines requêtes deviennent assez complexe (suggérer des vidéos à regarder en fonctions des vidéos regardées par les autres utilisateurs) du coup il faut trouver une alternative pour gérer ça.

  • neo4j qui permet de représenter le graph directement (inquiétude sur les performances pour certaines requêtes d'aggrégation et l'organisation générale)
  • postgresql permet les requête hiérarchiques et pourrait venir en remplacement pour tout le site (plus complexe)

Des suggestions

C'est encore un Work in progress donc si vous avez des suggestions sur les liaisons à mettre en place, n'hésitez pas à partager ;)

21 Réponse

2
1
,

C'est en ligne ;)

2