Projet POO en PHP : Gestion de Blogs

Objectif

Créer une application web multi-utilisateurs permettant à chaque utilisateur de publier des articles (blog).

Elements de cahier des charges

  1. L'application affiche en permanence une liste des auteurs (lien vers la liste des articles d'un auteur) et une liste d'articles (récents ou d'un auteur en particulier).
  2. La page d'accueil affiche le dernier article créé.
  3. Un article est constitué d'un titre et d'une suite de paragraphes
  4. Un paragraphe est constitué d'un sous-titre, d'un texte et d'une image (aucun champ obligatoire)
  5. L'image peut s'aligner à gauche, à droite ou au centre (texte en dessous dans ce cas)
  6. L'auteur doit s'authentifier (login/password) pour : créer un article, modifier son titre, créer un paragraphe ou le supprimer et modifier un paragraphe (sous-titre, texte, image).
  7. Le visiteur peut faire une recherche par mot clé sur les contenu texte des articles.
  8. Le visteur peut télécharger un article au format PDF.

Conception

  1. Analyse MERISE : Quels sont les entités qui entrent en jeu ? Quels sont leurs propriétés et leurs relations ? Faire un schèma (MLD) et implémenter une base MySQL (structures et données de test).
  2. Analyse UML (simpliste) : Quelles sont les traitements (fonctions) sur chaque entité ? Faire un diagramme des classes. Faire ensuite le prototypage (tout sauf le code des méthodes) de ces classes dans des fichiers PHP.
  3. Contrôleur : quels sont les différents affichages de l'applications, quels sont les paramètres nécessaires à chaque affichage (valeur du paramètre action et identifiants)

Architecture des fichiers

  • Tous les affichages se font à l'appel un seul fichier (index.php) qui contient la structure HTML de l'application et le lien vers la feuille de style.
  • Les différents affichages sont accessible selon les paramètres d'URL 'action' et des identifiants (d'auteurs, d'articles ou de paragraphes).
  • Sous-repertoires à créer : class (fichiers de declarations de classes), include (fichiers à inclure systematiquement : parametres de configuration, connexion MySQL (utilisez mysqli ou PDO), fonctions utilitaires...), scripts (fichiers à inclure sans la zone de contenu selon le paramètre 'action'), css, js, images, ...

Charte graphique

Liberté totale est laissée au développeur (cet aspect ne sera pas évalué).

Fonctionnalités bonus

Voici les fonctionnalités non demandées mais pratiques quand même (dans l'ordre de complexité croissante) :

  1. Affichage d'un sommaire en haut de l'article s'il comportent plus de 5 paragraphes
  2. Idem pour un lien retour en haut de page.
  3. Gestion de la date de modification des articles.
  4. Cryptage du mot de passe des auteurs.
  5. Redimensionnement à largeur fixe des images, affichage de l'image d'origine au click de l'image redimensionnée.
  6. Gestion de l'ordre de paragraphes dans un article.
  7. Intégration d'un éditeur de texte riche ou BBcode pour les paragraphes.
  8. "J'ai oublié mon mot de passe " : envoi par email de l'ancien mot de passe (si non crypté) ou d'un nouveau mot de passe (si crypté).
  9. Formulaire "Ecrire à l'auteur" en bas d'article.
  10. Différents niveaux d'acces : auteur simple, auteur modérateur (droit de modif sur tous les articles), auteur administrateur (inscrit les nouveaux auteurs et designe les modérateur et administrateur).
  11. Gestion des auteurs (ajout, modif, suppression) pour le niveau administrateur.
  12. Inscription des visiteurs comme auteurs, avec validation par l'administrateur ou validation de l'adresse email (envoi d'un lien de confirmation).
ATTENTION : Veuillez traiter completement les éléments de cahier des charges avant d'attaquer les fonctionnalités bonus.

Evaluation

2 rendu sont necessaire pour l'évaluation (sur 20 points) :

  1. Sur 10 points : rendu sur code source, dans une archive ZIP, à envoyer par email à " priam point pierret arobase gmail point com " avant vendredi 10 décembre 2010 à 18H.
    Critères d'évaluation : organisation, modularité, lisibilité, maintenabilité, éfficacité.
     
  2. Sur 10 points : test en ligne, mettre l'application en ligne sur un serveur web public avant le vendredi 7 janvier 18H, m'envoyer le lien par email avant cette date.
    Critères d'évaluation : respect du cahier des charges, ergonomie.
Bonus de 1 à 5 points pour les fonctionnalités bonus.
Vous pouvez (devez) améliorer (finir) l'application apres le rendu du code source le 10 décembre, dans la perspective du test en ligne qui se fera entre le 7 et le 12 janvier 2011.
Rendu des notes le jeudi 13 janvier en intro du cours XML-AJAX.

Code source téléchargeable

 Voici les fichiers de code réalisés en cours à la date du mardi 7 décembre à 18H00.

Télécharger le document : MyBlog.zip

Priam.eu| Contact | Plan du site | Copyright 2010 | Design : Priam| Dev : Priam | Admin