Prérequis
Node.js 18+ installé (Télécharger)
npm ou yarn installé
Compte Supabase créé (S’inscrire)
Git installé
Installation
1
Cloner le repository
2
Installer les dépendances
- react 18.3.1
- vite 6.3.5
- @supabase/supabase-js 2.x
- react-router-dom 6.x
- tailwindcss 3.x
3
Configurer Supabase
Créer un projet Supabase
- Allez sur supabase.com
- Créez un nouveau projet
- Notez l’URL et la clé API (anon key)
Créer le fichier .env
Où trouver ces valeurs ?
Dans votre dashboard Supabase :- Settings → API
- Copiez URL et anon public key
4
Initialiser la base de données
Exécuter les migrations
Les migrations sont danssupabase/migrations/. Vous avez 2 options :Option A : Via le Dashboard Supabase (recommandé pour démarrer)- Ouvrez SQL Editor dans votre dashboard
- Exécutez les migrations dans l’ordre chronologique
- Commencez par
20240101000000_initial_schema.sql(exemple)
Il y a 43 fichiers de migration à exécuter. Le dashboard vous permet de les copier/coller un par un.
Créer les buckets Storage
Dans Storage du dashboard :- Créez un bucket
tool_logos- Public : ✅ Oui
- File size limit : 2MB
- Allowed MIME types :
image/*
- Créez un bucket
site_assets- Public : ✅ Oui
- File size limit : 5MB
- Allowed MIME types :
image/*, video/*
5
Vérifier l'installation
Testez la connexion Supabase :L’application devrait démarrer sur http://localhost:5173Vérifications :
- ✅ Page d’accueil s’affiche
- ✅ Catalogue d’outils charge (vide au début)
- ✅ Pas d’erreurs console liées à Supabase
Premier lancement
Accéder à l’interface
- 🏠 Home : http://localhost:5173
- 🔐 Admin : http://localhost:5173/admin
- 📊 Quiz : http://localhost:5173/quiz/diagnostic (si créé)
- 🔍 Compare : http://localhost:5173/compare
Créer un compte admin
Par défaut, Supabase désactive les inscriptions publiques. Pour créer un admin :Via Dashboard Supabase
- Allez dans Authentication → Users
- Cliquez sur Add user → Create new user
- Entrez :
- Email :
[email protected] - Password :
votre_mot_de_passe_securise
- Email :
- Confirmez l’email si nécessaire
Se connecter
- Allez sur http://localhost:5173/admin
- Vous serez redirigé vers
/login - Entrez vos credentials
- Vous devriez accéder au dashboard admin
Ajouter des données de test
Option 1 : Manuellement via Admin Dashboard
Une fois connecté en admin :- Créer des catégories
- Allez dans l’onglet Tools du dashboard
- Créez des catégories (ex: “Communication”, “Gestion”, “Site Web”)
- Ajouter des outils
- Cliquez sur + Nouvel outil
- Remplissez le formulaire
- Uploadez un logo
- Assignez une catégorie
- Sauvegardez
- Créer un workflow
- Allez dans l’onglet Workflows
- Cliquez sur + Nouveau workflow
- Définissez les étapes
- Publiez (status = active)
Option 2 : Via SQL (données de seed)
Créez un fichierseed.sql :
Structure du projet
Voici l’organisation du code :Comprendre l'architecture
Documentation complète de l’organisation
Commandes disponibles
Troubleshooting
Erreur : “Failed to fetch”
Cause : Connexion Supabase échoue Solutions :-
Vérifiez que
.envcontient les bonnes valeurs - Vérifiez que votre projet Supabase est actif
-
Testez la connexion directement :
Erreur : “Row Level Security”
Cause : Politiques RLS bloquent l’accès Solution :- Vérifiez que RLS est activé sur toutes les tables
- Vérifiez que les policies sont créées
- Testez avec un utilisateur authentifié
Page admin vide
Cause : Pas authentifié ou session expirée Solution :- Reconnectez-vous via
/login - Vérifiez dans la console :
localStorage.getItem('supabase.auth.token') - Si null, créez un nouvel utilisateur admin
Images ne s’affichent pas
Cause : Buckets Storage mal configurés Solution :- Vérifiez que les buckets existent
- Vérifiez qu’ils sont publics
- Testez l’URL d’une image directement dans le navigateur
Prochaines étapes
Explorer l'architecture
Comprendre l’organisation du code
Créer votre premier outil
Guide de la feature Tools
API Layer
Utiliser l’abstraction Supabase
Conventions de code
Standards et bonnes pratiques
Support
Besoin d’aide ?- 📖 Documentation : Parcourez les sections ci-dessous
- 💬 GitHub Discussions : Posez vos questions
- 🐛 Issues : Signalez un bug
- 📧 Email : [email protected]
