Travail 3 - Sans serveur - Firebase
Le but de ce travail est de reproduire le fonctionnement du TP2 tout en remplaçant le serveur Spring Boot par firebase.
Repository Git (Ces points sont conditionnés à la remise d'au moins un commit toutes les 2 séances de cours.)
2 points Un minimum de 5 commits de tailles comparables. Au moins un commit par semaine de cours. De plus, il n'y a pas un commit avec tout dedans et les autres vides. Les commits décrivent l'avancement du projet dans un français correct (passe Word). Ces points sont conditionnés à la remise d'au moins un commit par semaine de cours.
Authentification
Le projet doit utiliser l'authentification de Firebase et avoir 2 fournisseurs de compte, soit Google et Utilisateur/Mot de passe. Plus précisément, il faut:
- À l'écran d'inscription, l'utilisateur doit avoir l'option d'utiliser un compte Google
- 2 point Garder les pages de connexion et d'inscription pour la connexion avec Utilisateur/Mot de passe.
- 2 point Dans l'écran de connexion, ajouter un bouton "Connexion avec Google" qui déclenchera le dialogue de connexion Google et effectuera la connexion.
- 1 point Le tiroir affiche le courriel de l'utilisateur connecté
- 1 point Le tiroir permet de se déconnecter
Données
Le projet doit utiliser Cloud Firestore pour le stockage des données de l'application. En détail:
- Vous devez stocker les tâches de l'utilisateur connecté incluant le nom, la date de création, la date de fin, le pourcentage d'avancement.
- 2 points A la création d'une tâche, vous devez valider que le nom "trimmé" n'est pas vide. Vous devez aussi valider qu'il n'y a pas déjà une tâche pour cet utilisateur avec le même nom. Vous devez également valider que la date entrée est dans le futur.
- 1 point En cas d'erreur à la création, vous devez afficher un message d'erreur significatif.
- 1 point La liste d'accueil affiche les mêmes informations qu'au TP2. Vous devez donc calculer le pourcentage du temps écoulé.
- 1 point L'écran de détail affiche tous les éléments nécessaires et permet de modifier le pourcentage de complétion de la tâche.
- 1 point Permettre la suppression d'une tâche, soit par "soft delete" ou "hard delete".
Image
Le projet doit utiliser Cloud Storage pour stocker les images des tâches. Plus précisément, il faut:
- 1 point A l'ajout d'une image, vous devez l'ajouter au Storage puis ajouter dans la tâche une référence (id ou url) au niveau Firestore
- 1 point L'image est affichée correctement que ce soit dans le détail ou dans la liste des tâches.
Fonctionnement global
5 points négatifs Votre application doit fonctionner sans plantage et correctement. Ce pointage fonctionne en négatif. Si l'application fonctionne correctement en tout temps, vous conservez votre note. Dans le cas contraire, vous perdez des points avec un maximum de 5.
- plantage de l'application -1 point
- interface illisible -1 point
- information affichée incohérente -1 point
- autre cas ...
- 1 point Firestore doit avoir des règles d'accès pour que seul un utilisateur connecté ait accès aux données et qu'une donnée soit accessible et modifiable seulement par l'utilisateur qui en est propriétaire.