Je profite d'avoir passé un peu de temps sur le code cette semaine pour mettre par écrit l'état du système. J'espère que ça aidera à démarrer plus vite lors de notre / votre prochaine rencontre, ou si un de vous a du temps avant!
Ce qui marche
Recherche de recommendations pour une archive ou une news. Testé pour les news, pas testé pour les archives (à cause d'une panne du serveur sparql). Le backend mock est activé si la variable d'environnement WEBAPP_MOCK_SEARCH=True. Le scraper, extraction de keywords, etc. fonctionnent toujours sans problème.
Login, pour autant que l'utilisateur a été crée! (voir plus bas)
Création de "user recommendation" pour un utilisateur loggé. On peut activer des recommendations mock avec la variable WEBAPP_MOCK_RELATIONS=True.
Retrieval des user recommendations, que ce soit une archive ou une news.
Vues:
page d'accueil avec news dans une iframe, recommendations système et utilisateur affichées. On peut encore améliorer l'affichage, notamment mettre plus d'effort dans les dates, et corriger l'espacement des lignes dans les liens vers les articles recommandés.
page 'compare', aussi avec article ou archive dans une iframe. Dans le cas de l'archive, on ne highlight pas les mots clés de l'article.
le formulaire de la page 'compare' fonctionne, mais mène vers une page moche. Ce serait plus joli de soit soumettre le formulaire à la page compare et de la ré-afficher (en cachant cette fois le formulaire) ou le soumettre par javascript.
Ce qui manque pour une démo complète
La page d'inscription n'affiche plus de formulaire, donc on ne peut pas créer de nouvel utilisateur. La page a déjà marché, il faudrait juste comprendre ce qui a changé
Le serveur sparql est problématique. Il ne fonctionne plus depuis jeudi je crois.
Ce qu'on peut facilement améliorer
Vu la lenteur parfois suprême des serveurs de recherche, on peut justifier de charger les recommendations de manière asynchrone. De cette manière on charge rapidement l'article à lire, et les recommendations s'affichent une fois qu'elles sont prêtes. Le plus simple avec flask est de rendre un bout de HTML côté serveur (partial template), de le chercher avec jQuery depuis le client, et de remplacer une div une fois qu'il est chargé. Si la div contient à la base un gif du genre "loading", on a vite un résultat stylé, sans trop changer la logique du serveur (on garde les templates côté serveur, etc.)
Les recommendations système sont très basiques, on peut s'imaginer plein d'améliorations: compter la fréquence des recommendations, intégrer des éléments de théorie des graphes, gérer des tags (proposer des tags automatiquement?). Elles ne seraient pas forcément utiles pour une démo, mais ce serait bien d'avoir quelques possibilités en tête pour satisfaire les curieux.
Ou commencer
Pull ma dernière branche (refactor/mock_search)
WEBAPP_MOCK_SEARCH=True WEBAPP_MOCK_RELATIONS=True python manage.py runserver, pour voir tout ce qui marche avec les backend mocks.
WEBAPP_MOCK_SEARCH=True python manage.py runserver, constater que la création de compte ne fonctionne pas: http://localhost:5000/register/. Réparer ça, créer un compte, ceci permet de créer ses propres "user recommendations" sur les données mock.
python manage.py runserver, sans données mock. Faire fonctionner ou faire sans le serveur sparql.
Hello,
Je profite d'avoir passé un peu de temps sur le code cette semaine pour mettre par écrit l'état du système. J'espère que ça aidera à démarrer plus vite lors de notre / votre prochaine rencontre, ou si un de vous a du temps avant!
Ce qui marche
Ce qui manque pour une démo complète
Ce qu'on peut facilement améliorer
Ou commencer