Differences

This shows you the differences between two versions of the page.

Link to this comparison view

dev:devtags [2011/03/28 19:56] (current)
gradator created
Line 1: Line 1:
 +====== Devtags ======
  
 +The objective is to organize http://​project.tuxfamily.org/​allwebsites.pl (the list of all websites)
 +
 +see http://​bugs.vhffs.org/​view.php?​id=179 for initial requirements and for all evolutions requested http://​bugs.vhffs.org/​view.php?​id=235
 +
 +examples : 
 +  * cloud http://​debtags.alioth.debian.org/​cloud/​ categories + list of attributes (tags), alphabetically + font-size depending on popularity
 +      * http://​debtags.alioth.debian.org/​faceted.html explanations of what are tags
 +      * add tags : http://​debtags.alioth.debian.org/​edit.html?​pkg=admesh I like it a lot with categories, there are suggestions
 +  * navigation http://​www.ohloh.net/​tags/​console with number of projects / search ​
 +      * http://​www.ohloh.net/​tags/​console/​java url are directly readable (add tags to refine results), easy to remove a tag (and nice icon)
 +      * what I don't like : tags for each project are not shown on this result list
 +  * navigation http://​code.google.com/​hosting/​search?​q=label:​vnc ​
 +      * a bit too simple
 +      * tags are displayed for each project listed but with no indication of importance :/
 +  * http://​de.lirio.us there'​s source code available :
 +      * http://​de.lirio.us/​code/​
 +      * http://​search.cpan.org/​~rjbs/​Rubric/​ see http://​search.cpan.org/​src/​RJBS/​Rubric-0.142/​
 +  * http://​links.edonix.com/​sabrosus.php
 +      * https://​sourceforge.net/​projects/​sabrosus/​ in PHP / MySQL
 +      * http://​sourceforge.net/​projects/​scuttle/​ Web-based social bookmarking system. Allows multiple users to store, share and tag their favourite links online.
 +      * http://​sourceforge.net/​projects/​phptagengine
 +      * http://​sourceforge.net/​projects/​jscontrolstags
 +      * http://​sourceforge.net/​projects/​qikblogger
 +  * http://​www.libres-apps.org/​ example of the use of tags (library Script.aculo.us see http://​script.aculo.us/​)
 +  * http://​demoll.tuxfamily.org/​ a real implementation to identify enhancements required
 +      * manage language for tags (only one language at the moment)
 +      * display websites by alphabetical order (only per page display)
 +      * enable users to log-in in order to modify / add tags
 +      * manage admin tags (not seen by users with unsuficient rights)
 +      * manage types of tags like License:GPL DocLicense:​GFDL webTool:​dokuwiki hosting:web hosting:SVN ...
 +      * identify latest modifications (tag added or modified, by who...)
 +        ​
 +
 +
 +
 +
 +===== user requirements =====
 +
 +  * Catégories de tags avec localisation
 +  * Chaque catégorie de tag contient des tag eux même localisés (pas plus de 20car)
 +  * Par défaut, les tags sont créés par les admins ou modérateurs,​ avec le libellé EN ANGLAIS (langue par défaut)
 +  * Avoir une description par tag permettant de mieux cerner ce que doit contenir le tag (savoir si son projet correspond au tag ou non)
 +  * Seuls les projets sont taggués (pour commencer, mais pourrait s'​appliquer à espace web, svn ou cvs)
 +  * Modération a posteriori : 
 +      * les modérateurs ont une page répertoriant les derniers tags ajoutés (tri par date) qu'ils peuvent supprimer si besoin
 +      * les modérateurs ont une autre page répertoriant les derniers projets taggués
 +  * les tags apparaîtront sur les pages:
 +      *  http://​project.tuxfamily.org/​allwebsites.pl (récupérer tags du projet)
 +      *  http://​project.tuxfamily.org/​allgroups.pl
 +      *  possibilité d'​avoir des tags non publics (réservés à modérateur : par exemple, admin:​site_vide admin:​a_surveiller),​ cela impacte l'​interface de saisie et d'​affichage
 +  * améliorations ultérieures:​
 +      * recherche par tag (sites concernant les graphismes comme http://​oldfaq.tuxfamily.org/​wakka.php?​wiki=LinuxGraphics)
 +      * recherche par inclusion/​exclusion de tag (Exemple1: +jeu +3d => les projets de jeu avec moteur 3d ; Exemple2: +3d -jeu => les projets de rendu 3d, graphisme, etc.)
 +      * statistiques par tag (eg: combien de projets GPL, Art Libre... ; combien de projets concernant des distributions http://​oldfaq.tuxfamily.org/​wakka.php?​wiki=ListDistributions)
 +      * possibilité pour pacman d'​afficher les tags d'​admin lors de la modération
 +
 +===== specifications =====
 +
 +==== database model ====
 +http://​wiki.eagle-usb.org/​wakka.php?​wiki=HowToDia will have to be updated with latest changes to the database
 +
 +Development version :
 +vhffs_tags
 +  * tag_id identifiant (serial)
 +  * tag_parent categorie du tag. Ce tag est une categorie si ce champ vaut 0(int4)
 +  * date_modif date de création du tag(timestamp)
 +  * user_modif utilisateur ayant créé le tag(oid)
 +  * type_modif type de modification(A=add,​ D=delete, U=update) (char)
 +  * restriction gestion du niveau de restrictions (int4)
 +vhffs_tags_locate
 +  * tag_id id du tag(int4)
 +  * langue langue de la localisation(varchar(20)) ​  A voir: mettre la liste des langues dans une table a part et lié?
 +  * name nom du tag localisé (varchar(250))
 +  * descr description du tag localisé (text)
 +
 +vhffs_tags_link
 +  * objectid id de l'​objet taggé (oid) => permet retrouver description,​ type...
 +  * tag_id id du tag (int4)
 +  * date_create date de création du lien (timestamp)
 +  * user_create utilisateur qui créé le lien(qui tag sont projet quoi) (oid)
 +
 +
 +
 +latest version :
 +
 +link_tags_objects table : (1,n) between objects / tags
 +  * tag_id identifier of a tag (format ?)
 +  * object_id identifier of an object (be it a project, web area, cvs / svn)
 +  * date_creation identifies when the tag was added to this object
 +  * user who added the tag to the project
 +
 +example : project eagleusb is license:​BSD+GPL,​ license_doc:​Art Libre, license_doc:​GFDL sans sections invariantes,​ license_doc:​CC-BY-SA-2.5,​ license_doc:​GPL,​ web:​documentation,​ web:​developments,​ web:forum hosting:​tuxfamily,​ hosting:​gna,​ hosting:​endor
 +
 +tags table : list of tags available (one table is sufficient for l10n)
 +  * tag_id identifier of tag (format ?)
 +  * lang language for description
 +  * category_tag (this is in fact a tag_id : some tags are in fact categories ;-) to avoid creating a new table), 0 for tag being a category ? 
 +  * description is a localized description of the tag (25char max ?)
 +  * date_creation identifies when the tag was created
 +  * date_modif identifies when the tag was modified
 +  * user_modif who last created/​modified the tag
 +  * level 0 public, 1 identified, 2 modo, 3 admin
 +
 +==== SQL accesses ====
 +  * latest projects tagged
 +  * latest tags created
 +  * tags for a project, for a web area (the ones of the project)
 +  * list of projects (with description) for a selection of tags
 +  * number of projects by tag
 +
 +==== screens using tags ====
 +  * (new) tag moderation: latest projects tagged and latest tags created : deletion / translation for modo (or authorized users ?)
 +  * (new) list of tags by categories (alphabetical),​ add tags / translation (could be merged with previous one ?)
 +  * (modif) add / remove (/ translate) tag to project in panel (owner, modo, admin, authorized user)
 +  * (modif) display project / web area with tags (individual or complete list), web-area'​s tags correspond to the project
 +  * (new) search / navigation by tags
 +
 +Precisions : 
 +  * category of tag could be displayed as an "​acronym"​ on the tag (to avoid too long lines) or it could be of the form category:​tag
 +  * if the language chosen by the user is not available, by default display english translation
 +  * put a link on every tag to access navigation by tags (how to add tags to refine search ? check what's done on http://​sourceforge.net and http://​www.libres-apps.org/​ - choose other colors though !)
 +   
 +
 +===== later / reminder =====
 +   * check http://​linuxfr.org/​~Nahuel/​21657.html about http://​www.libres-apps.org/​
 +   * check http://​www.snook.ca/​technical/​colour_contrast/​colour.html for choice of colors
 +   * re-read http://​debtags.alioth.debian.org/​vocabulary.html and http://​debtags.alioth.debian.org/​faceted.html to understand better how to organize categories / tags
 +   * some examples
 +      * distribution:​ BSD (NetBSD, OpenBSD, ...), GNU/Linux, non-libre-OS
 +      * license: BSD, GPL, ArtLibre, GFDL, GFDL without invariant sections, CC-BY-SA, CC-BY
 +      * tools: Forum:​PunBB,​ phpBB Wiki:​wikini,​ wikka, doku, BTS:​mantis,​... (sub-categories may be needed)
 +      * content: program, game, distribution,​ packages
 +      * purpose: development,​ tutorial, support, ​
 +      * "​service"​ tags like "to be checked",​ "​empty",​ "​undesired publicity",​ ... to be restricted to modo / admin (not to be displayed, perhaps hard-code it in vhffs ?)
 +
 +
 +
 +
 +
 +===== quelques requêtes utiles (démo) =====
 +   * derniers ajouts de tags par site : par date, tag et lien concerné ​
 +      * il n'y a pas encore d'​utilisateur de loggué, pour savoir qui a fait la modif'
 +      * une page php pour l'​afficher serait plus sympathique... (je passe par phpmyadmin),​ ça permettrait d'​avoir de la modération
 +
 +SELECT lt.date_added,​ tags.tag, l.enlace ​ FROM `tags_linktags` as lt, `tags_tags` as tags, `tags_sabrosus` as l  where lt.tag_id=tags.id and l.id_enlace=lt.link_id ORDER BY lt.`date_added` ​ DESC, l.enlace
 +   * dernière création d'un tag : par date, tag et liens concernés
 +SELECT tags.date_creation,​ tags.tag, l.enlace
 +FROM `tags_tags` AS tags, `tags_linktags` AS lt, `tags_sabrosus` AS l
 +WHERE lt.link_id = l.id_enlace
 +AND lt.tag_id = tags.id
 +ORDER BY tags.date_creation DESC , tags.tag, l.enlace
 +
 +
 +
 +===== pour tagguer utile =====
 +  * se logguer sur http://​demoll.tuxfamily.org le mot de passe étant tuxfamily02
 +  * pas besoin de créer de nouveau tag, déjà utiliser ceux existants
 +  * cliquer du milieu sur Edit pour ouvrir un nouvel onglet (c'est plus pratique les tags , déselectionner admin:​to_tag et cliquer sur les tags existants correspondants au site
 +  * notamment, trouver la licence, la langue, identifier si c'est un wiki/weblog et tout autre tag correspondant
 +  - identifier la langue (obligatoire,​ il peut y en avoir plusieurs)
 +  - identifier la licence (obligatoire)
 +  - identifier le thème (sélectionner plusieurs tags au besoin : par exemple weblog license:​CC-BY-SA os:​GNU/​Linux support développement license:​GPL)
 +  - pour les sites vides, contenant du non libre, à l'​abandon,​ spammés ou cassés : tagguer en conséquence
 +  - si besoin d'​ajouter un tag non existant, me demander avant :-)
Recent changes RSS feed Creative Commons License Donate Minima Template by Wikidesign Driven by DokuWiki