Git Product home page Git Product logo

loggia's People

Contributors

mrkloan avatar

Watchers

 avatar  avatar

loggia's Issues

En tant qu'Administrateur, je souhaite inscrire un nouveau Membre

En tant que Membre Administrateur, je souhaite pouvoir inscrire un nouveau Membre à partir des informations suivantes :

  • Prénom (chaîne normalisée) ;
  • Nom (chaîne normalisée) ;
  • Adresse e-mail (validation du format) ;
  • Degré d'accès (valeur numérique entière arbitraire) ;
  • Un ou plusieurs rôles optionnels (Administrateur, Archiviste).

Une fois ces informations saisies par l'Administrateur, un e-mail est envoyé à l'adresse du nouveau Membre. Cet e-mail contient un lien vers une page lui permettant de définir un mot de passe pour son compte. Ce lien est accessible durant 48h.

En tant qu'Administrateur, je souhaite visualiser la liste des Membres

En tant qu'Administrateur, je souhaite avoir accès à un tableau listant l'intégralité des Membres et des informations de leur compte à l'exception du hash de leur mot de passe.

Si aucun mot de passe n'est défini pour un compte, une icône et un message d'avertissement doivent être affichés à côté du nom du Membre : "Ce membre n'a pas défini de mot de passe.".

Mise en place de la tuyauterie JWT

Une première implémentation de JWT a été mise en place aux prémices du projet. Il faudrait la revoir et assurer la couverture de cette fonctionnalité.

En tant qu'Archiviste, je souhaite supprimer un Document publié

En tant qu'Archiviste, je souhaite pouvoir supprimer un Document publié.

Le fichier PDF lié au Document doit être supprimé du répertoire sur le serveur. Un message d'avertissement devra être affiché dans la fenêtre de confirmation : "En supprimant ce document, il sera irrémédiablement perdu. Souhaitez-vous vraiment continuer ?".

Une confirmation sera demandée à l'Archiviste : "Veuillez saisir le titre du document pour confirmer sa suppression.". Il devra alors re-saisir le Titre du Document pour confirmer sa suppression.

En tant qu'Archiviste, je souhaite modifier un Document publié

En tant qu'Archiviste, je souhaite pouvoir modifier toutes les informations d'un Document publié en suivant les même modalités que lors de la publication.

En cas de modification du fichier PDF, le nouveau fichier viendra écraser l'ancien dans le répertoire sur le serveur.

En tant que Membre, je souhaite pouvoir me connecter

En tant que Membre, je souhaite pouvoir me connecter avec les informations suivantes :

  • Adresse e-mail ;
  • Mot de passe.

Si ces informations correspondent au compte d'un Membre inscrit, un token JWT est généré pour ce Membre.

En cas d'échecs de connexion répétés de la part d'une même adresse IP, toutes les tentatives de connexion en provenance de adresse IP doivent être bloquées pour les 3 prochaines heures.

Lors de sa déconnexion, le token JWT du Membre est détruit.

En tant que Membre, je souhaite modifier mon mot de passe

En tant que Membre non connecté, je souhaite pouvoir cliquer sur un lien "Mot de passe oublié" sur le formulaire de connexion. Si l'adresse e-mail spécifiée correspond bien au compte d'un Membre, un e-mail lui est envoyé. Cet e-mail contient un lien vers une page lui permettant de définir un mot de passe pour son compte (voir #1).

En tant que Membre connecté, je souhaite pouvoir cliquer sur un lien "Modifier mon mot de passe" depuis le menu du site. Un e-mail est envoyé à l'adresse liée à mon compte. Cet e-mail contient un lien vers une page me permettant de définir un mot de passe pour mon compte (voir #1).

En tant qu'Archiviste, je souhaite publier un nouveau Document

En tant qu'Archiviste, je souhaite pouvoir publier un nouveau Document à partir des informations suivantes :

  • Titre (chaîne normalisée) ;
  • Auteur (chaîne normalisée) ;
  • Une liste de Mots clés (chaînes normalisées) ;
  • Degré d'accès (valeur numérique entière arbitraire) ;
  • Date de publication (par défaut la date du jour, pouvant être modifié) ;
  • Un fichier au format PDF uniquement.

Pour le champ Auteur, il doit être possible de sélectionner l'un des Membres inscrits dans une liste déroulante triée par ordre alphabétique des noms de famille. Dans ce cas, le Prénom et le Nom du Membre seront utilisés pour valoriser le champ Auteur du Document.

Un Identifiant aléatoire sera généré pour le Document.

Le fichier PDF sera enregistré dans un répertoire sur le serveur et renommé en utilisant son Identifiant aléatoire et l'extension .pdf.

En tant qu'Administrateur, je souhaite supprimer le compte d'un Membre

En tant qu'Administrateur, je souhaite pouvoir supprimer complètement le compte d'un Membre. Une confirmation doit être demandée à l'Administrateur avant la suppression effective du compte. Aucune information ne doit persister suite à la suppression. Un Administrateur ne doit pas pouvoir supprimer son propre compte.

En tant que Membre, je souhaite rechercher un Document

En tant que Membre, je souhaite pouvoir rechercher un Document depuis la page d'accueil du site.

Un champ de saisie unique permettra de saisir des mots-clés utilisés pour la recherche. Les mots-clés seront séparés par des espaces. Un Document est éligible s'il respecte les critères suivants :

  • Le Degré d'accès du Membre est supérieur ou égal au Degré d'accès du Document ;

ET

  • Soit l'Auteur du Document possède l'un des mots-clés de la recherche ;
  • Soit le Titre du Document possède l'un des mots-clés de la recherche ;
  • Soit l'un des Mots-clés du Document correspond à l'un des mots-clés de la recherche.

L'intégralité des Documents correspondant aux critères de recherche du Membre seront affichés sous forme de liste, avec toutes les informations du Document : Titre, Auteur, Mots-clés, Date de publication.

Un bouton de téléchargement ouvrira dans un nouvel onglet le lien de téléchargement du fichier PDF. L'accès à ce lien ne doit être permis qu'à un Membre connecté dont le Degré d'accès est supérieur ou égal au Degré d'accès du Document concerné. Le nom du fichier téléchargé respectera le pattern suivant : {Auteur} - {Titre} ({Date de publication}).pdf.

Un bouton de partage permettra de copier le lien de téléchargement du fichier PDF dans le presse-papier.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.