HospiPlan est une application de génération et de gestion de plannings hospitaliers conçue pour l'hôpital Al Amal. Ce projet respecte à la perfection des contraintes complexes de planification du personnel (Besoins métiers, quotas horaires, repos obligatoires post-nuit).
- Base de données robuste reposant sur une architecture avancée de 24 tables.
- Sécurisation des données : Présence de Soft Deletes (
deleted_at) partout pour garantir la traçabilité médico-légale de l'hôpital (Aucun historique effacé en base !). - Temporalité Parfaite : Gestion totale du pattern SCD Type 2 (Historisation par intervalles) avec Indexation optimisée (Partial Indices) sur les lignes actives.
- Conception modulaire et paramétrable (Moteur de règles dynamique via la table
rule).
- Sécurité JWT : Authentification par tokens avec refresh automatique
- Permissions fines : Responsables de service ne modifient que leurs services
- Audit log complet : Traçabilité de toutes les actions (qui, quand, quoi)
- Protection transactionnelle :
SELECT FOR UPDATEanti race-conditions - 8 contraintes dures validées automatiquement :
- Chevauchement horaire - Un soignant ne peut pas avoir deux shifts simultanés
- Certifications requises - Vérification des qualifications obligatoires
- Repos post-nuit - Respect du délai réglementaire après une garde de nuit
- Contrat actif - Vérification de l'autorisation selon le type de contrat
- Absences - Blocage si le soignant est en congé/maladie
- Quota hebdomadaire - Respect des heures maximales du contrat
- F-07 Préférences impératives - Respect des contraintes déclarées par le soignant
- Seuil de sécurité - Maintien du ratio lits/soignants par service
- Performance : Pagination (100 items/page),
prefetch_relatedoptimisé - Soft deletes : Aucune donnée perdue, traçabilité médico-légale
- Authentification JWT : Login sécurisé avec tokens et refresh automatique
- Validation frontend : Vérification avant soumission, messages d'erreur clairs
- Gestion des erreurs HTTP : 400, 401, 403, 409 avec messages spécifiques
- Design Glassmorphism : Interface moderne et professionnelle
La méthode la plus simple pour lancer l'application complète :
# Cloner et entrer dans le projet
git clone https://github.com/mrojefe/hospiplan.git
cd hospiplan
# Lancer tous les services
docker-compose up --buildURLs accessibles :
- Frontend : http://localhost:5173
- Backend API : http://localhost:8000/api/
- Admin Django : http://localhost:8000/admin/
# Arrêter
docker-compose down
# Voir les logs
docker-compose logs -f backend
docker-compose logs -f frontend
# Reset complet (efface la DB)
docker-compose down -v- Python 3.11+
- Node.js 18+
- PostgreSQL 15+ (optionnel, SQLite par défaut)
cd backend
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
pip install -r requirements.txt
# Configuration
cp .env.example .env # Modifier les variables si nécessaire
# Créer un superuser pour l'authentification
python manage.py migrate
python manage.py createsuperuser
python manage.py runserver 8000cd frontend
npm install
npm run devDocumentation pédagogique complète couvrant tous les aspects du projet :
00-introduction/— Contexte métier, lexique professionnel, architecture 3-tiers01-fondations/— Modèle relationnel, ORM Django, exercices de modélisation02-backend-api/— ViewSets, Serializers, 8 contraintes dures avec solutions03-frontend/— React Hooks, Axios, composants UI avec exercices04-integration/— CORS expliqué, Docker Compose avancé05-annexes/— Glossaire, questions d'entretien, checklist livrables
Développé dans le cadre de l'intégration BootCamp - Phase 1 et 2.