Ma librairie

Application React (Vite) : livres enregistrés localement (équivalent métier POST /api/books), React Router, useContext, Axios (Open Library). Il s'agit d'une application de gestion d'une librairie en ligne (pour un max de $$$).

Ce quon a rajouté (branche Patrick_commande_promo, tout en français courant)

En gros : on a continué sans brancher aucun backend du cours. Les “POST” sont simulés dans le navigateur avec du React (Context) et du localStorage.

  • Commande (/commande) : tu choisis des livres avec une quantité, tu peux entrer un code promo si tu en as créé une, et tu passes la commande. Ça revient métier à un POST /api/orders, sauf que tout est enregistré localement sous la clé librairie-orders.
  • Promotions (/promotions) : tu crées des codes promo (pour linstant cest une remise en %), tu peux les activer / désactiver / supprimer. Cest le pendant local dun POST /api/promotions, stocké sous librairie-promotions.
  • Prix des livres : chaque livre a un champ prix (€) (formulaire, fiche détail, liste ; les anciens livres sans prix prennent 10 € par défaut). Les résultats ajoutés depuis Open Library partent aussi sur un prix par défaut.
  • Navigation : dans le menu en haut, liens vers Commande et Promotions à côté de Mes livres / Recherche.

Les données déjà là (librairie-books pour le catalogue, etc.) ne changent pas de principe : tout reste dans ton navigateur, pas sur le serveur du projet BUT.

Les membres du projet

Marvin Aubert, Maxime Lebreton et Patrick Felix-Vimalaratnam

Comment installer le projet

À la racine du dépôt :

npm install

Cette commande installe les dépendances listées dans package.json (React, Vite, React Router, Axios, etc.).

Comment lancer le projet

Mode développement (rechargement à chaud, URL affichée dans le terminal) :

npm run dev

Ouvre ensuite ladresse indiquée (souvent http://localhost:5173).

Prévisualiser le build de production (après npm run build) :

npm run preview

Comment tester le projet

Vérifications automatisées (lint) :

npm run lint

Build de production (vérifie que le projet compile) :

npm run build

Tests manuels dans le navigateur (après npm run dev) :

  1. Mes livres (/) : enregistrer un nouveau livre (libellés + POST /api/books côté UI), supprimer, filtrer (Tous / Lus / À lire), rechercher dans la liste.
  2. Fiche livre : cliquer sur le titre dun livre ou aller sur /<id> ; vérifier lu / non lu et suppression avec retour à Mes livres.
  3. Recherche (/recherche) : recherche Open Library (Internet), enregistrer un résultat (même logique que POST /api/books en local), puis vérifier quil apparaît sous Mes livres.
  4. Promotions (/promotions) : créer un code promo (ex. BUT10 avec 10 %), puis vérifier que tu peux le désactiver / le réactiver / le supprimer.
  5. Commande (/commande) : mettre au moins un livre avec une quantité strictement positive, tester sans promo puis avec le code créé avant ; passer la commande et vérifier le message + que le sous-total, la remise et le total sont cohérents (toujours en local).
S
Description
No description provided
Readme 17 MiB
Languages
JavaScript 71.1%
CSS 27.5%
HTML 1.4%