![]() |
![]() |
Page perso de Maxime Lefrançois > LPSIL IDSE - Web Multimédia / Web Sémantique > Partie 1: Application Pictionnary
Partie 1: Application PictionnaryDe $1Table des matières
ObjectifsNous allons survoler les bases du développement d'une application HTML5, et développer une application similaire à l'application Draw Something, compatible avec le web mobile. Cette partie va durer 3 séances de 3h. On développe la base de votre premier projet à rendre, l'application Pictionnary Ansynchrone. Concepts abordés:
Technologies utilisées: PHP, MySQL, HTML5, CSS3, javascript Prenez l'habitude d'utiliser les outils de développement de votre navigateur pour étudier le DOM, les échanges réseau, le javascript, le CSS, ... Mise en routeDiscussion: Qu'est-ce que le HTML 5 ? On va aborder un ensemble de concepts nouveau dans le HTML5. A faire: Survoler la liste sur le site http://html5test.com/. Dans la partie 1 du cours on va se concentrer sur:
Discussion: Quels autres points de la liste connaissez vous ? vous intriguent ?
Soyez curieux, demandez, ou cherchez sur le net. Parsing Rules, headers, balises metaA faire: Validez chacun de ces documents html dans le validateur du w3c: http://validator.w3.org/#validate_by_input Corrigez les erreurs. Prenez l'habitude de valider vos documents HTML. HTML 4.01 /div[2]/div/pre, reference to undefined name 'syntax'HTML5
/div[2]/div/pre, reference to undefined name 'syntax'
Discussion: Commentaires ? Des différences importantes ?
Cours: Dans le document à l'url http://www.slow-lab.com/guide-balises-meta.php, lisez les sections suivantes:
Ne vous attardez pas trop dans les détails, en particulier pour les balises meta de partage Facebook: on y reviendra en détail plus tard...
Discussion: Commentaires ? Une idée de ce que peut bien être le web sémantique ?
ElementsA faire: Téléchargez le projet demoHTML5 ci-joint. Exécutez et étudier les sources de chaque fichier HTML. 1_customNonVisibleData: Etudiez le document à l'url http://www.alsacreations.com/article/lire/1397-html5-attribut-data-dataset.html 2_SectionElements: Etudiez le document à l'url http://www.alsacreations.com/article/lire/1376-html5-section-article-nav-header-footer-aside.html 3_textLevelElements: Comprenez l'utilité:
4_InteractiveElements: Etudiez le document à l'url http://www.alsacreations.com/article...s-summary.html Formulaire d'inscriptionLa première étape pour notre projet est une de connexion sur notre site. Cours: Pour les formulaires HTML5, une introduction peut être lue à la page suivante: http://standardista.com/forms/. Vous vous inspirerez ensuite des documents suivants
page inscription.phpLe formulaire d'inscription doit comporter les champs suivants:
Prenez comme base le code suivant. Comme vous pouvez le voir,
Etudiez le code, répondez aux questions, complétez le code comme demandé. Puis, ajoutez les champs simples tels que nom, prénom, ville, taille, couleur, etc.
Ces champs font l'objet des trois sections suivantes. /div[3]/div/pre, reference to undefined name 'syntax'Validation des mots de passeUtilisez le code suivant pour les deux champs mot de passe. Etudiez le code, répondez aux questions, complétez le code. En particulier:
Calcul de l'âgeOn veut parser la valeur du champs birthdate en date, comparer avec la date d'aujourd'hui, et récupérer un nombre d'années écoulées.
Photo de profilPour la photo de profil, on décide de charger l'image, de la redimensionner pour éviter de trop envoyer au serveur, et de stocker l'image dans le formulaire sous la forme d'une data url. Si vous ne savez pas ce qu'est une data url, survolez le document suivant: http://www.alsacreations.com/article/lire/1439-data-uri-schema.html Utilisez le code suivant pour le champs file. Etudiez le code, les explications, et écrivez le bout de code demandé. /div[3]/div/div[3]/pre, reference to undefined name 'syntax'Pour plus d'info sur l'API File et l'objet FileReader, ou pour savoir comment on aurait pu faire avec le drag'n drop, référez-vous à ce document (anglais): https://developer.mozilla.org/fr/docs/Using_files_from_web_applications, sections
Style CSS3 et Web mobile(inspiré de http://webdesign.tutsplus.com/tutorials/site-elements/bring-your-forms-up-to-date-with-css3-and-html5-validation/) Ajoutez le dossier css fourni dans le fichier css.zip à votre projet, et ajoutez la ligne suivante dans le header: /div[3]/div[2]/pre, reference to undefined name 'syntax'La feuille de style styles.css utilise:
Web MobileCette feuille de style ne s'applique que pour les ordinateurs (media="screen"). D'autres valeurs existent, telles que "handheld" (pour les teminaux mobiles), "print" (lors de l'impression) ou encore "braille" (pour les non-voyants)... Lorsque vous rendrez l'application pictionnary, un gros bonus est offert aux applications qui s'adaptent pour les mobiles (en portrait et en paysage). Vous étudierez pour celà le document http://www.alsacreations.com/article/lire/930-css3-media-queries.html Vous pouvez émuler un terminal mobile à l'aide d'une application ou d'une extension de votre navigateur, ou connecter directement votre serveur et vote smartphone au même réseau wifi et ouvir les ports de connexion. Vous vous débrouillerez. En attendant, passons à la suite. Gestion de la connexionOn commence à toucher au serveur. Dans PhpMyAdmin ou dans la console MySQL,
Mainteant dans PHPStorm, connectez-vous à la base de données pictionnary avec l'utilisateur test et le mot de passe test: view -> tool windows -> database, puis ajouter datasource mysql, jdbc:mysql://localhost:3306/pictionnary, télécharger le driver si besoin. Si votre pare-feu s'alarme, débloquez les ports.
On est maintenant prêt à recevoir une soumission du formulaire "inscription". Page req_inscription.phpLorsqu'un utilisateur soumet le formulaire "inscription", le comportement souhaité est le suivant:
Comme on utilise MySQL, on pourrait utiliser mySQL, mySQLi, ou JDO en PHP, c.f., http://www.php.net/manual/fr/mysqlinfo.api.choosing.php Si vous ne connaissez pas la gestion des sessions en php, le document de référence est http://www.php.net/manual/fr/book.session.php, Etudiez le code, répondez aux questions, complétez le code comme demandé. /div[4]/div[3]/div/pre, reference to undefined name 'syntax'Modifiez la page incription.php en accord avec le comportement attendu en cas d'échec. Page header.phpConstruisez une page header.php (élément header en html 5), qui contient:
pour savoir si une session existe, vous devez démarrer une session et vérifier si un paramètre de session existe comme suit: /div[4]/div[3]/div[2]/pre, reference to undefined name 'syntax'La page inscription.php, comme toute autre page de l'application, devra inclure la page header.php. Page req_login.phpLa page req_login.php vérifie si il existe bien une entrée dans la base pour cet email et ce mot de passe:
Page logout.phpPour se déconnecter, le code php est très simple, il suffit d'ajouter ceci au début de la page: /div[4]/div[3]/div[4]/pre, reference to undefined name 'syntax'Redirigez ensuite vers la page main.php. Page main.phpConstruisez une page main.php qui inclut la page header.php et, dans un div, un lien vers la page paint.php pour commencer un dessin. Dessiner et redessinerPage paint.phpCours: les tutoriels suivants sont importants:
La page paint.php va contenir les éléments suivants:
Etudiez le code, répondez aux questions, complétez le code comme demandé. /div[4]/div[3]/div[5]/div/div/pre, reference to undefined name 'syntax'
Observez que lorsqu'on dessine trop rapidement, on ne dessine pas un propre trait, mais plutôt un ensemble de cercles. Modifiez le code de votre application pour dessiner non seulement un cercle, mais également un trait de la bonne épaisseur et de la bonne couleur, de la position précédente du stylo à sa position actuelle. lorsqu'on valide le dessin, on envoie au serveur la structure de données, sous la forme d'un objet JSON.
Page req_paint.phpl'utilisateur a posté le formulaire à la page req_paint.php. On veut maintenant enregistrer une nouvelle ligne dans une nouvelle table DRAWINGS dans la base de données, avec les valeurs suivantes:
créez la table DRAWINGS dans la base de données, et écrivez la page req_paint.php. Page guess.phpModifiez d'abord la page main.php: on veut récupérer l'identifiant des dessins créés par l'utilisateur courant, et pour chaque dessin afficher un lien vers la page guess.php, avec le paramètre d'URL id qui vaut l'identifiant du dessin. Pour la page guess.php, étudiez ce code, répondez aux questions, complétez le code comme demandé. /div[4]/div[3]/div[5]/div/div[3]/pre, reference to undefined name 'syntax'
Mots clés:
|
||||||||||||||||||||||||||||
Powered by MindTouch Deki Open Source Edition v.8.08 |