Giter Site home page Giter Site logo

blogspec's People

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

blogspec's Issues

[US] En tant qu'Auteur, je souhaite pouvoir écrire un article

Un Auteur peut écrire des articles.

Cela signifie qu'un Auteur peut stocker en BDD des entités de ce format:

titre: string;
content: string;
created: Date;
updated: Date;
likes: Number;
disLikes: Number;
(picture: Buffer | File;)
author: User (Auteur ou Administrateur)

Related EPIC: #9

[US] En tant que développeur, je souhaite ajouter l'entité "Commentaire"

Cette feature permet de rajouter un modèle de données pour stocker les commentaires.

Les commentaires auront d'une manière générale la description suivante:

Commentaire {
    commentaireId: string;
    authorId: string; // Id de l'auteur du commentaire
    created: Date
    content: string;
    ... // à votre convenance
}

Related EPIC: #6

[US] En tant qu'Administrateur, je souhaite pouvoir changer le rôle d'un utilisateur

Un Administrateur doit pouvoir changer le rôle d'un autre utilisateur.

Il peut :

changer un auteur en blogger => les articles de l'auteur reste, il perd juste l'accès à l'édition de ceux-ci

changer un auteur en administrateur

changer un blogger en auteur

changer un blogger en administrateur

Il ne peut pas:

changer de droit un autre administrateur sauf si l'administrateur en question est lui-même

Related EPIC: #11

[US] En tant qu'utilisateur loggé, je veux partager des articles sur Twitter

Cette feature a pour objectif de fournir une url publique statique pour chaque article de manière à générer un bandeau de blog dans les fils d'actualité Twitter.

Il est ici question de génération d'html "clé en main" sur notre API REST car les clients web ne pourront pas être atteint par la génération de miniatures de Twitter.

Related EPIC: #14

[US] En tant qu'utilisateur, je souhaite m'inscrire

Cette feature a pour objectif de permettre l'inscription aux utilisateurs remplissant un formulaire d'inscription sur un client web.

Les données saisies par l'utilisateur sont les suivantes:

email: string;
password: string;
prénom: string;
nom de famille: string;
isAuthor: boolean;

Ces données doivent donc être sauvegardées dans un système de stockage et comportent une contrainte d'unicité sur le champ email (car nécessaire à l'authentification).

De plus le mot de passe devra être stocké en étant encrypté pour renforcer la sécurité de nos données.

Related EPIC: #2

[US] En tant qu'Auteur, je souhaite pouvoir répondre à un commentaire

Cette feature a pour but de permettre à un Auteur de répondre au commentaire qu'un autre utilisateur lui aura laissé au préalable.

La réponse du commentaire est à considérer comme étant un nouveau commentaire qui à un commentaire parent.

ex:

Comment { // Mon commentaire
    commentaireId: 'AZERTY',
    author: 'user',
    content: 'C\' est nul!',
}

Comment { // Ma réponse
    commentaireId: 'QSDFGH',
    parentId: 'AZERTY', // on sait que ce commentaire est un sous commentaire du commentaire 'AZERTY' donc une réponse
    author: 'author',
    content: 'Des arguments peut-être?',
}

Related EPIC: #10

[US] En tant qu'Administrateur, je veux récupérer la liste des utilisateurs

Afin de pouvoir sélectionner l'utilisateur à modifier, il est nécessaire que l'administrateur puisse avoir une vue d'ensemble de tous les utilisateurs.

Dans cette liste, on ne souhaite récupérer que certaines informations:

userId: string;
firstName: string;
lastName: string;
role: string;
(isProtected: boolean;) // à true lorsqu'il s'agit d'un administrateur

Related EPIC: #12

[US]: En tant qu'utilisateur loggé, je souhaite pouvoir ajouter des rubriques personnelles

Cette feature a pour but de permettre à tous les utilisateurs connectés de créer des rubriques de type A lire plus tard ou encore Politique.

Chaque utilisateurs possèdera ses propres rubriques qu'il ne pourra pas partager avec d'autres utilisateurs.

Une rubrique se définit de la manière suivante:

titre: string;
userId: string; // id de l'utilisateur qui l'a créée
articles: Article[] // liste des articles qui lui sont référencées

Related EPIC: #15

[US] En tant qu'Auteur, je souhaite réagir à un commentaire

Cette feature a pour but de permettre à un Auteur de réagir au commentaire qu'un autre utilisateur lui aura laissé au préalable.

La réaction est du type: "J'aime" || "J'aime pas".

ex:

Comment { // Mon commentaire
commentaireId: 'AZERTY',
author: 'user',
content: 'C' est super!',
likes: 1 // + 1,
dislikes: 0,
}

Related EPIC: #10

[US] En tant qu'utilisateur loggé, je veux partager des articles via Facebook

Cette feature a pour objectif de fournir une url publique statique pour chaque article de manière à générer un bandeau de blog dans les fils d'actualité Facebook.

Il est ici question de génération d'html "clé en main" sur notre API REST car les clients web ne pourront pas être atteint par la génération de miniatures de Facebook.

Related EPIC: #14

[US] En tant qu'utilisateur, je souhaite me connecter

Cette feature a pour but de permettre à tout utilisateur possédant un compte de s'authentifier.

Pour ce faire, celui-ci nous donnera son email et son mot de passe pour qu'on retrouve son compte et qu'on l'authentifie à l'aide d'un token d'identification (ex: bearerToken).

L'authentification permettra d'ouvrir à l'utilisateur certaines fonctionnalités réservées à des utilisateurs connectés.

Related EPIC: #2

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.