Application web complète de gestion de produits avec système d'administration et catalogue public.
- ✅ Inscription et connexion sécurisées avec Supabase Auth
- ✅ Protection des routes avec middleware Next.js
- ✅ Gestion automatique des sessions
- ✅ Déconnexion sécurisée
- ✅ Interface moderne et intuitive avec navigation latérale
- ✅ Statistiques en temps réel (nombre de produits, valeur totale, prix moyen)
- ✅ Actions rapides pour une gestion efficace
- ✅ Design professionnel avec Tailwind CSS
- ✅ Créer : Ajout de produits avec formulaire validé
- ✅ Lire : Affichage en tableau avec toutes les informations
- ✅ Modifier : Mise à jour des données et images
- ✅ Supprimer : Suppression sécurisée avec confirmation
- ✅ Upload vers Supabase Storage
- ✅ Prévisualisation avant téléchargement
- ✅ Compression et optimisation automatique avec Next.js Image
- ✅ Suppression automatique des images lors de la suppression de produits
- ✅ Page d'accueil moderne et responsive
- ✅ Catalogue de produits en grille
- ✅ Cartes produits attrayantes avec images et prix
- ✅ Navigation fluide et intuitive
- ✅ Loading states (indicateurs de chargement)
- ✅ Toast notifications (confirmations visuelles)
- ✅ Modales de confirmation
- ✅ Design 100% responsive (Mobile, Tablette, Desktop)
- ✅ Gestion d'erreurs robuste
- Framework : Next.js 15 (App Router)
- Langage : TypeScript
- Backend : Supabase (Auth + Database + Storage)
- Styles : Tailwind CSS
- UI Components : Composants React personnalisés
- Notifications : react-hot-toast
- Images : Next.js Image Optimization
websitesell/
├── app/ # Pages et routes (App Router)
│ ├── (auth)/ # Routes d'authentification
│ │ ├── login/ # Page de connexion
│ │ └── signup/ # Page d'inscription
│ ├── (public)/ # Routes publiques
│ │ └── page.tsx # Page d'accueil (catalogue)
│ ├── dashboard/ # Routes admin protégées
│ │ ├── page.tsx # Dashboard principal
│ │ └── products/ # Gestion des produits
│ ├── api/ # Routes API
│ ├── layout.tsx # Layout racine
│ └── globals.css # Styles globaux
│
├── components/ # Composants React réutilisables
│ ├── auth/ # Formulaires d'authentification
│ ├── dashboard/ # Composants du dashboard
│ ├── products/ # Composants produits
│ ├── ui/ # Composants UI de base
│ └── Navbar.tsx # Navigation publique
│
├── lib/ # Utilitaires et configuration
│ ├── supabase/ # Configuration Supabase
│ │ ├── client.ts # Client côté navigateur
│ │ ├── server.ts # Client côté serveur
│ │ └── middleware.ts # Client pour middleware
│ ├── actions/ # Server Actions
│ │ ├── auth.actions.ts
│ │ └── products.actions.ts
│ └── utils.ts # Fonctions utilitaires
│
├── types/ # Définitions TypeScript
│ ├── database.types.ts # Types Supabase
│ └── index.ts # Types personnalisés
│
├── middleware.ts # Protection des routes
├── .env.local # Variables d'environnement (à créer)
├── package.json # Dépendances
└── README.md # Ce fichier
- Node.js 18+ installé
- Compte Supabase (gratuit sur supabase.com)
# Installer les dépendances
npm installConsultez GUIDE_INSTALLATION.md pour les instructions détaillées de configuration Supabase.
Résumé :
- Créer un projet Supabase
- Créer la table
productsavec le SQL fourni - Créer le bucket
product-images - Configurer les politiques de sécurité (RLS)
Créez un fichier .env.local :
NEXT_PUBLIC_SUPABASE_URL=votre_url_supabase
NEXT_PUBLIC_SUPABASE_ANON_KEY=votre_clé_anon
NEXT_PUBLIC_SITE_URL=http://localhost:3000# Mode développement
npm run dev
# L'application sera accessible sur http://localhost:3000| Document | Description |
|---|---|
| GUIDE_INSTALLATION.md | Guide pas à pas pour configurer Supabase et l'application |
| GUIDE_UTILISATION.md | Manuel d'utilisation pour administrateurs et visiteurs |
| EXPLICATIONS_CODE.md | Explications techniques du code pour les développeurs |
| DEPLOIEMENT.md | Guide de déploiement en production (Vercel, Netlify, VPS) |
| STRUCTURE_PROJET.md | Architecture détaillée du projet |
1. Ouvrez http://localhost:3000/signup
2. Créez un compte avec votre email
3. Vous serez automatiquement connecté
1. Dans le dashboard, cliquez sur "Nouveau produit"
2. Remplissez le formulaire
3. Uploadez une image (optionnel)
4. Cliquez sur "Créer le produit"
1. Ouvrez http://localhost:3000
2. Votre produit s'affiche sur la page d'accueil
- ✅ Authentification sécurisée avec Supabase
- ✅ Row Level Security (RLS) activée sur toutes les tables
- ✅ Protection des routes avec middleware Next.js
- ✅ Validation des données côté serveur
- ✅ Server Actions pour les opérations sensibles
- ✅ CSRF protection intégrée
L'application fonctionne parfaitement sur :
- 📱 Mobile : Menu adapté, grille 1 colonne
- 📱 Tablette : Grille 2 colonnes
- 💻 Desktop : Grille 3 colonnes, sidebar
Pour déployer en production, consultez DEPLOIEMENT.md qui couvre :
- Déploiement sur Vercel (recommandé)
- Déploiement sur Netlify
- Déploiement sur VPS
- Configuration DNS et SSL
- Monitoring et maintenance
| Colonne | Type | Description |
|---|---|---|
| id | UUID | Identifiant unique (auto-généré) |
| name | TEXT | Nom du produit |
| description | TEXT | Description du produit |
| price | NUMERIC | Prix en euros |
| image_url | TEXT | URL de l'image (nullable) |
| created_at | TIMESTAMP | Date de création (auto) |
Éditez tailwind.config.ts :
colors: {
primary: {
600: '#votre-couleur', // Couleur principale
700: '#votre-couleur-foncée',
},
}Consultez EXPLICATIONS_CODE.md section "Personnalisation" pour un guide détaillé.
- Vérifiez vos variables d'environnement dans
.env.local - Assurez-vous que l'URL et la clé sont correctes
- Vérifiez que le bucket
product-imagesexiste dans Supabase Storage - Vérifiez qu'il est public
- Vérifiez les politiques de sécurité
- Vérifiez que la table
productsest créée - Vérifiez les politiques RLS
- Consultez la console du navigateur (F12) pour les erreurs
# Développement
npm run dev
# Build de production
npm run build
# Démarrer la production
npm start
# Vérifier le code
npm run lintPour toute question :
- Consultez la documentation dans les fichiers MD
- Vérifiez la documentation Supabase
- Consultez la documentation Next.js
MIT License - Libre d'utilisation pour vos projets personnels et commerciaux.
- Système de catégories pour les produits
- Recherche et filtres
- Pagination pour les grandes listes
- Export des données (CSV, Excel)
- Statistiques avancées
- Multi-langues
- Mode sombre
- Système de panier (e-commerce complet)
Développé avec ❤️ en utilisant Next.js 15 et Supabase
Date de création : Avril 2026
Version : 1.0.0