/API_DokiHouse

API de gestion de bonsaï, suivis, notification, partage

Primary LanguageC#

📄 DokiHouse - Guide de Démarrage Rapide

Bienvenue dans le guide de démarrage rapide de l'API DokiHouse.
Ce guide vous aidera à comprendre et à utiliser les fonctionnalités offertes par DokiHouse.


Sommaire



Mockup



Contrainte des différentes tables


Relations




L'API DokiHouse offre un ensemble de fonctionnalités pour créer un réseau autour de la passion des Bonsaïs et de la gestion d'un blog. Elle permet de gérer des profils d'utilisateurs, d'ajouter et de suivre des Bonsaïs, de recevoir des notifications, de créer des posts et de commenter.



L'API DokiHouse vise à mettre en relation les utilisateurs partageant une même passion pour les Bonsaïs. Les principales fonctionnalités incluent la possibilité de créer un profil personnel, de gérer des Bonsaïs avec des fonctionnalités telles que l'ajout et le suivi, de recevoir des notifications pertinentes, de créer des posts et de commenter.




🔖 Comment utiliser ce guide


IMPORTANT: 👀

L'API n'est pas en ligne, il vous faudra donc télécharger le projet depuis :
➡️ GitHub.

Ensuite, il vous suffira de démarrer le projet dans un IDE, je vous conseille :
➡️ Visual Studio.

Enfin, il vous faudra publier la base de données, il y a une vidéo explicative de moins de 1 min en bas de cette page.



L'API DokiHouse utilise une authentification par Bearer token, directement gérée via l'API au moment de la connexion.



publish_DB.mp4

Si dessous un lien direct vers une documentation générer avec Postman.

➡️ Doc_Postman




Si vous avez des questions, vous pouvez me contacter via :
➡️ LinkedIn.


Mockup


{
  "name": "jhon",
  "email": "jhon@example.com",
  "passwd": "Test1234*",
  "passwdConfirm": "Test1234*"
}

Le name ne peut contenir plus de 50 caractères et ne peut pas être null.
Le passwd doit contenir 8 caractère minimum, une majuscule, une minuscule, un caractère spécial et un chiffre et ne peut pas être null.
L'adresse mail ne peut pas être déjà éxistante en base de donnée (UNIQUE) et ne peut pas être null.
Le passwdConfirm doit être exactement identique à passwd et ne peut pas être null.


{
  "name": "bonzi",
  "description": "Super description"
}

Le name est de maximum 50 caratères et ne peut pas être null.
Le description peut être null.
Le Bonsai ne peut être créer que si un Utilisateur est enregistrer en base de données.


{
  "shohin": false,
  "mame": true,
  "chokkan": false,
  "moyogi": false,
  "shakan": false,
  "kengai": true,
  "hanKengai": true,
  "ikadabuki": true,
  "neagari": false,
  "literati": false,
  "yoseUe": false,
  "ishitsuki": false,
  "kabudachi": false,
  "kokufu": false,
  "yamadori": false,
  "perso": "ninja"
}

Contrainte catégorie

Le champ perso ne peut pas contenir plus de 150 caractères et peut être null. Une catégorie est directement lié un a Bonsaï donc impossible de créer une catégorie sans avoir de Bonsaï préalablement créer.


{
  "bunjin": true,
  "bankan": false,
  "korabuki": false,
  "ishituki": true,
  "perso": "cool"
}

Contrainte Style

Le champ perso ne peut pas contenir plus de 150 caractères et peut être null. Un style est directement lié un a Bonsaï donc impossible de créer un style sans avoir de Bonsaï préalablement créer.


{
  "title": "Important",
  "description": "blabla description"
}

Contrainte Note

Le champ title ne peut pas contenir plus de 100 caractères et ne peut pas être null. Une note est directement lié un a Bonsaï donc impossible de créer une note sans avoir de Bonsaï préalablement créer.


N'accepte que les formats suivant : ".jpg", ".jpeg", ".png"
Les images sont directement sauvegardées sur le serveur.
Les utilisateurs ont un dossier unique pour chacun d'entre eux avec leurs différentes images stocker aussi sous un nom unique.


Les images de profil d'un utilisateur sont générées automatiquement à l'inscription de celui-ci via le front, via le service de DICEBEAR pour en savoir en plus à leur sujet voici leur site officiel :
➡️ https://www.dicebear.com
Je ne stocke que l'url qui fait référence à l'image produite via l'API de DiceBear.


{
  "title": "La main verte",
  "description": "Super longue description",
  "content": "Et un contenu encore plus long"
}

Contrainte Post

Le champ title ne peut pas contenir plus de 50 caractères et ne peut pas être null. Le champ description ne peut pas contenir plus de 200 caractères et ne peut pas être null.


{
  "content": "J'adore ton post 🥰"
}

Contrainte Comments

Le content ne peut pas être null. Un commentaire cible un post donc le commentaire ne peut exister si il n'est pas lié à un post.



User Bonsai et ses détails

{
    "id": 1,
    "name": "jhon",
    "createAt": "2024-01-24T22:44:15.957",
    "modifiedAt": null,
    "pictureProfil": null,
    "bonsaiDetails": [
      {
        "id": 2,
        "idUser": 1,
        "name": "bonzi",
        "createAt": "2024-01-24T22:45:22.46",
        "modifiedAt": null,
        "pictureBonsai": null,
        "categories": {
          "id": 1,
          "shohin": false,
          "mame": true,
          "chokkan": false,
          "moyogi": false,
          "shakan": false,
          "kengai": true,
          "hanKengai": true,
          "ikadabuki": true,
          "neagari": false,
          "literati": false,
          "yoseUe": false,
          "ishitsuki": false,
          "kabudachi": false,
          "kokufu": false,
          "yamadori": false,
          "catePerso": "ninja",
          "createAt": "2024-01-24T22:46:04.51",
          "modifiedAt": null,
          "idBonsai": 2
        },
        "styles": {
          "id": 1,
          "bunjin": true,
          "bankan": false,
          "korabuki": false,
          "ishituki": true,
          "stylePerso": "cool",
          "createdAt": "2024-01-24T22:46:20.08",
          "modifiedAt": null,
          "idBonsai": 2
        },
        "notes": {
          "id": 1,
          "title": "Important",
          "description": "blabla description",
          "createAt": "2024-01-24T22:46:45.43",
          "modifiedAt": null,
          "idBonsai": 2
        }
      }

Post et les commentaire

  {
    "id": 1,
    "title": "La main verte",
    "description": "Super longue description",
    "content": "Et un contenu encore plus long",
    "createAt": "2024-01-24T23:29:38.46",
    "modifiedAt": null,
    "idUser": 1,
    "comments": [
      {
        "id": 1,
        "content": "J'adore ton post ??",
        "createAt": "2024-01-24T23:32:42.597",
        "modifiedAt": null,
        "idPost": 1,
        "idUser": 1
      }
    ]
  }