Application web Django pour la gestion des alertes dans un environnement logistique. L'application permet de créer, suivre et gérer des alertes liées aux stocks et aux zones de kit.
mon_projet/
├── manage.py
├── requirements.txt
├── README.md
├── check_app.py
├── mon_projet/
│ ├── __init__.py
│ ├── settings.py
│ ├── urls.py
│ ├── wsgi.py
│ └── asgi.py
├── apps/
│ ├── authentication/ # Gestion des utilisateurs
│ ├── alertes/ # Gestion des alertes
│ └── dashboard/ # Tableau de bord
├── static/
│ ├── css/
│ ├── js/
│ └── images/
└── templates/
├── base.html
├── registration/
├── alertes/
���── dashboard/
- Modèles: CustomUser avec rôles (admin, agent_kit, agent_cross, agent_debord)
- Vues: Inscription, connexion, déconnexion
- Fonctionnalités: Authentification personnalisée avec rôles
- Modèles: Alerte, HistoriqueAlerte, StockDebord
- Vues: Création, liste, mise à jour des statuts
- Fonctionnalités: Gestion complète du cycle de vie des alertes
- Vues: Tableau de bord avec métriques
- Fonctionnalités: Vue d'ensemble des alertes et statistiques
- Python 3.8+
- MySQL 5.7+ ou MariaDB
- pip (gestionnaire de paquets Python)
pip install -r requirements.txt- Créer une base de données MySQL:
CREATE DATABASE gestion_alertes_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'votre_username'@'localhost' IDENTIFIED BY 'votre_password';
GRANT ALL PRIVILEGES ON gestion_alertes_db.* TO 'votre_username'@'localhost';
FLUSH PRIVILEGES;- Modifier
settings.pyavec vos paramètres:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'gestion_alertes_db',
'USER': 'votre_username',
'PASSWORD': 'votre_password',
'HOST': 'localhost',
'PORT': '3306',
}
}Décommentez la configuration SQLite dans settings.py:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': BASE_DIR / 'db.sqlite3',
}
}python manage.py makemigrations
python manage.py migratepython manage.py createsuperuserpython check_app.pypython manage.py runserverL'application sera accessible à l'adresse: http://127.0.0.1:8000/
- Administrateur: Accès complet à toutes les fonctionnalités
- Agent Bord Kit: Création et gestion des alertes de kit
- Agent Cross Dock: Gestion des transferts et livraisons
- Agent Débord: Gestion des stocks de débordement
- Vue d'ensemble des alertes par statut
- Métriques en temps réel
- Alertes récentes
- Statistiques par zone
- Création: Nouvelle alerte avec référence, zone, nombre de bacs
- Suivi: Historique complet des modifications
- Statuts: En cours → Livré → FLC envoyé → Clôturé
- Filtrage: Par statut, zone, date
- Connexion sécurisée
- Inscription avec validation des rôles
- Gestion des sessions
Créez un fichier .env pour les paramètres sensibles:
SECRET_KEY=votre_clé_secrète
DEBUG=True
DB_NAME=gestion_alertes_db
DB_USER=votre_username
DB_PASSWORD=votre_password
DB_HOST=localhost
DB_PORT=3306
- CSRF protection activée
- XSS protection
- Authentification requise pour toutes les vues
- Validation des formulaires côté client et serveur
- Auto-refresh du dashboard (30 secondes)
- Requêtes optimisées avec select_related
- Pagination pour les grandes listes
- Cache des métriques
- Bootstrap 5: Framework CSS responsive
- Font Awesome: Icônes
- jQuery: Interactions JavaScript
- AJAX: Mises à jour en temps réel
- Interface responsive (mobile-friendly)
- Notifications en temps réel
- Confirmations pour les actions critiques
- Indicateurs de chargement
- Tri et filtrage des tables
- username, email, password (hérité d'AbstractUser)
- role: Choix parmi les 4 rôles
- phone: Numéro de téléphone (optionnel)
- created_at: Date de création- reference: Référence unique
- zone_kit: Zone de kit (1-11)
- nombre_bacs: Nombre de bacs restants
- statut: en_cours, livre, flc, cloture
- date_creation, date_cloture
- createur, traite_par: Relations vers CustomUser
- commentaires: Texte libre- alerte: Relation vers Alerte
- action: Description de l'action
- utilisateur: Qui a fait l'action
- date_modification: Quand
- ancien_statut, nouveau_statut: Changementspython check_app.pyCe script vérifie:
- ✅ Configuration Django
- ✅ Modèles et relations
- ✅ Vues et URLs
- ✅ Templates et fichiers statiques
- ✅ Connexion base de données
python manage.py test- Modifier
DEBUG = Falsedans settings.py - Configurer
ALLOWED_HOSTS - Utiliser une base de données robuste (MySQL/PostgreSQL)
- Configurer les fichiers statiques avec
collectstatic - Utiliser un serveur web (Nginx + Gunicorn)
# settings.py
DEBUG = False
ALLOWED_HOSTS = ['votre-domaine.com']
SECURE_SSL_REDIRECT = True
SECURE_BROWSER_XSS_FILTER = True
SECURE_CONTENT_TYPE_NOSNIFF = True/- Dashboard/auth/login/- Connexion/auth/register/- Inscription/alertes/create/- Créer une alerte/alertes/list/- Liste des alertes/alertes/update-statut/<id>/- Mise à jour AJAX
- API REST avec Django REST Framework
- Notifications par email/SMS
- Export Excel/PDF
- Graphiques avancés avec Chart.js
- Intégration avec des systèmes externes
-
Erreur de connexion MySQL
- Vérifier que MySQL est démarré
- Contrôler les paramètres de connexion
- Vérifier les permissions utilisateur
-
Erreur de migration
python manage.py makemigrations --empty apps.authentication python manage.py migrate --fake-initial
-
Fichiers statiques non trouvés
python manage.py collectstatic
-
Erreur CSRF
- Vérifier que
{% csrf_token %}est présent dans les formulaires - Contrôler la configuration CSRF dans settings.py
- Vérifier que
Version: 1.0.0
Dernière mise à jour: Décembre 2024
Compatibilité: Django 4.2+, Python 3.8+"