Plateforme SaaS de gestion de l'offboarding matériel en entreprise (IT + textile)
OmniLoop transforme le départ d'un collaborateur en opportunité circulaire : les équipements IT sont réaffectés en interne plutôt que rachetés neufs, les uniformes et EPI sont envoyés au recyclage textile avec certificat traçable, et les demandes d'achat sont automatiquement interceptées si du matériel disponible peut les couvrir.
Projet réalisé dans le cadre d'un hackathon par le Groupe 14, coaché par Claire Carmen.
Équipe : Edouard Louamou (La Poste), Lisa Dufailly (Sanofi), Julien Aubrun (ITGA), Anaïs Lateb (BNP Paribas), Uzair Tinnin (BNP Paribas), Pierre Romagny (Total Energies), Clément Bilot (Orano), Assia Belmokhtar (Orange), Mathilde Lebé (Orange), Amine Agnaou (Orange), Lucas Bihl (EDF)
Vue centralisée des indicateurs clés : économies générées, CO₂ évité, équipements réaffectés, tonnes de textile recyclées, ROI global.
Déclenchement manuel ou automatisé (simulation Workday) d'un processus d'offboarding — suivi du statut en temps réel par employé, avec récapitulatif des actifs associés (matériel IT, badge, uniforme).
Historique chronologique de toutes les actions de la plateforme : réaffectations, expéditions textile, achats bloqués.
Comparatif des pratiques circulaires entre services — taux de réemploi, volumes recyclés, économies générées.
Inventaire du matériel disponible (statut, marque, numéro de série) avec réaffectation directe depuis l'interface.
Suivi des collectes (uniformes, EPI) par partenaire certifié, génération de bons d'expédition, téléchargement des certificats de recyclage.
Carte interactive des prestataires (recycleurs, remetteurs en état, reconditionneurs) avec profil détaillé et contact.
Projection des économies réalisables selon le volume de départs, le panier moyen matériel et les coûts de recyclage textile.
Modal déclenché lors d'une nouvelle demande d'achat — vérifie en temps réel si du matériel interne disponible peut satisfaire le besoin avant de valider la commande neuve.
| Couche | Techno |
|---|---|
| Backend | Python 3.11+, FastAPI, Uvicorn, Pydantic |
| Frontend | React 18, Vite, Framer Motion |
| Données | In-memory (données de démo) |
- Python 3.11+
- Node.js 18+
Terminal 1 — Backend :
cd omniloop-hackathon/backend
pip install -r requirements.txt
python -m uvicorn main:app --reload --port 8000API disponible sur http://localhost:8000
Documentation Swagger interactive : http://localhost:8000/docs
Terminal 2 — Frontend :
cd omniloop-hackathon/frontend
npm install
npm run devApplication disponible sur http://localhost:5173
cd omniloop-hackathon
chmod +x start.sh
./start.sh| Méthode | Route | Description |
|---|---|---|
| GET | /api/dashboard |
Métriques RSE agrégées |
| GET | /api/employees |
Liste des départs annoncés |
| GET | /api/employees/{id} |
Détail employé + matériel + textile |
| GET | /api/equipment |
Inventaire équipements IT |
| GET | /api/equipment?available_only=true |
Équipements disponibles uniquement |
| POST | /api/equipment/{id}/reassign |
Réaffecter un équipement |
| GET | /api/textile-orders |
Commandes de recyclage textile |
| POST | /api/textile-orders/{id}/generate-shipping |
Générer un bon d'expédition |
| GET | /api/purchase-requests |
Demandes d'achat interceptées |
| POST | /api/offboarding/trigger |
Déclencher un offboarding |
| GET | /api/business-metrics |
Métriques business |
omniloop-hackathon/
├── backend/
│ ├── main.py # API FastAPI
│ └── requirements.txt
├── frontend/
│ └── src/
│ ├── components/ # Tous les écrans (Dashboard, Textile, ROI…)
│ ├── context/ # Auth, Purchase interceptor, Tab state
│ ├── data/ # Données de démo statiques
│ └── App.jsx # Routing et layout principal
└── start.sh # Script de démarrage tout-en-un
| Erreur | Solution |
|---|---|
command not found: uvicorn |
Utiliser python -m uvicorn |
No module named uvicorn |
Lancer pip install -r omniloop-hackathon/backend/requirements.txt |
| Port déjà utilisé | --port 8001 pour le backend, modifier vite.config.js pour le frontend |