← Retour au blog
Outil internePublié le 15 juin 2026·15 min de lecture

Créer une App de Logistique Interne avec l'IA : Guide Lovable

Apprenez à créer une app avec l'IA pour suivre l'équipement d'entreprise. Ce tutoriel Lovable couvre l'inventaire, les QR codes et le temps réel.

Rendu 3D minimaliste de boîtes d'équipement technologique organisées dans une atmosphère dégradée rose et mauve, représentant la logistique interne.

Aperçu du projet

Tableau de bord d'inventaire montrant des cartes d'équipement comme des MacBooks et des Perceuses avec leur statut.
Le tableau de bord principal offre une vue d'ensemble en temps réel de tous les actifs de l'entreprise.
Interface de scan de code QR sur smartphone pour l'emprunt d'équipement.
Les employés peuvent facilement scanner les QR codes de l'équipement avec leur téléphone pour emprunter du matériel.
Vue administrateur avec tableaux et analyses pour la maintenance de l'équipement.
Les administrateurs suivent l'historique complet et les calendriers de maintenance de chaque matériel.

Le cas : Optimiser la Logistique Interne avec le Vibe Coding

La gestion efficace des ressources est souvent ce qui différencie une entreprise qui scale d'une autre qui s'enlace dans une dette opérationnelle. Pour les agences de services sur le terrain ou les startups spécialisées dans le matériel, la gestion de l'équipement — des ordinateurs portables haut de gamme aux outils de construction — devient vite un cauchemar de feuilles de calcul perdues. Cet article explore comment créer une app avec l'IA spécifiquement conçue pour le suivi d'équipement interne.

En suivant ce tutoriel Lovable, nous allons concevoir "GearTrack", un outil interne sur mesure qui automatise les emprunts, les journaux de maintenance et la localisation des actifs. Ce n'est pas une simple liste : c'est un système complet avec base de données centralisée, rôles utilisateurs et statut de disponibilité en temps réel. Le vibe coding avec Lovable nous permet de nous concentrer sur la logique métier tandis que l'IA gère l'orchestration complexe React/Tailwind/Supabase.

L'objectif est de résoudre :

  • La perte de matériel : Savoir exactement qui a quoi, et depuis quand.
  • Les temps d'arrêt de maintenance : Suivre l'utilisation et prévoir les réparations avant la panne.
  • La fragmentation des données : Passer de cinq fichiers Excel à une source unique de vérité.

