Bon, il me semble que j’ai fait un bon tour de la théorie au sujet du PHP objet (j’ai encore au moins 2 billets théoriques à écrire), et je l’applique déjà depuis plusieurs semaines durant mon stage. Mais maintenant j’aimerai bien me faire un petit projet tout en PHP objet. Je ne sais pas si vous connaissez Doodle ? Je trouve le concept vraiment génial. Ce site permet à n’importe qui de créer des sondages classiques, ou alors des sortes de sondages permettant de fixer facilement une date d’un rendez-vous pour autant de personnes que l’on souhaite. Je vais donc réaliser dans les jours à venir (et j’espère arriver aux termes de ce projet) un Doodle like (j’ai pas encore d’idées de nom… mais ça viendra) !
Voici donc un cahier des charges d’un Doodle like.
Feuille de route
- Version tout en PHP (orienté objet) sans aucun Javascript ou autre. Fonctionnalité : « Trouver une date ».
- Ajout du Javascript pour la fonctionnalité « Trouver une date » et le reste du site.
- Ajout de fonctionnalités « Faire un choix », « Sondage », « Qui prend quoi, pour un repas », ou autre, et amélioration des fonctionnalités présentes. En PHP (orienté objet) d’abord puis en améliorant avec le Javascript.
Introduction
Doodle like est un site Internet visant à simplifier drastiquement les prises de décisions au sein d’une équipe ou d’un groupe. Grâce à un système de sondage simple, instinctif et friendly, n’importe quel internaute peut proposer une date de rendez-vous à un groupe (restreint ou non) de personnes, s’évitant ainsi de longues heures perdues au téléphone ou en envoi/réception d’e-mails.
But
- Apprendre à (mieux) utiliser le PHP orienté objet
- Apprendre à (
mieux) utiliser jQuery - (Apprendre à utiliser le XML comme fichier de configuration. Et donc SimpleXML ou autre. -> pas nécessaire finalement, donc à voir)
- S’amuser
- Créer un système sécurisé où aucune information privée non désirée ne peut filtrer vers l’extérieur. Aucune information ne sera utilisée à des fins commerciales ou autre (hors publicité type Google Adsense, et encore, modérément), et aucune information privée ne sera conservée ou traitée.
Détails des fonctionnalités
Trouver une date
Tables SQL :
- trouverUneDate(id, nom_createur, email_createur, webcreateur, date_creation, date_last_modif, titre, titre-rewrite-et-unique, description, nb_reponse, reponse_unique_multiple_ou_limite(0,1, nb), commentaire_autorise(0,1), nb_commentaire, autorisation(0->que admin, 1->que inscris, 2-> tout le monde), actif(0,1)) -> p-e chaine unique pour participation et administration
- dateACheck(id, id_sondage, date(timestamp))
- horaireACheck(id, id_date, horaire(format à définir mais si possible le plus libre possible. Ex : 8:00-9:00@paris))
- commentaire(id, idSondage, pseudo, e-mail, web, date_creation, date_last_modif, msg)
Étapes de création d’un sondage :
- Choix du titre, description, pseudo, e-mail, choix des options (pré-remplies -> autorisation, commentaire, restriction à quelques utilisateurs (inscris) ou avec un mot de passe)
- Choix des dates et des horaires
Fin d’un sondage :
- Blocage du sondage
- Envoi d’un e-mail (personnalisé) donnant la réponse à tous les utilisateurs si désirés
Administration d’un sondage : (pour les créateurs de sondages qui se sont inscris)
- Modification du titre, de la description, des options possibles
- Modification des dates et des horaires possibles
- Supprimer, modifier une ou des réponses à un sondage
- Supprimer le sondage
Participer à un sondage :
- Répondre au sondage
- Si autorisation = 2 : Modification, suppression de toutes les réponses possibles
- Si autorisation = 1 : Modification, suppression des ses réponses (pour les inscris)
- Si autorisation = 0 : Rien ne peut être modifié ou supprimé par les inscris ou les visiteurs
Système de compte
Table SQL :
- user(id, pseudo, mdp, email, web, date_inscription, nb_sondagecréé, nb_sondageparticipe, etat(1->ok, 0->banni))
Inscription :
- Pseudo, mdp et e-mail sont demandés
- Un e-mail avec rappel pseudo, mdp est envoyé Gestion du compte :
- Permet de modifier : pseudo, mdp, e-mail, web.
- Un e-mail avec rappel pseudo, mdp est renvoyé si l’e-mail à changé Pages spéciales :
- Mes sondages
- Les sondages auxquels j’ai participé
- (Sondages pouvant m’intéresser)
Pages
Table SQL
- article(id, auteur, email_auteur, web_auteur, date_creation, date_last_maj, titre, article, commentaire_autorise(0,1), nb_commentaire, tag)
- tag(id, tag, nb_tag)
- Nous contacter
- Table SQL : email(id, emailemeteur, pseudoemetteur, sujetemeteur, msgemeteur, envoye(1-> oui, 0-> non, 2->en attente), (emaildest))
- Formulaire : Email, pseudo, sujet, msg, (choix destinataire)
- Qui sommes-nous & qu’est-ce que Doodle like
- Page de la table article
- Politique d’accessibilité
- Page de la table article
Parlons technique
- Rewriting des pages : titre-du-sondage-rewrite-unique.html
- Un peu de SEO : liste des derniers sondages, liste du top des sondages, liste de sondages aux hasards… A améliorer, à méditer. Etude des mots clefs nécessaire !
Idées futures
- Flux RSS des sondages, de ses sondages, des commentaires
- Commentaires des sondages
- Doodle pour appareil portable
2 Responses to Cahier des charges : Doodle like en PHP objet