Application Django complète pour la gestion de réservations d'hôtels avec base de données MariaDB.
hotel_booking/
├── hotel_booking/ # Configuration du projet Django
│ ├── settings.py # Configuration (base de données, apps, etc.)
│ ├── urls.py # URLs principales
│ └── wsgi.py # Configuration WSGI
├── bookings/ # Application principale
│ ├── models.py # Modèles (User, Hotel, Accommodation, Review, Booking)
│ ├── admin.py # Interface d'administration
│ ├── views.py # Vues de l'application
│ └── urls.py # URLs de l'application
├── templates/ # Templates HTML
│ ├── base.html
│ └── bookings/
│ ├── hotel_list.html
│ ├── hotel_detail.html
│ ├── my_bookings.html
│ └── my_hotels.html
└── manage.py # Script de gestion Django
- Python 3.8+
- MariaDB/MySQL installé et configuré
- pip (gestionnaire de paquets Python)
pip install -r requirements.txtNote pour Windows : Si l'installation de mysqlclient échoue, vous pouvez utiliser pymysql à la place :
pip install pymysqlPuis ajoutez dans hotel_booking/settings.py au début du fichier :
import pymysql
pymysql.install_as_MySQLdb()- Créez une base de données MariaDB :
CREATE DATABASE hotel_booking CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;- Modifiez les paramètres de connexion dans
hotel_booking/settings.py:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'hotel_booking',
'USER': 'votre_utilisateur',
'PASSWORD': 'votre_mot_de_passe',
'HOST': 'localhost',
'PORT': '3306',
}
}cd hotel_booking
python manage.py makemigrations
python manage.py migratepython manage.py createsuperuserSuivez les instructions pour créer un compte administrateur.
python manage.py runserverL'application sera accessible à l'adresse : http://127.0.0.1:8000/
- User : Utilisateurs avec rôles (client, owner, admin)
- Hotel : Informations sur les hôtels
- Accommodation : Types de chambres/hébergements
- Review : Avis clients sur les hôtels
- Booking : Réservations
/: Liste des hôtels avec recherche par localisation/hotel/<id>/: Détails d'un hôtel (hébergements, avis)/my-bookings/: Réservations de l'utilisateur connecté/my-hotels/: Hôtels du propriétaire connecté/admin/: Interface d'administration Django
L'interface d'administration Django permet de :
- Gérer les utilisateurs et leurs rôles
- Créer et modifier les hôtels
- Gérer les hébergements
- Voir et gérer les réservations
- Modérer les avis
-
Créer des utilisateurs : Via l'interface admin (
/admin/)- Créez des utilisateurs avec le rôle "owner" pour les propriétaires d'hôtels
- Créez des utilisateurs avec le rôle "client" pour les clients
-
Créer des hôtels :
- Connectez-vous en tant que propriétaire
- Allez dans
/admin/bookings/hotel/add/ou utilisez "Mes Hôtels"
-
Ajouter des hébergements : Via l'interface admin pour chaque hôtel
-
Créer des réservations : Via l'interface admin ou développez un formulaire personnalisé
-
Ajouter des avis : Via l'interface admin ou développez un formulaire personnalisé
Idées d'améliorations possibles :
- Formulaire de réservation en ligne
- Système de paiement
- Upload de photos pour les hôtels
- Recherche avancée (prix, note, services)
- Système de notifications
- API REST avec Django REST Framework
- Le modèle
UserétendAbstractUserde Django, donc toutes les fonctionnalités d'authentification Django sont disponibles - Les photos sont stockées en JSON (tableau de chaînes)
- Les dates sont gérées avec le timezone UTC par défaut