Hypertopic / Porphyry

Corpus analyses confrontation
https://hypertopic.org/porphyry
GNU Affero General Public License v3.0
21 stars 165 forks source link

Consult attributes whilst doing a search #572

Closed callistas closed 2 years ago

callistas commented 2 years ago

Description

The attributes of the items should be accessible to the users. They should be able to make a research on the value of an attribute.

What is the valuable outcome that cannot be achieved with current features?

The valuable outcome is that the user can search data by attribute values and compare them with other data (other attribute values or topics)

For which stakeholder (people, role, project, domain) is it important?

It is important for people who need to compare data, in our case, researchers.

Which user action should be enabled (or restricted)? For who?

It should be accessible to all users, logged in or not.

Additional details (solutions you think about, or workarounds you tried)

Deliverables status

Phase 1

Phase 2

Phase 3

matthieudufon commented 2 years ago

maquette_select_1

MaximeMZ commented 2 years ago

maquette 2

callistas commented 2 years ago
277911257_694280464952348_6634596402519065466_n
benel commented 2 years ago

Point d'avancement du 28/04

Autre : Reformuler le titre.

matthieudufon commented 2 years ago

Co-authored-by: Callista Spiteri spitericallista@gmail.com

Quelle partie du code sera impactée (classes, méthodes) ? Utilisez les React DevTools (extensions de Chrome ou Firefox) pour faire le lien entre la structure de la page et celle du code. Pour implémenter le code, il faut mettre en place 3 nouvelles choses :

Y aura-t-il des difficultés d'un point de vue algorithmique ? Avez-vous des pistes pour les résoudre ? Puisque nous devons nous baser sur le code existant, il va falloir découdre le tout pour savoir comment modifier l’existant. Notamment la phase de sélection qui est déjà implémentée. Nous pensions au début que la principale difficulté algorithmique serait le format de données retourné par la requête. En effet, il sera difficile d’avoir une réponse qui ressemble au schéma indiqué ci-dessous. Nous avons ensuite appris que des méthodes nous aideraient à effectuer ce traitement, cette partie sera détaillée ultérieurement.

Les données dont vous avez besoin sont-elles déjà chargées par la page ? Si oui, quelle est la structure des données et comment allez-vous récupérer précisément celles qui vous intéressent ? Chaque item a déjà tous ses attributs chargés dans la page Il faudrait regrouper les attributs et les valeurs dans la même liste pour la sélection. Le schéma de données pourrait être : [{attribut1: [valeur11, valeur12, valeur13]}, {attribut2: [[valeur21, valeur22, valeur23]}, ….] Nous principal travail sera de mettre en forme ces données

Si non, quelle sera la requête la plus efficace et comment allez-vous récupérer dans la structure de données précisément celles qui vous intéressent ? Contrairement à ce que nous pensions, il n’est pas nécessaire de préparer les requêtes comme nous l’avions fait lors du test d’entraînement “Chargez et affichez des données avec React”. Il s’agissait d’un point de blocage pour nous. Finalement, nous pouvons utiliser les méthodes de la classe Items située dans le fichier src/model.js. Ces méthodes retournent un tableau de clé et de valeurs des attributs d’un ensemble d’items, pour la méthode getAttributes(). Un tableau ne contenant que les clés des attributs pour getAttributeKeys(). Et un tableau ne contenant que les valeurs des attributs pour getAttributeValues(). Nous pourrons utiliser ces trois méthodes afin de construire un tableau d’objets tel que nous l’avons défini précédemment.

Existe-t-il des bibliothèques qui pourraient simplifier l'implémentation ? Quelles sont celles que vous choisirez et pourquoi ? Etant donné que les méthode sont déjà mis en place, on utilisera les même bibliothèques que ce qu’on utilise actuellement, c’est à dire hypertopic

Doit-on intégrer des services extérieurs (ex : cartographie) ? Ø

De quelles fonctionnalités en particulier aura-t-on besoin ? Ø

Est-ce que le service choisi les propose ou doit-on passer chez un concurrent ? Ø

Comment s'utilisent ces fonctionnalités ? avec quels paramètres ? Ø

benel commented 2 years ago

Merged as c60eb1f12a8c97ccf18a2c9ee4aa4df1b0d4f737. Well done 🎉

benel commented 2 years ago

Don't forget to record a screencast of this feature on your application domain, and post it in this thread.

callistas commented 2 years ago

https://user-images.githubusercontent.com/55798625/172852497-e7b69963-e7fa-462e-899d-e01c169f89cb.mp4

Screencast explaining the feature. Recorded by Matthieu Dufon and Callista Spiteri