126 lines
4.9 KiB
Plaintext
126 lines
4.9 KiB
Plaintext
|
********************
|
||
|
Besoins utilisateurs
|
||
|
********************
|
||
|
|
||
|
Nous souhaitons développer un site où un utilisateur donné peut créer une liste contenant des souhaits et où d'autres utilisateurs, authentifiés ou non, peuvent choisir les souhaits à la réalisation desquels ils souhaitent participer.
|
||
|
|
||
|
Il sera nécessaire de s'authentifier pour :
|
||
|
|
||
|
* Créer une liste associée à l'utilisateur en cours
|
||
|
* Ajouter un nouvel élément à une liste
|
||
|
|
||
|
Il ne sera pas nécessaire de s'authentifier pour :
|
||
|
|
||
|
* Faire une promesse d'offre pour un élément appartenant à une liste, associée à un utilisateur.
|
||
|
|
||
|
L'utilisateur ayant créé une liste pourra envoyer un email directement depuis le site aux personnes avec qui il souhaite partager sa liste, cet email contenant un lien permettant d'accéder à cette liste.
|
||
|
|
||
|
A chaque souhait, on pourrait de manière facultative ajouter un prix. Dans ce cas, le souhait pourrait aussi être subdivisé en plusieurs parties, de manière à ce que plusieurs personnes puissent participer à sa réalisation.
|
||
|
|
||
|
Un souhait pourrait aussi être réalisé plusieurs fois. Ceci revient à dupliquer le souhait en question.
|
||
|
|
||
|
********************
|
||
|
Besoins fonctionnels
|
||
|
********************
|
||
|
|
||
|
Gestion des utilisateurs
|
||
|
========================
|
||
|
|
||
|
Pour gérer les utilisateurs, nous allons faire en sorte de surcharger ce que Django propose: par défaut, on a une la possibilité de gérer des utilisateurs (identifiés par une adresse email, un nom, un prénom, ...) mais sans plus.
|
||
|
|
||
|
Ce qu'on peut souhaiter, c'est que l'utilisateur puisse s'authentifier grâce à une plateforme connue (Facebook, Twitter, Google, etc.), et qu'il puisse un minimum gérer son profil.
|
||
|
|
||
|
Gestion des listes
|
||
|
==================
|
||
|
|
||
|
Modèlisation
|
||
|
------------
|
||
|
|
||
|
Les données suivantes doivent être associées à une liste:
|
||
|
|
||
|
* un identifiant
|
||
|
* un identifiant externe (un GUID, par exemple)
|
||
|
* un nom
|
||
|
* une description
|
||
|
* le propriétaire, associé à l'utilisateur qui l'aura créée
|
||
|
* une date de création
|
||
|
* une date de modification
|
||
|
|
||
|
Fonctionnalités
|
||
|
---------------
|
||
|
|
||
|
* Un utilisateur authentifié doit pouvoir créer, modifier, désactiver et supprimer une liste dont il est le propriétaire
|
||
|
* Un utilisateur doit pouvoir associer ou retirer des souhaits à une liste dont il est le propriétaire
|
||
|
* Il faut pouvoir accéder à une liste, avec un utilisateur authentifier ou non, *via* son identifiant externe
|
||
|
* Il faut pouvoir envoyer un email avec le lien vers la liste, contenant son identifiant externe
|
||
|
* L'utilisateur doit pouvoir voir toutes les listes qui lui appartiennent
|
||
|
|
||
|
Gestion des souhaits
|
||
|
====================
|
||
|
|
||
|
Modélisation
|
||
|
------------
|
||
|
|
||
|
Les données suivantes peuvent être associées à un souhait:
|
||
|
|
||
|
* un identifiant
|
||
|
* identifiant de la liste
|
||
|
* un nom
|
||
|
* une description
|
||
|
* le propriétaire
|
||
|
* une date de création
|
||
|
* une date de modification
|
||
|
* une image, afin de représenter l'objet ou l'idée
|
||
|
* un nombre (1 par défaut)
|
||
|
* un prix facultatif
|
||
|
* un nombre de part, facultatif également, si un prix est fourni.
|
||
|
|
||
|
Fonctionnalités
|
||
|
---------------
|
||
|
|
||
|
* Un utilisateur authentifié doit pouvoir créer, modifier, désactiver et supprimer un souhait dont il est le propriétaire.
|
||
|
* On ne peut créer un souhait sans liste associée
|
||
|
* Il faut pouvoir fractionner un souhait uniquement si un prix est donné.
|
||
|
* Il faut pouvoir accéder à un souhait, avec un utilisateur authentifié ou non.
|
||
|
* Il faut pouvoir réaliser un souhait ou une partie seulement, avec un utilisateur authentifié ou non.
|
||
|
* Un souhait en cours de réalisation et composé de différentes parts ne peut plus être modifié.
|
||
|
* Un souhait en cours de réalisation ou réalisé ne peut plus être supprimé.
|
||
|
* On peut modifier le nombre de fois qu'un souhait doit être réalisé dans la limite des réalisations déjà effectuées.
|
||
|
|
||
|
Gestion des réalisations de souhaits
|
||
|
====================================
|
||
|
|
||
|
Modélisation
|
||
|
------------
|
||
|
|
||
|
Les données suivantes peuvent être associées à une réalisation de souhait:
|
||
|
|
||
|
* identifiant du souhait
|
||
|
* identifiant de l'utilisateur si connu
|
||
|
* identifiant de la personne si utilisateur non connu
|
||
|
* un commentaire
|
||
|
* une date de réalisation
|
||
|
|
||
|
Fonctionnalités
|
||
|
---------------
|
||
|
|
||
|
* L'utilisateur doit pouvoir voir si un souhait est réalisé, en partie ou non. Il doit également avoir un pourcentage de complétion sur la possibilité de réalisation de son souhait, entre 0% et 100%.
|
||
|
* L'utilisateur doit pouvoir voir la ou les personnes ayant réalisé un souhait.
|
||
|
* Il y a autant de réalisation que de parts de souhait réalisées ou de nombre de fois que le souhait est réalisé.
|
||
|
|
||
|
Gestion des personnes réalisants les souhaits et qui ne sont pas connues
|
||
|
========================================================================
|
||
|
|
||
|
Modélisation
|
||
|
------------
|
||
|
|
||
|
Les données suivantes peuvent être associées à une personne réalisant un souhait:
|
||
|
|
||
|
* un identifiant
|
||
|
* un nom
|
||
|
* une adresse email facultative
|
||
|
|
||
|
Fonctionnalités
|
||
|
---------------
|
||
|
|