Fonctionnalités clés

  1. Gestion d'Inventaire : Vue centralisée de tous les actifs avec photos, numéros de série et dates d'achat.
  2. Recherche & Filtrage Intelligent : Filtrez par catégorie (Informatique, Outils, Mobilier), statut (Disponible, En cours d'utilisation, En réparation) ou site.
  3. Génération de QR Codes : Création automatique d'identifiants uniques pour chaque objet afin de simplifier le scan physique.
  4. Système d'Emprunt : Workflow simple de "Check-out / Check-in" lié aux comptes utilisateurs.
  5. Historique & Audit : Journal complet des utilisations et rapports de dommages.
  6. Plannification de Maintenance : Alertes de maintenance récurrente basées sur le temps ou la fréquence d'utilisation.
  7. Gestion des Rôles (RBAC) : Les Admins gèrent l'inventaire, le Staff peut consulter et demander des emprunts.
  8. Notifications Automatisées : Alertes email via Resend lorsqu'un retour est en retard.

Stack & intégrations

  • Frontend : Vite + React + Tailwind CSS (via Lovable).
  • Backend/Base de données : Supabase (PostgreSQL) pour les données temps réel et la sécurité RLS.
  • Authentification : Supabase Auth (Magic Link & Google).
  • Images : Supabase Storage pour les photos d'équipement.
  • Notifications : API Resend pour les emails transactionnels (alertes de retard).
  • Composants UI : Shadcn/UI pour une interface interne professionnelle et accessible.

Prompts Lovable concrets

1. Design system & identité visuelle

Je construis "GearTrack", une application de logistique interne pour gérer l'équipement d'entreprise via le "vibe coding". 
J'ai besoin que tu définisses une identité visuelle professionnelle et robuste. 
- Couleurs : Configure une palette de tokens HSL sémantiques dans index.css. Utilise un Slate profond (#0f172a) pour les arrière-plans, un Indigo vibrant (#4f46e5) pour les actions principales, et des couleurs de statut spécialisées : Émeraude pour "Disponible", Ambre pour "Utilisé", et Rose pour "Réparation/Endommagé".
- Typographie : Utilise Inter pour le texte courant et une Sans géométrique propre comme Geist pour les titres. 
- Composants UI : Personnalise les composants Shadcn avec un border-radius de 12px (rounded-xl) et des anneaux indigo subtils lors du focus.
- Thème : Mode clair "Clean Industrial" par défaut avec une option mode sombre à haut contraste. 
- Tokens : Définis --primary-foreground, --secondary, --muted, et --accent via HSL. 
Assure-toi que l'ambiance ressemble à un outil professionnel de pointe, pas à une application de réseau social. Efficace, dense, mais lisible.

2. Schéma de base de données & RLS

Crée le schéma de base de données Supabase pour GearTrack. J'ai besoin d'une structure relationnelle robuste.
- Table 'equipment' : id (uuid), name (text), serial_number (unique text), category (enum: IT, Tools, Vehicles, Other), status (enum: available, in_use, repair, retired), purchase_date (date), photo_url (text), et owner_id (fk vers auth.users, nullable).
- Table 'transactions' : id (uuid), equipment_id (fk), user_id (fk), transaction_type (enum: checkout, checkin, repair_start, repair_end), notes (text), created_at.
- Table 'profiles' : id (fk auth.users), full_name, department, role (admin, staff).
- Politiques RLS :
  1. Profiles : Les utilisateurs peuvent lire tous les profils ; seuls les Admins peuvent les mettre à jour.
  2. Equipment : Tout le monde peut lire ; seuls les Admins peuvent INSERT/UPDATE/DELETE.
  3. Transactions : Tout le monde peut lire les siennes ; les Admins peuvent tout lire et effectuer des audits.
Assure-toi que toutes les clés étrangères sont indexées pour la performance.

3. Authentification & onboarding

Configure le flux d'authentification pour GearTrack en utilisant Supabase Auth.
- Page de connexion : Crée une carte de connexion épurée avec Email Magic Link et options Google OAuth.
- Onboarding : Après la première connexion, si le profil n'existe pas, redirige vers une page /profile-setup pour collecter le nom complet et le département de l'utilisateur.
- Permissions : Implémente un composant ou un hook pour protéger les routes. /admin/* ne doit être accessible qu'aux utilisateurs ayant le rôle 'admin' dans la table profiles.
- UI : Affiche un spinner de chargement pendant la vérification de session et utilise les Toasts Shadcn pour notifier l'utilisateur du succès ou de l'échec de la connexion.
- Contexte : C'est pour une équipe interne, donc le texte doit être pro (ex: "Connectez-vous à votre compte d'entreprise").

4. Écran principal (Inventaire)

Construis le Dashboard d'Inventaire, le cœur de l'application GearTrack.
- Layout : Utilise une navigation latérale (Inventaire, Mes Emprunts, Maintenance, Admin).
- Vue principale : Une grille d'équipement avec recherche et filtres. 
- Cartes de détails : Chaque carte montre l'image de l'objet, un badge de couleur pour le statut (Disponible/Occupé), sa catégorie et son nom.
- Action : Cliquer sur une carte ouvre un volet latéral (Sheet) avec l'historique complet de l'objet et un bouton "Emprunter" si disponible.
- Temps réel : Assure-toi que le statut se met à jour instantanément via Supabase Realtime quand un autre utilisateur emprunte un objet.
- État vide : Si aucune recherche ne correspond, affiche un message clair avec un bouton pour "Effacer les filtres".

5. Intégration Externe : Emprunt & Resend

Implémente la logique d'emprunt d'équipement avec une notification email externe.
- Workflow : Quand un utilisateur clique sur "Emprunter", affiche une modale pour confirmer la date de retour prévue et des notes de récupération.
- Base de données : À la confirmation, crée un enregistrement 'checkout' dans 'transactions' et mets à jour 'equipment.status' sur 'in_use' et 'equipment.owner_id' avec l'ID de l'utilisateur actuel.
- Intégration : Utilise une Edge Function Supabase ou un appel API direct vers Resend pour envoyer un email de confirmation à l'utilisateur. L'email doit contenir le nom de l'objet, la date de retour et un lien vers l'app.
- Gestion d'erreurs : Bloque l'emprunt si le statut n'est pas 'available'. Affiche un toast d'erreur si la mise à jour échoue.

6. Polish, SEO & Performance

Finalise l'application GearTrack pour un déploiement interne avec un polissage professionnel.
- Responsive : Assure-toi que le dashboard fonctionne parfaitement sur les tablettes d'entrepôt et les smartphones pour le scan en déplacement.
- États de chargement : Ajoute des Skeleton loaders pour la grille d'équipement et des transitions fluides.
- SEO & Meta : Même pour de l'interne, configure des titres de document propres (ex: "Inventaire | GearTrack") et un favicon personnalisé.
- Optimisation : Implémente React Query pour la récupération des données avec une logique stale-while-revalidate pour minimiser les appels Supabase.
- Feedback : Chaque action (Emprunt, Mise à jour, Changement de profil) doit déclencher une notification Toast.

Pièges courants & solutions

Pourquoi mon RLS bloque-t-il les données alors que je suis Admin ? Dans Supabase, le RLS s'applique à tous les utilisateurs. Si votre politique vérifie uniquement auth.uid(), un administrateur ne pourra pas voir les données des autres. Vous devez ajouter une condition type OR (SELECT role FROM profiles WHERE id = auth.uid()) = 'admin'.

Comment gérer l'upload de photos d'équipement volumineuses ? Ne stockez pas de base64 dans la base de données. Utilisez Supabase Storage. Utilisez Lovable pour créer un champ d'entrée de fichier qui télécharge le fichier, récupère l'URL publique, puis enregistre cette URL dans la colonne photo_url de votre table.

Puis-je scanner des codes-barres avec mon téléphone ? Oui ! Vous pouvez utiliser la bibliothèque html5-qrcode. Demandez à l'IA : "Intègre un scanner QR via caméra qui recherche dans la table equipment l'UUID correspondant au scan."

FAQ

Est-il possible de limiter l'accès à certains emails ?

Oui. Dans Supabase, vous pouvez définir des restrictions de domaine d'email pour que seuls les utilisateurs avec @votreentreprise.com puissent s'inscrire.

Comment exporter l'inventaire en Excel ?

Utilisez la bibliothèque xlsx. Demandez à Lovable : "Ajoute un bouton d'export Excel qui convertit les données de la table equipment actuelle en fichier .xlsx téléchargeable."

Puis-je suivre des licences logicielles ?

Absolument. Ajoutez simplement une catégorie "Logiciel" et utilisez le champ "Numéro de série" pour la clé de licence. La logique de suivi reste identique.

Conclusion

Créer un outil interne sur mesure prenait autrefois des mois. En suivant ce tutoriel Lovable et en adoptant le vibe coding, vous pouvez déployer un gestionnaire d'équipement professionnel en un week-end. Arrêtez de perdre du matériel et optimisez vos opérations dès aujourd'hui. Prêt à construire ? Commencez par le prompt de schéma de base de données ci-dessus !

Maquette interactive

Aperçu statique d'un écran clé du projet.

Tableau de bord

Équipement disponible

Total actifs
124
En cours d'utilisation
18
Disponibles
92
Actifs récents
iPhone 15 Pro (Marketing)
SN: 4492-X-22
Disponible
Caméra Sony Alpha 7 IV
SN: CAM-S-101
En cours

Schéma de base de données

À coller dans Lovable Cloud (Supabase). RLS incluses.

-- Table des profils utilisateurs avec rôles
CREATE TABLE profiles (
  id UUID REFERENCES auth.users ON DELETE CASCADE PRIMARY KEY,
  full_name TEXT,
  department TEXT,
  role TEXT DEFAULT 'staff' CHECK (role IN ('admin', 'staff')),
  updated_at TIMESTAMP WITH TIME ZONE DEFAULT NOW()
);

-- Table de l'équipement
CREATE TABLE equipment (
  id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
  name TEXT NOT NULL,
  serial_number TEXT UNIQUE,
  category TEXT CHECK (category IN ('IT', 'Tools', 'Vehicles', 'Other')),
  status TEXT DEFAULT 'available' CHECK (status IN ('available', 'in_use', 'repair', 'retired')),
  purchase_date DATE,
  photo_url TEXT,
  owner_id UUID REFERENCES auth.users(id),
  created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW()
);

-- Table des transactions/historique
CREATE TABLE transactions (
  id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
  equipment_id UUID REFERENCES equipment(id) ON DELETE CASCADE,
  user_id UUID REFERENCES auth.users(id),
  transaction_type TEXT CHECK (transaction_type IN ('checkout', 'checkin', 'repair_start', 'repair_end')),
  notes TEXT,
  created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW()
);

-- Activation de la sécurité RLS
ALTER TABLE profiles ENABLE ROW LEVEL SECURITY;
ALTER TABLE equipment ENABLE ROW LEVEL SECURITY;
ALTER TABLE transactions ENABLE ROW LEVEL SECURITY;

-- Politiques pour les profils
CREATE POLICY "Public profiles are viewable by everyone" ON profiles FOR SELECT USING (true);
CREATE POLICY "Users can update own profile" ON profiles FOR UPDATE USING (auth.uid() = id);

-- Politiques pour l'équipement
CREATE POLICY "Equipment is viewable by everyone" ON equipment FOR SELECT USING (true);
CREATE POLICY "Admins can manage equipment" ON equipment FOR ALL USING (
  EXISTS (SELECT 1 FROM profiles WHERE id = auth.uid() AND role = 'admin')
);

-- Politiques pour les transactions
CREATE POLICY "Users can view own transactions" ON transactions FOR SELECT USING (auth.uid() = user_id OR EXISTS (SELECT 1 FROM profiles WHERE id = auth.uid() AND role = 'admin'));
CREATE POLICY "Staff can create transactions" ON transactions FOR INSERT WITH CHECK (auth.uid() = user_id);

Roadmap & estimation

24 h estimées~1800 crédits Lovable
MVP

Cœur Opérationnel

  • →Schéma de base de données avec tables d'équipement et profils
  • →Flux d'authentification par Email Magic Link
  • →Vue liste d'équipement avec recherche et filtres par catégorie
  • →Logique de transaction manuelle pour l'emprunt et le retour
V2

Mobile & Automatisation

  • →Génération de QR codes pour chaque actif dans le dashboard
  • →Intégration d'un scanner mobile pour déclencher l'emprunt via caméra
  • →Notifications par email via Resend pour les matériels en retard
  • →Rôles de profils (Admin vs Staff) avec protection des routes
V3

Gestion d'Actifs Pro

  • →Plannification de maintenance et alertes basées sur l'usage
  • →Upload de photos sur Supabase Storage pour les rapports de dommages
  • →Dashboard d'analyse avancée pour le cycle de vie des actifs
  • →Export d'inventaire vers Excel/CSV pour les équipes comptables
#vibe coding#formation Lovable#créer une app avec l'IA#outil interne no-code#logistique IA#développement no-code IA

Envie d'aller plus loin ?

Téléchargez le guide PDF complet pour maîtriser Lovable de A à Z.

Voir les guides