TypeMaster

De Disposition de clavier bépo

Présentation

Il s'agit de créer un site spécialisé sur l'écriture de textes au clavier.

Liste des fonctionnalités souhaitées :

  • Très nombreux textes pour éviter l'effet mémoire qui fausse les stats.
  • Statistiques personnelles : graphique de progression, écart-type.
  • Statistiques globales : comparaison des utilisateurs avec disposition bépo et disposition azerty
  • Apprentissage : Aider à apprendre la frappe à 10 doigts en aveugle (à la Klavaro)
  • Compétition : Course entre plusieurs utilisateurs (à la typeracer)
  • Multilingue : Pourquoi se limiter au français ?
  • (Éventuellement) Comparaison de dispositions claviers : Une fois que l'on aura plein de textes en base de donnée, cela peut être intéressant d'ajouter cette fonctionnalité (genre sur les textes français, on parcours tant de fois moins de distance)

Cahier des charges

Le site en lui même

Langages : xHTML/CSS/PHP/MySQL(InnoDB) + Ajax ou APE pour la partie compétition.

Multilingue : Avec fichier contenant tout les textes, pour que des volontaires puissent aider à traduire aisément sans avoir tout le code source.

Graphiques : Quelle bibliothèque utiliser ?

- Google chart ?

-> --Robipo 6 mars 2010 à 13:32 (CET) Personnellement, je suis contre google chart (même si je l'utilise dans mon stage), je préfère éviter d'être dépendant des serveurs google.

- Artichow ?

Base de donnée du site

À première vue, je pense à une structure de ce style :


Lang(lang,name) [ex : "fr","Français"]

Layout(layout,name) [ex : "bépo","Bépo"] // pas encore sûr, mais faudra rajouter plus d'informations je pense (surtout pour la partie tuto/apprentissage)

User(uid,nick,pass,email,lang,layout) [ex : 1,"Robipo","4bce3c61e607d88a05274afee6ad3d3d","robipo@typemaster.org","fr","bépo") // lang est la langue d'affichage pour le site, un utilisateur peut très bien vouloir taper des textes d'autres langues évidemment.

Text(tid,lang,len,data) [ex : 1,"fr",500,"Un responsable principal fixe les ..."]

Type(uid,tid,ts,duration) [ex : 1,1,1267878511,42,500] // Représente un texte tapé

Acquisition des textes

Une des parties principales du site est l'acquisition de textes, pour cela plusieurs moyens (éventuellement combinables) :

- User-generated content (les utilisateurs entrent des textes eux-mêmes)

-> Problème de qualité des textes

--> Les textes doivent être modérés, mais dans ce cas il faut une équipe de modération, donc plus difficile à maintenir

--> Système de notation par les autres membres, si le texte a une moyenne < 1/5 avec plus de 3 votes, on le vire. Après on pourrait même faire un système de confiance aux utilisateurs (si un utilisateur a déjà posté plusieurs textes de bonne qualité, alors son texte sera accepté, pour les nouveaux, ça passerait par un système de validation, ou dans le genre)


- Wikipédia (de très nombreux textes à libre disposition)

-> Page aléatoire (http://fr.wikipedia.org/wiki/Sp%C3%A9cial:Page_au_hasard)

Problèmes des textes trop courts ou trop techniques

--> Prendre une autre page si trop court ou trop technique (mais comment détecter les pages trop techniques ?)

-> Téléchargement de la base de donnée entière

--> Problème de data-mining et de stoquage : D'abord il faudrait réussir à extraire que la partie texte des articles (data-mining), ensuite, vu la taille colossale de la base de donnée, il risque d'y avoir des problèmes pour les récupérer à partir de php.

- Livres

-> Où trouver une base de données de livres ?

-> Problème de copyright

-> gutenberg, wikisources, google books, etc

Problème : récupérer que du texte à partir de divers formats