Informations complètes du projet de programmation web
Questions :
- email à Cyrille + Alexandre + Julien, ou #projetweb sur Slack
- ouvrir une issue
Évaluer les capacités à développer une application web avec toutes les technologies front et back (client et serveur) qui ont été vues en cours.
Créer une app de type TODO List avec une gestion de tâches et des utilisteurs.
Donnée à titre d'exemple et pour inspiration seulement. Vous pouvez faire quelque chose de très ressemblant ou très éloigné.
- Pré-requis technique
- Le client doit être une app JS frontend qui tourne dans le navigateur
- Le client doit être fonctionnel sur les principaux navigateurs récents du marché (Firefox, Chrome, Edge)
- Fonctionnalités minimales
- Créer un compte utilisateur (email, nom d'utilisateur, mot de passe, date de naissance, photo)
- Envoyer un email lors de la création du compte
- Connexion et déconnexion à l'app
- Modifier son profil
- Créer, modifier et supprimer des listes
- Créer, modifier et supprimer des tâches
- Changer le statut d'une tâche (todo / completée)
- Fonctionnalités bonus
- Créer et supprimer des sous-tâches
- Définir la progression (%) d'une tâche principale en fonction de ses sous-tâches
- Inviter des utilisateurs à collaborer sur une liste
- Créer un serveur d'API avec toutes les routes et fonctionnalités qu'il est nécessaire d'exposer
- Permettre l'authentification des clients
- Utiliser au minimum Node et PostgreSQL
Bonus
- Authentification par token (Oauth 2, auth0, JWT)
- HTTPS avec Cloudflare
- Pour le développement, vous pouvez utiliser n'importe quelles solutions techniques (en tenant compte des pré-requis ci-dessus). Le choix et la justification des outils utilisés seront cependant pris en compte 👀
- Gestion des sources : Git (cf. section livrables)
- Pertinence des choix techniques
- Attention particulière portée à la qualité du code : HTML, CSS, JS
- Développement de composants d'interface réutilisables
- Sécurité des données, de l'application et de l'authentification
- Documentation
- Utilisation de git : organisation du repository et des branches, utilisations de PR/MR, fréquence et cohérence des commits
- Répartition du travail dans l'équipe
- Clarté et qualité de la présentation du projet (générale, fonctionnelle et technique)
- Projet à envoyer par email au plus tard le 1er mai 2018 à 23h59.
- Le projet doit être hébergé sur un repository privé en ligne, comme GitLab ou Bitbucket (gratuits tous les 2). Il est également possible d'utiliser GitHub gratuitement avec le student developer pack
- Invitez les 3 enseignants comme reporters ou contributeurs de votre projet
- Pensez à inclure au minimum un
README.md
pour expliquer comment est organisé le projet et les étapes basiques permettant de le faire fonctionner - Soutenance (3 mai 2018 à partir de 9h) :
- Présentation du projet, des choix techniques et de son déroulement (5 minutes)
- Démo du résultat (15 minutes)
- Questions/réponses (5-10 minutes)
- Qualité de l'UI (interfaces) et de l'UX (ergonomie)
- Faire une démo avec les clients et le serveur sur 2 machines différentes
- Tests unitaires
- Déploiement en ligne : Now, Heroku, DigitalOcean
- Mise en place de la stack Webpack/Babel/ESLint (même partiellement)
- Utilisation d'un framework ou d'une librairie front-end