Désolé de mon manque de réactivité des dernières semaines. Je me remets donc à Xhoromag 4 à deux semaines du Yaz'.
Bon alors, la base de données, la structure est bonne, aux inévitables ajouts de dernière minute près, et les membres commencent à la remplir, le design et le ramassage d'articles sont en cours... Bon, je crois qu'on est bon, il ne reste plus rien à faire, je peux retourner dormir... ah si, tiens, coder le site. Bah, trivial.
Heureusement pour nous, le framework génère automatiquement énormèment de codes à partir de la simple structure de la base, y compris les formulaires de création, édition, suppression et recherche des aventures, séries et membres. Mais ce n'est pas non plus magique. Donc, spécifications.
Nous ne parlerons ici que du fonctionnel, pour le design, voir le sujet correspondant. Je m'appuie sur le sujet Fonctionnalités et droits, ainsi que de celui sur la structure de la base. Je me suis également uniquement concentré sur le cœur de métier de Xhoromag, les aventures. Une fois ce morceau de choix codé, la gestion des articles ne sera qu'un ajout mineur, car on aura déjà une complète gestion des membres, commentaires et recherches.
Comme vous l'aurez sans doute remarqué, la majeure partie des problèmes à résoudre est liée la gestion des permissions : qui peut faire quoi ? Pour savoir comment le framework les gère, voir le sujet (très technique) Authentification and Authorization de la doc de Yii.
Vous remarquerez que j'ai allégé certaines contraintes. En particulier, j'ai transformé la plupart des validations a priori (attendre confirmation de l'administrateur) par des validations a posteriori (on laisse faire, et on traite les plaintes s'il y a un problème). Cela allègera la charge de travail de développeurs, et évitera des crises de nerfs aux membres.
Notes : par défaut, l'admin peut tout faire, je ne l'ai donc pas systématiquement précisé. De la même façon, membre inscrit sous-entend "non banni".
/******* Attention, pavé !!! **********/
Module Member
Inscription
Priorité Maximale
Détails
Récupération de mot de passe
Priorité Faible
Détails
Création d'un compte d'un autre membre
Priorité Élevée
Réclamer un compte
Priorité Élevée
Édition du profil
Priorité Moyenne
Suppression d'un membre
Priorité Faible
Qu'est-ce qui existe déjà ? (liste non-exhaustive)
Module Collection
Création d'une série
Priorité Maximale
Ajout d'ayant-droits à une série
Priorité Faible
Qui ? : Créateur de la série
Pourquoi ? : Dans le cas d'une série collective, plusieurs personnes doivent pouvoir contribuer et mettre à jour les informations générales.
Fonctionnalités à développer :
Édition des informations de la série
Priorité Moyenne
Suppression d'une série
Priorité Faible
Module Avh
Création d'une aventure
Priorité Maximale
Édition d'une aventure
Priorité Moyenne
Gérer l'avancement d'une aventure
Priorité Élevée (indispensable pour déterminer l'état d'une aventure)
Donner accès à des aventures sur d'autres sites
Priorité Faible
Héberger son aventure sur Xhoromag
Priorité Élevée
Trier les aventures
Priorité Moyenne
Général
Alerter sur un contenu
Priorité Faible
Contacter l'équipe du site
Priorité Faible
Créer un commentaire
Priorité Moyenne
Éditer un commentaire
Priorité Faible
Supprimer un commentaire
Priorité Faible
Rechercher sur le site
Priorité Moyenne
Pouvoir mettre en ligne des fichiers sur le site
Priorité Maximale
Retailler automatiquement les images
Priorité Faible
Qu'est-ce qui existe déjà ? (liste non-exhaustive)
Remarques
/****** Fin du pavé ********/
Si vous avez eu le courage de lire, ou ne serait-ce que de survoler ce qui précéde, et que vous avez des remarques, n'hésitez pas, j'y répondrai dès que mon cerveau aura retrouvé toutes ses capacités.
Bon alors, la base de données, la structure est bonne, aux inévitables ajouts de dernière minute près, et les membres commencent à la remplir, le design et le ramassage d'articles sont en cours... Bon, je crois qu'on est bon, il ne reste plus rien à faire, je peux retourner dormir... ah si, tiens, coder le site. Bah, trivial.
Heureusement pour nous, le framework génère automatiquement énormèment de codes à partir de la simple structure de la base, y compris les formulaires de création, édition, suppression et recherche des aventures, séries et membres. Mais ce n'est pas non plus magique. Donc, spécifications.
Nous ne parlerons ici que du fonctionnel, pour le design, voir le sujet correspondant. Je m'appuie sur le sujet Fonctionnalités et droits, ainsi que de celui sur la structure de la base. Je me suis également uniquement concentré sur le cœur de métier de Xhoromag, les aventures. Une fois ce morceau de choix codé, la gestion des articles ne sera qu'un ajout mineur, car on aura déjà une complète gestion des membres, commentaires et recherches.
Comme vous l'aurez sans doute remarqué, la majeure partie des problèmes à résoudre est liée la gestion des permissions : qui peut faire quoi ? Pour savoir comment le framework les gère, voir le sujet (très technique) Authentification and Authorization de la doc de Yii.
Vous remarquerez que j'ai allégé certaines contraintes. En particulier, j'ai transformé la plupart des validations a priori (attendre confirmation de l'administrateur) par des validations a posteriori (on laisse faire, et on traite les plaintes s'il y a un problème). Cela allègera la charge de travail de développeurs, et évitera des crises de nerfs aux membres.
Notes : par défaut, l'admin peut tout faire, je ne l'ai donc pas systématiquement précisé. De la même façon, membre inscrit sous-entend "non banni".
/******* Attention, pavé !!! **********/
Module Member
Inscription
Priorité Maximale
Détails
Récupération de mot de passe
Priorité Faible
Détails
Création d'un compte d'un autre membre
Priorité Élevée
Réclamer un compte
Priorité Élevée
Édition du profil
Priorité Moyenne
Suppression d'un membre
Priorité Faible
Qu'est-ce qui existe déjà ? (liste non-exhaustive)
- Yii génère de base des formulaires à partir de la structure de données, il ne reste ensuite qu'à les mettre en forme et à ajouter les validations de champs manquantes. Un même formulaire peut bien sûr servir à la fois à la création et l'édition.
- Le module yii-user apporte énormément de fonctionnalités, mais à vouloir être trop général, il a des performances et une structure de base pourries. Cependant, on peut allégrement y piller les méthodes les plus utiles (validation de compte par mail, changement de mot de passe).
- J'ai codé l'identification, en reprenant l'exemple précédent.
Module Collection
Création d'une série
Priorité Maximale
Ajout d'ayant-droits à une série
Priorité Faible
Qui ? : Créateur de la série
Pourquoi ? : Dans le cas d'une série collective, plusieurs personnes doivent pouvoir contribuer et mettre à jour les informations générales.
Fonctionnalités à développer :
- Formulaire "Donner des droits sur la série à un membre", avec un simple champ texte à autocomplétion pour le nom du membre
Édition des informations de la série
Priorité Moyenne
Suppression d'une série
Priorité Faible
Module Avh
Création d'une aventure
Priorité Maximale
Édition d'une aventure
Priorité Moyenne
Gérer l'avancement d'une aventure
Priorité Élevée (indispensable pour déterminer l'état d'une aventure)
Donner accès à des aventures sur d'autres sites
Priorité Faible
Héberger son aventure sur Xhoromag
Priorité Élevée
Trier les aventures
Priorité Moyenne
Général
Alerter sur un contenu
Priorité Faible
Contacter l'équipe du site
Priorité Faible
Créer un commentaire
Priorité Moyenne
Éditer un commentaire
Priorité Faible
Supprimer un commentaire
Priorité Faible
Rechercher sur le site
Priorité Moyenne
Pouvoir mettre en ligne des fichiers sur le site
Priorité Maximale
Retailler automatiquement les images
Priorité Faible
Qu'est-ce qui existe déjà ? (liste non-exhaustive)
- De base, Yii propose un formulaire de contact
- Une gestion basique des commentaires est présenté dans le tutoriel de Yii, et il existe probablement des milliers de variantes pour les gérer sur le net.
- Yii inclue déjà une fonctionnalité de recherche basique et avancée, générée à partir des classes. Elle permet de limiter la recherche à certains champs côté code, soit le titre, le titre de la série, les auteurs, la description, le genre et l'univers. S'agissant d'une recherche directe dans la base SQL, ce n'est pas le top de la performance, mais cela devrait suffir pour nos besoins. Si c'est vraiment trop lent, il faudra passer à des extensions plus lourdes, mais plus efficaces, comme Apache Solr ou autre.
Remarques
- L'url, et en particulier le nom, d'une image compte dans sa SEO. C'est la raison pour laquelle couvertures et logos sont enregistrés sous des noms à rallonge, pour augmenter leur chance d'apparaître dans Google Image lorsque l'on entre le titre de l'aventure.
- Je suis parti du principe que le futur hébergeur de Xhoromag nous laissera accéder aux extensions de traitement d'images de php, histoire de pouvoir enregistrer les images aux tailles idéales pour le site dans la mémoire (cela évite à votre navigateur d'avoir à charger une image trop lourde, ce qui vous fait attendre plus longtemps.
- Google peut lire les pdf, en particulier les métadonnées et les titres et sous-titres internes au document. Cependant, il les aime beaucoup moins que les pages html, n'aime pas les URL avec des espaces, et l'utilisateur lambda lui n'aime pas les noms de fichiers avec des tirets partout. Mais bon, avec la magie des redirections web, c'est un faux problème, l'adresse "truc/neige-d-automne.pdf" pouvant tout à fait envoyer sur le fichier "Neige d'Automne.pdf".
/****** Fin du pavé ********/
Si vous avez eu le courage de lire, ou ne serait-ce que de survoler ce qui précéde, et que vous avez des remarques, n'hésitez pas, j'y répondrai dès que mon cerveau aura retrouvé toutes ses capacités.