Projet full‑stack pour la recherche et l'exploration de livres (backend Django + API REST, frontend React + TypeScript). Fournit des endpoints de recherche (simple, avancée, mise en évidence) et une interface utilisateur pour parcourir et lire des livres.
- ✅ Prérequis
- ⚙️ Installation & démarrage (Backend)
- ⚙️ Installation & démarrage (Frontend)
- 🔌 Endpoints API
- 🐞 Dépannage rapide
- 📌 Bonnes pratiques / remarques
- Python 3.11 (64 bits recommandé)
- Node.js (v18+) et npm
- Docker & docker-compose (pour Postgres en local) — optionnel mais recommandé
- Git
-
Cloner le dépôt et se placer dans le dossier du projet.
-
Créer et activer un environnement virtuel depuis le dossier
Backend:- PowerShell & CMD (Windows) :
cd Backend python -m venv venv .\venv\Scripts\activate - Bash (Linux/macOS) :
python -m venv venv source venv/bin/activate
- PowerShell & CMD (Windows) :
-
Mettre à jour pip et installer les dépendances :
python -m pip install --upgrade pip setuptools wheel pip install -r requirements.txt
Note : si l'installation de
scipyéchoue (wheel manquant), mettre à jourpip/wheelet retenter. Sur Windows, assurez‑vous d'utiliser un Python 64 bits. -
Base de données (Postgres) :
- Option rapide : lancer Postgres avec Docker (depuis la racine ou
Backendsidocker-compose.ymls'y trouve) :docker-compose up -d
- Option rapide : lancer Postgres avec Docker (depuis la racine ou
-
Appliquer les migrations :
python manage.py migrate
-
Récupération de données
python Scripts/fetch_books.py
Pour récupérer les livres de la bibliothèque de Gutenberg faisant plus de 10 000 mot
Pour récupérer les index sans les mots et permettre la recherche inversée
python Scripts/fetch_index.py
-
Démarrer le serveur Django :
python manage.py runserver
-
Tests backend :
python manage.py test
-
Se placer dans le dossier
frontend:cd frontend npm install -
Lancer le serveur de dev :
npm run dev
Base : http://<HOST>:<PORT>/api/
- GET
/api/books/— Liste paginée des livres (params :page,page_size) - GET
/api/books/<id>/— Détail d'un livre - GET
/api/books/search/?q=<query>&page=<n>&page_size=<m>— Recherche simple par mot‑clé - GET
/api/books/advanced-search/?q=<query>&page=<n>&page_size=<m>— Recherche avancée (regex, contenu) - GET
/api/books/highlight-search/?q=<query>&page=<n>&page_size=<m>— Recherche avec positions / mise en évidence - GET
/api/authors/— Liste des auteurs - GET
/api/authors/<id>/— Détail d'un auteur
Paramètres courants : q, page, page_size, author (filtrage côté API)
-
Erreur
ModuleNotFoundError: No module named 'scipy':- Assurez‑vous d'avoir installé les dépendances dans le venv actif :
python -m pip install --upgrade pip setuptools wheel pip install -r requirements.txt
- Sur Windows, installez un Python 64 bits et réessayez.
- Assurez‑vous d'avoir installé les dépendances dans le venv actif :
-
Erreurs de connexion à la DB : vérifier que Postgres (docker) est bien up (
docker ps) et que les variables d'environnement correspondent aux valeurs dedocker-compose.yml.
© Projet MTR — 2026 (CFA INSTA)