Skip to content

jocha28/library

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 

Repository files navigation

📚 Library Management API

Une API REST Django pour la gestion d'une bibliothèque de livres.

🚀 Technologies Utilisées

Python Django Django REST Framework SQLite CORS

📋 Description

Ce projet est une API REST développée avec Django et Django REST Framework pour gérer une collection de livres. L'API permet de consulter, ajouter et gérer des informations sur les livres, incluant les détails comme le titre, l'auteur, la description, la date de publication, et plus encore.

✨ Fonctionnalités

  • 📖 Gestion des livres : CRUD complet pour les livres
  • 🔍 API RESTful : Endpoints structurés et standardisés
  • 🖼️ Support des images : Upload et gestion d'images de couverture
  • 🌐 CORS activé : Compatible avec les applications frontend (Expo/React Native)
  • 📊 Base de données SQLite : Stockage léger et efficace

🔧 Installation

Prérequis

  • Python 3.11 ou supérieur
  • pip (gestionnaire de paquets Python)
  • pipenv (recommandé) ou virtualenv

Étapes d'installation

  1. Cloner le repository
git clone https://github.com/jocha28/library.git
cd library
  1. Installer les dépendances

Avec Pipenv (recommandé)

pipenv install
pipenv shell
cd django_project

Avec pip et virtualenv

python -m venv venv
source venv/bin/activate  # Sur Windows: venv\Scripts\activate
cd django_project
pip install -r requirements.txt
  1. Appliquer les migrations
python manage.py migrate
  1. Créer un superutilisateur (optionnel)
python manage.py createsuperuser
  1. Lancer le serveur de développement
python manage.py runserver

L'API sera accessible à l'adresse : http://127.0.0.1:8000/

📡 Endpoints API

Livres

Méthode Endpoint Description
GET /api/ Récupérer la liste de tous les livres

Administration

  • Interface d'administration Django : http://127.0.0.1:8000/admin/

📦 Structure du Projet

library/
├── django_project/
│   ├── apis/                  # Application API REST
│   │   ├── serializers.py     # Sérialiseurs DRF
│   │   ├── views.py           # Vues API
│   │   └── urls.py            # Routes API
│   ├── books/                 # Application Books
│   │   ├── models.py          # Modèle Book
│   │   ├── admin.py           # Configuration admin
│   │   └── urls.py            # Routes books
│   ├── django_project/        # Configuration projet
│   │   ├── settings.py        # Paramètres Django
│   │   ├── urls.py            # Routes principales
│   │   └── wsgi.py            # Configuration WSGI
│   ├── media/                 # Fichiers uploadés
│   ├── db.sqlite3             # Base de données
│   └── manage.py              # Script de gestion Django
├── Pipfile                    # Dépendances Pipenv
└── Pipfile.lock              # Lock des dépendances

📊 Modèle de Données

Book

Champ Type Description
title CharField Titre du livre
subtitle CharField Sous-titre
author CharField Auteur
cover_image ImageField Image de couverture
profile_picture ImageField Photo de profil
description TextField Description
published_date DateField Date de publication
publisher CharField Éditeur
language CharField Langue
pages PositiveIntegerField Nombre de pages
genres CharField Genres

🔐 Configuration CORS

Le projet est configuré pour accepter les requêtes depuis :

  • http://localhost:19006 (Expo/React Native)
  • http://127.0.0.1:19006

Pour modifier la configuration CORS, éditez django_project/django_project/settings.py.

🛠️ Développement

Créer des migrations

python manage.py makemigrations

Appliquer les migrations

python manage.py migrate

Lancer les tests

python manage.py test

📝 Dépendances Principales

  • Django : Framework web Python
  • Django REST Framework : Toolkit pour construire des APIs REST
  • django-cors-headers : Gestion des en-têtes CORS
  • Pillow : Bibliothèque pour le traitement d'images

📄 Licence

Ce projet est un projet éducatif.

👤 Auteur

jocha28

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •