Semaine 9 : back to javascript - SimplonSt-Gaudens/programme-web-dev-promo-2 GitHub Wiki
- Retour sur javascript mais aussi HTML/CSS
- Voir les formulaires
- Le retour d'Ajax
####Création d'un "template" / boilerplate de dossier pour nouveau projet web####
L'idée est de mettre en pratique le principe du DRY. Il est nécessaire d'essayer de repenser et d'améliorer continuellement ses méthodes, outils, organisation... ( sans non plus y passer tout son temps... :) )
Le développement d'un projet web comporte un certain nombre de tâches répétitives. Il existe de nombreux outils, gratuits et opensource (ou pas) qui peuvent nous aider à gagner du temps. Toutefois, même si l'intégration dans son workflow, d'outils standards/référence, "prêt à l'emploi", est progressivement nécessaire, il peut être utile d'apprendre à se créer ses propres "outils".
-
création d'un dossier avec fichiers de base:
- style-base.css : définition des régles de styles systèmatiques cf [CSSReset]
- scripts-base.js : avec des fonctions raccourcies ou utilitaires "à la jQuery" ( ex : des fonctions byId(), byTag()... )
- index.html intégrant les fichiers css et js
-
initialisation git du dossier, et dépôt sur github
-
pour utiliser le template :
- cloner le projet depuis github
git clone http://github.com/VOUS/PROJET.git
- supprimez le .git
rm -rf dossier_template/.git
- renommez le dossier chargé
mv dossier_template/ nouveauProjet/
- initialisez git dans le nouveau dossier
cd nouveauProjet/ ; git init
- cloner le projet depuis github
L'utilisation de ce template pourra être simplifiée en créant par exemple un alias pour lancer toutes ces instructions en une commande. Cela constitue également un petit préambule à l'utilisation des outils d'automatisation front-end modernes ( NPM, Webpack, Grunt, Gulp, ... ).
On va trouver plein de types de champs :
- range
- color
- hidden
- time
- datetime
- number
- search
- tel
- url
- Créez un formulaire d'inscription. Dans celui-ci l'utilisateur est invité à saisir : nom, prénom, login (ne doit pas déjà être utilisé), sexe (bouton radio), mot de passe (au moins huit caractères dont au moins une majuscule, un caractère spécial et un chiffre), date de naissance, ville, mail (valide), url de son site (valide), ses hobbys (max 200 caractères), son numéro de téléphone (XX.XX.XX.XX.XX) ainsi que sa couleur préférée.
- Bonus : implémenter l'autocomplétion pour la ville.
- Bonus 2: pas besoin de soumettre le formulaire pour contrôler les champs.
- Stocker les données récupérées. Ce peut être l'occasion de jeter un oeil au localStorage introduit par HTML5.
- Créez un formulaire de connexion. L'utilisation saisit un login et un mdp. Si les deux correspondent, on l'autorise à se connecter et on l'accueille avec un message du type : "Bienvenue <prénom> ".
- Créez une fonction diffBig2() telle que : diffBig2([10, 5, 2]) = 10-5 = 5
- La fonction, en partant d'une liste de nombres, renvoie la différence entre les deux plus grands.
- Faites-le sans utiliser sort().
- Retour au blog : développez un mini-moteur de blog permettant de créer et de modifier des articles. La liste des billets et de leurs liens doit être stockées dans un fichier JSON.
- Implémentez les pages d'inscription et de connexion développées lundi. N'importe qui peut lire les billets mais seul un utilisateur connecté peut créer un nouveau billet.
*
Ecrivez une fonction (mastermind). L'utilisateur va devoir deviner une chaîne de trois lettres générée aléatoirement. Chacune de ces lettres est A, B, C, D ou E. L'utilisateur a droit à trois tentatives. A chaque tentative, on lui renvoie soit :
- ok (l'utilisateur a bien deviné).
- ko avec le détail pour chaque lettres (Non si la lettre n'est pas dans la chaîne à trouver, presque si elle y est mais pas à l'emplacement indiqué, oui si la lettre indiquée est la bonne).
Exemple L'utilisateur doit deviner la chaîne ABD.
- Premier essai : EAD renvoie [Non, presque, oui]
- Deuxième essai : ACD renvoie [oui, non, oui]
- Troisième essai : AAD renvoie [oui, presque, oui] et "perdu" (trois tentatives effectuées). Si l'utilisateur avait saisi ABD, il aurait eu comme message "gagné!".
- Gena : les salons de l'emploi en Haute-Garonne
- Carole : backbone.js
https://www.gitbook.com/book/frontendmasters/front-end-handbook-2017/details
- http://frontendbabel.info/articles/webpage-rendering-101/
- http://www.20thingsilearned.com/en-US/home
- https://egghead.io/
- https://www.codeschool.com/
- https://www.eventedmind.com/
- https://frontendmasters.com/
- https://www.khanacademy.org/computing/computer-programming
- https://laracasts.com/
- https://teamtreehouse.com/
- https://tutsplus.com/courses
- https://www.springboard.com/learning-paths/beginners-guide-front-end-programming/
- https://medium.com/@giorgialupi/data-humanism-the-revolution-will-be-visualized-31486a30dbfb#.yzz8mfbz9
- https://blog.prototypr.io/an-abridged-history-of-ui-7a1d6ce4a324#.r4ja35lwb
- https://medium.com/pixelpoint/handoffs-guide-for-pixel-perfect-design-part-i-8bbd95d8ffcd#.ii2rcem09
- https://cmd-t.webydo.com/from-simple-to-unusual-a-look-at-navigation-in-web-design-1057d0baef7b#.n1ss5t9wj
- http://davidshariff.com/quiz/
- http://davidshariff.com/js-quiz/
- https://medium.freecodecamp.com/we-asked-15-000-people-who-they-are-and-how-theyre-learning-to-code-4104e29b2781#.afomqf2ir
- https://www.superhi.com/blog/how-to-start-a-startup-without-ruining-your-life
- http://learn.jquery.com/performance/optimize-selectors/
- https://howdns.works/ep1/
- https://openweb.eu.org/articles/le-fichier-htaccess
- http://www.webhostingsecretrevealed.net/web-hosting-beginner-guide/
- http://www.whoishostingthis.com/resources/web-hosting/
- https://gluedocs.readthedocs.io/en/latest/
- https://www.smashingmagazine.com/2017/02/designing-html-apis
- https://csswizardry.com/2017/02/code-smells-in-css-revisited
- https://www.news47ell.com/articles/use-svg-css-instead-text-decoration-underline/
- https://webkit.org/blog/7380/next-generation-3d-graphics-on-the-web
- http://lea.verou.me/2017/02/duoload-simplest-website-load-comparison-tool-ever
- https://css-tricks.com/really-makes-static-site-generator
- https://www.sitepoint.com/css-pseudo-classes-styling-form-fields-based-on-their-input
- https://hackernoon.com/appointment-web-forms-159caa276dcc#.6v202ukvp
- http://exploringjs.com/
- https://uxcellence.com/library
- http://jsbooks.revolunet.com/