Ce travail pratique consistera au raffinement du petit éditeur Web pour du code JavaScript dont nous avons poursuivi le développement au TP01.
Organisation humaine | Équipes de deux personnes |
---|---|
Format de la remise | Imprimé. Je voudrai lire à la fois votre code HTML, votre code CSS et votre code JavaScript |
Date de remise | Au plus tard au début du cours du vendredi 2 mai 2014 (donc de T12) |
Notez que bien que vous ayez du temps pour livrer ce travail, nous entreprendrons le travail intégrateur en cours de route, alors vous aurez rapidement deux travaux pratiques à réaliser concurremment. Je vous invite donc à ne pas trop lésiner, ou encore à passer d'un travail à l'autre quand vous aurez envie de changement.
Je ne répèterai pas les consignes du TP01, qui tiennent encore pour ce travail-ci. Je vous propose en fait un « travail dont vous êtes le bourreau », au sens où vous choisirez, parmi un ensemble de caractéristiques proposées ci-dessous, les ajouts et ajustements que vous apporterez à votre éditeur pour en faire un outil plus convivial.
Certaines des « options » sont en fait des obligations, et sont indiquées comme telles. Les autres sont des véritables options, que vous pouvez implémenter si vous le souhaitez.
Dans la plupart des cas, vous devrez explorer un peu pour faire au moins une partie du travail.
Les options suivantes vous sont proposées :
De manière obligatoire, vous devez :
Il est entendu que le volet présentation de votre programme sera pris en charge par du CSS. Les modifications
À propos des sélections :
Entendu ici que la sélection faite avec les touches du clavier et la sélection faite avec la souris constitue une seule et même chose. Entendu aussi que le curseur, même s'il est dans la zone sélectionnée, ne fait pas partie de la sélection.
Ajouter le support des touches suivantes :
Si vous souhaitez implémenter d'autres touches et d'autres fonctionnalités, contactez-moi et on verra.
Permettre la sélection d'une zone de texte avec la souris pour qu'il soit possible de :
Si vous souhaitez implémenter d'autres fonctionnalités, contactez-moi et on verra.
Offrir une manière (menu, bouton, combinaison de touches, etc.) pour :
Si vous souhaitez implémenter d'autres fonctionnalités, contactez-moi et on verra.
De manière obligatoire, vous devez offrir une façon (menu, bouton, combinaison de touches, etc.) :
Un exemple fonctionnel pour la minification est disponible ici. Pour l'autre service, je vous laisse explorer. Notez que ce ne sont pas tous les outils pour JavaScript qui offrent des API sur le Web, alors prenez un peu de temps pour chercher quelque chose d'intéressant et de faisable.
Si vous manquez d'inspiration, voici quelques idées (je ne les ai pas toutes essayées, évidemment, et il est probable que certaines n'offrent pas d'API, mais tout de même).
Analyser votre code JavaScript pour en extraire la structure? http://esprima.org/demo/parse.html
Rendre votre code JavaScript plus joli? http://www.jspretty.com/
Obfusquer votre code JavaScript? http://www.jsobfuscate.com/
Autres outils de minification :
Convertir de JavaScript à CoffeeScript? http://js2coffee.org/
Publier des extraits sur Twitter ou sur Facebook? Demander de l'aide à vos amis? Quelques pistes possibles sur http://www.webdesignerdepot.com/2011/07/40-useful-apis-for-web-designers-and-developers/
Envoyer le code sur Dropbox automatiquement? Dropbox offre une API de dévreloppement sur : https://www.dropbox.com/developers/core/docs
Votre code est si bon que vous souhaitez permettre aux gens de payer pour l'utiliser? https://developer.paypal.com/docs/api/
Vous voulez diffuser votre oeuvre à tous vos amis? http://documentation.mailgun.com/api-mailinglists.html
Vous souhaitez montrer où votre programmeur (et ses amis?) codent? https://developers.google.com/maps/
Vous avez des idées plus ésotériques? Il existe des API de diverses natures (bases de données, commerce, sécurité, etc.) sur le Web, et des annuaires tels que http://www.programmableweb.com/apis/directory pour explorer
Pour l'évaluation, 50% des points ira à la qualité du code, et un autre 50% ira aux options implémentées. Il est attendu de chaque personne qu'elle implémente (et indique, en commentaire, qu'elle en est l'auteur) au moins cinq options. Chaque option aura une valeur (il me reste à les indiquer), plus petite pour les plus simples et plus grande pour les plus costaudes. Les « options » obligatoires auront aussi un poids.
Vous serez responsables d'indiquer clairement, lors de la remise, les options qui auront été implémentées, et qui les aura implémentées.
La note pour les options sera plafonnée à 50, même si vous implémentez plus d'options que nécessaire.
Pour tenir compte des groupes de trois personnes, la règle suivante sera appliquée : chacun des trois équipiers sera considéré comme ayant contribué un tiers du travail, et la note pour les options sera calculée comme suit : 2×p0+p1+p23 où p0,p1,p2 sont les trois équipiers.