Travail 1 - IdĂ©e d'application đĄ
Objectifâ
Planifier votre application mobile avant de commencer à coder. Ce TP est un document remis en markdown (texte, captures d'écran de wireframes ou photos de dessins à la main).
Utilisation de l'IAâ
Dans ce TP, l'utilisation est possible dans les cas suivants:
- correction du langage / français. "Corrige les fautes de français / orthographe dans le fichier tp1.md"
- suggérer / corriger des conditions de satisfactions "Vérifie mes conditions de satisfaction pour RU 8"
Remiseâ
Séance 2.1
Description de l'applicationâ
â2 points DĂ©crivez votre application en quelques paragraphes.
- Quel est le but de l'application ?
- Ă qui s'adresse-t-elle ?
- Quelles sont les fonctionnalités principales ?
FonctionnalitĂ© avancĂ©eâ
â1 point Vous devez choisir et dĂ©crire une fonctionnalitĂ© avancĂ©e que vous devrez implanter d'ici la fin de la session, parmi les choix suivants:
- implantation de notifications mobiles : l'utilisateur peut recevoir des notifications mĂȘme quand l'application n'est pas lancĂ©e
- déploiement sur le PlayStore : l'application est téléchargeable et fonctionnelle sur le PlayStore Android (attention nécessite de payer)
- support multi-plateforme : l'application fonctionne sur Android mais aussi en web et sur Windows
- API externe : l'application utilise une API externe REST pour l'essentiel des données (ex. utiliser l'API de Spotify pour une application de listes de lecture)
- utilisation de l'IA : l'application utilise des fonctionnalités d'IA comme la génération de messages ou d'images
- autre : validez avec votre enseignant si vous avez une autre idée, par contre il faut comprendre que le soutien technique n'est pas garanti (votre enseignant ne sait pas tout faire)
Dessins en wireframeâ
â3 points Dessinez les Ă©crans principaux de l'application (Ă la main ou avec un outil comme Figma, Excalidraw, etc.).
- Minimum 4 écrans différents (connexion, accueil, détail d'un truc, création d'un truc, etc.)
- La navigation entre les Ă©crans doit ĂȘtre clairement indiquĂ©e (flĂšches, liens, annotations, etc.)
- Chaque écran doit indiquer des données éventuelles, prenez une feuille complÚte pour dessiner un écran et avoir de la place.
RĂ©cits utilisateursâ
â3 points RĂ©digez au moins 10 user stories sous la forme :
En tant que [rÎle], je veux [fonctionnalité] afin de [bénéfice].
- Les récits doivent couvrir les fonctionnalités décrites et les écrans dessinés.
- Vous devez obligatoirement avoir un RU qui permet la création d'un compte / profil avec une image attachée que l'utilisateur peut choisir depuis la galerie du téléphone.
- Les rĂšgles de contrĂŽle d'accĂšs (qui peut faire quoi) doivent ĂȘtre clairement indiquĂ©es dans les rĂ©cits.
- Si un récit fait partie du produit minimal viable (MVP), indiquez-le clairement.
QualitĂ© du document / françaisâ
â1 point Le document doit ĂȘtre clair, bien structurĂ© et sans fautes.
- Fautes d'orthographe ou de grammaire importantes
- Document désorganisé ou difficile à lire
Annexe : exemple de l'application des profs
Montpetit Ami
Montpetit Ami est une application qui aide une personne Ă entretenir ses relations en centralisant les informations sur ses amis, les rappels importants, les notes de suivi et des suggestions intelligentes pour reprendre contact au bon moment.
Descriptionâ
L'objectif de l'application est de réduire l'oubli et de faciliter le maintien des liens sociaux. L'utilisateur peut gérer ses contacts importants, consigner des nouvelles aprÚs une rencontre ou un échange, visualiser ce qui s'en vient pour chaque ami et recevoir de l'aide intelligente pour résumer l'information utile et préparer un message à envoyer.
ĂlĂ©ment avancĂ©â
Catégorie choisie : IA
La fonctionnalité avancée principale est l'utilisation de Gemini via l'écosystÚme Firebase pour analyser les notes associées à un ami et générer :
- un court résumé contextualisé de ce qui est important à retenir à son sujet;
- une proposition de message personnalisé que l'utilisateur peut ensuite partager avec le menu de partage du téléphone.
Cette composante ajoute une valeur concrÚte à l'application en transformant des notes brutes en information exploitable rapidement, ce qui aide l'utilisateur à reprendre contact de façon plus naturelle et pertinente.
Stack technologiqueâ
| Composante | Technologie | RĂŽle |
|---|---|---|
| Application cliente | Flutter / Dart | Développement d'une application unique pour Android et iOS |
| Authentification | Firebase Authentication | Connexion par courriel/mot de passe et par numéro de téléphone |
| Données applicatives | Firebase (écosystÚme) / base de données cloud | Stockage des profils d'amis, notes, rappels et liens entre utilisateurs |
| Intelligence artificielle | Gemini via Firebase | Résumé automatique et génération de message |
| Partage natif | Menu de partage du téléphone | Envoi rapide d'un message généré vers une autre application |
| Saisie vocale | Reconnaissance vocale mobile | Dictée des notes ajoutées à un ami |
RĂ©cits utilisateurâ
Les récits utilisateur ci-dessous sont triés avec le MVP en premier, puis en ordre de priorité de réalisation pour deux sprints.
RU-01 : CrĂ©ation de compte (OBLIGATOIRE)â
Sprint : 1 MVP : Oui Points : 5
Description : En tant qu'utilisateur, je veux me créer un compte avec un nom d'utilisateur et un mot de passe afin de commencer à utiliser l'application et sauvegarder mes informations.
Conditions de satisfaction :
- Le systÚme valide la complexité minimale du mot de passe pour prévenir la création de comptes vulnérables.
- Je peux attacher une photo de profil (OBLIGATOIRE) de la galerie du téléphone à mon profil.
- Deux utilisateurs ne peuvent pas possĂ©der le mĂȘme nom d'utilisateur ou courriel.
RU-02 : Connexion sĂ©curisĂ©eâ
Sprint : 1 MVP : Oui Points : 5
Description : En tant qu'utilisateur, je veux me connecter avec un identifiant/mot de passe ou un numéro de téléphone via Firebase Authentication afin d'accéder à mon espace personnel de façon sécuritaire.
Conditions de satisfaction :
- L'accÚs aux fonctionnalités et données de l'application est formellement bloqué tant que l'authentification n'est pas complétée avec succÚs.
- Le processus d'authentification utilise un protocole sécurisé (Firebase) sans exposer d'identifiants en clair dans les logs ou en mémoire de façon persistante.
RU-03 : CrĂ©ation d'une fiche amiâ
Sprint : 1 MVP : Oui Points : 8
Description : En tant qu'utilisateur, je veux créer une fiche ami avec son nom, sa date de naissance, la date de la derniÚre rencontre, la date du dernier contact et un niveau de proximité afin de suivre ma relation avec cette personne.
Conditions de satisfaction :
- Seul l'utilisateur propriétaire de la fiche a les droits d'affichage (lecture), de modification et de suppression sur celle-ci.
- L'accĂšs direct aux fiches par le biais de requĂȘtes rĂ©seau ou d'identifiants d'autres comptes est bloquĂ© par des rĂšgles de sĂ©curitĂ© (Firestore Security Rules).
- Le nom de l'ami est obligatoire, la date de naissance est optionnelle.
RU-04 : Ajout d'une note Ă un amiâ
Sprint : 1 MVP : Oui Points : 5
Description : En tant qu'utilisateur, je veux ajouter une note ou une publication à la fiche d'un ami aprÚs l'avoir vu ou aprÚs avoir reçu de ses nouvelles afin de conserver un historique de mes interactions.
Conditions de satisfaction :
- Une note ne peut ĂȘtre ajoutĂ©e qu'Ă une fiche ami valide dont l'utilisateur connectĂ© est le propriĂ©taire exclusif.
- La note est non vide et inférieure à 2000 caractÚres.
RU-05 : Tableau de bord (RĂ©sumĂ© de l'accueil)â
Sprint : 1 MVP : Oui Points : 8
Description : En tant qu'utilisateur, je veux voir à l'arrivée sur l'application un résumé de ce qui s'en vient pour mes amis, comme un anniversaire ou un élément important mentionné dans mes notes, afin de savoir rapidement sur qui agir en priorité.
Conditions de satisfaction :
- Le tableau de bord extrait et affiche uniquement les événements associés aux amis créés par l'utilisateur connecté.
- Aucune fuite d'informations (anniversaires, notes privĂ©es d'autrui) ne doit ĂȘtre possible via l'affichage global ou la mise en cache.
RU-06 : DĂ©connexion sĂ©curisĂ©eâ
Sprint : 1 MVP : Oui Points : 2
Description : En tant qu'utilisateur, je veux me déconnecter afin de protéger l'accÚs à mon compte lorsque j'ai terminé.
Conditions de satisfaction :
- La déconnexion invalide immédiatement le jeton de session (session token) auprÚs de Firebase, bloquant tout accÚs subséquent.
- Toutes les données locales sensibles de l'utilisateur stockées en cache ou en état applicatif sont purgées de l'appareil.
- L'application redirige l'utilisateur vers l'écran d'authentification et lui refuse le retour arriÚre vers l'application sans reconnexion.
RU-07 : Saisie vocale des notesâ
Sprint : 2 MVP : Non Points : 5
Description : En tant qu'utilisateur, je veux dicter une note pour un ami afin d'ajouter de l'information plus rapidement sans avoir Ă tout taper au clavier.
Conditions de satisfaction :
- L'application demande explicitement la permission d'accĂšs au microphone au systĂšme d'exploitation de l'appareil uniquement au moment requis.
- Les critĂšres sont les mĂȘmes que pour un ajout de note en tapant
RU-08 : Liaison de fiches amisâ
Sprint : 2 MVP : Non Points : 8
Description : En tant qu'utilisateur, je veux pouvoir lier la fiche d'un ami à un autre compte de l'application afin de mieux représenter les relations entre utilisateurs réels dans le systÚme.
Conditions de satisfaction :
- Le lien ne peut ĂȘtre Ă©tabli que vers un compte utilisateur existant et requiert son consentement ou le respect d'une politique de visibilitĂ© stricte.
- Cette liaison ne doit en aucun cas donner accÚs aux notes ou informations privées de la fiche d'un utilisateur à l'autre sans autorisation d'accÚs explicite.
- L'association peut ĂȘtre rĂ©voquĂ©e Ă tout moment par l'un des deux comptes, coupant immĂ©diatement l'accĂšs aux donnĂ©es partagĂ©es ou liĂ©es.
RU-09 : RĂ©sumĂ© IA des notesâ
Sprint : 2 MVP : Non Points : 5
Description : En tant qu'utilisateur, je veux voir sur la page d'un ami un court résumé généré par l'IA à partir de mes notes afin de comprendre rapidement les informations importantes qui le concernent.
Conditions de satisfaction :
- Si il y a trop de notes pour le contexte IA, les notes les plus récentes sont utilisées.
- Seules les notes dont l'utilisateur est le propriĂ©taire lĂ©gitime peuvent ĂȘtre transmises pour la gĂ©nĂ©ration de rĂ©sumĂ©s.
- Le résultat de l'IA n'est pas stocké en DB, juste affiché dans l'interface
RU-10 : GĂ©nĂ©ration et partage de message IAâ
Sprint : 2 MVP : Non Points : 5
Description : En tant qu'utilisateur, je veux générer automatiquement avec l'IA un message personnalisé à envoyer à un ami afin de reprendre contact plus facilement, puis le partager avec le menu de partage du téléphone.
Conditions de satisfaction :
- Seul l'utilisateur propriétaire de la fiche de l'ami peut solliciter la génération d'un message et y accéder.
- L'accÚs à la fonctionnalité de génération de message est soumis à un contrÎle de quota d'utilisation (rate limiting) pour éviter tout abus de ressources de l'IA.
- Le partage via l'API native n'expose que le message texte final sans aucune métadonnée ou clé d'accÚs sensible de l'utilisateur ou du systÚme.