Boutique E-commerce & Commissions
- Vue 59.2%
- Rust 34.4%
- Shell 3.3%
- TypeScript 2.4%
- CSS 0.7%
| backend | ||
| frontend | ||
| .gitignore | ||
| docker-compose.yml | ||
| ilyaun.md | ||
| README.md | ||
| run.sh | ||
Kathecat4 - Boutique E-commerce & Commissions
Projet complet de site e-commerce pour l'illustratrice Kathecat4, incluant la vente de produits, la gestion des commissions artistiques, un système de tickets, et un tableau de bord administrateur complet.
🚀 Architecture Technique
Backend (API REST)
- Langage : Rust 2021
- Framework : Actix-web 4
- Base de données : MongoDB 7+ (NoSQL)
- Authentification : JWT avec hachage bcrypt
- Upload de fichiers : Multipart avec stockage local
- Intégration Stripe : Payment Intents et Stripe Connect
- Email : Lettre (SMTP)
- Compression ZIP : Zip-rs
Frontend (Application Web)
- Framework : Nuxt 4 (Vue 3)
- Gestion d'état : Pinia
- Design System : Couleurs mauve/rose/violet/peach
- Typographie : Nunito
- Responsive : Mobile-first
📦 Fonctionnalités Principales
1. Boutique E-commerce
- Catalogue produits avec filtres par catégorie
- Panier persistant avec ajout/suppression/quantité
- Passage commande avec statuts (pending, paid, shipped)
- Paiement simulé (prêt pour Stripe)
- Tracking de livraison
2. Système de Commissions (Complet)
- Création de commission par le client
- Chat intégré par commission (messages + pièces jointes)
- Devis détaillé avec calculs TVA (HT/TTC)
- Acceptation/refus de devis par le client
- Demande de paiement (acompte ou total)
- Statuts personnalisables (ex: En production, Contrôle qualité)
- Upload de fichiers par l'admin
- Liens de téléchargement avec expiration (24h)
- Archives ZIP pour téléchargement multiple
- Notifications email automatiques
3. Tickets Support
- Ouverture de ticket par client
- Réponses client/admin
- Suivi des échanges
4. Administration
- Dashboard complet (produits, commandes, tickets, commissions)
- Gestion multi-vendeurs
- Catégories (CRUD)
- Upload d'images pour produits
- Configuration globale des commissions
5. Profil Utilisateur
- Compte client avec historique
- Rôles : customer / admin
- Dashboard personnel
🎨 Design System
Palette de Couleurs
- Fond : Pêche clair
#F6D9BB - Mauve :
#650A45(principal) - Rose :
#C33C89(accent) - Rose vif :
#FF78E9 - Rose clair :
#E597E7 - Violet foncé :
#35045D - Violet clair :
#6B09C2 - Periwinkle :
#BDC3FF - Jaune :
#FAEC71(accentuation) - Pêche :
#E7AF97
Style
- Border-radius : 16px (arrondi moderne)
- Typographie : Nunito (400/600/700/800)
- Ombres : Douces et profondes
🚦 Prérequis
Logiciels Nécessaires
- MongoDB 7+ (Docker recommandé)
- Rust (stable, edition 2021) - https://rustup.rs
- Node.js 18+ et npm/bun
- Bun (recommandé pour le frontend)
🚀 Démarrage Rapide
1. Cloner le projet
git clone <repository-url>
cd kathecat4
2. Lancer tout d'un coup
./run.sh start
Ce script lance :
- MongoDB (sur port 27017)
- Backend Rust (sur port 8080)
- Frontend Nuxt (sur port 3000)
3. Accéder à l'application
- Frontend : http://localhost:3000
- API : http://localhost:8080
- Compte admin :
admin@kathecat4.local/admin123
4. Créer le compte admin (si besoin)
./run.sh setup-admin
📂 Structure du Projet
kathecat4/
├── backend/ # API Rust
│ ├── Cargo.toml
│ ├── src/
│ │ ├── main.rs # Point d'entrée
│ │ ├── config.rs # Configuration
│ │ ├── db.rs # Connexion MongoDB
│ │ ├── models/ # Modèles de données
│ │ ├── handlers/ # Routes API
│ │ └── middleware/ # Auth middleware
│ └── uploads/ # Fichiers uploadés
│
├── frontend/ # Application Nuxt
│ ├── app.vue
│ ├── nuxt.config.ts
│ ├── assets/main.css # Design System
│ ├── layouts/
│ ├── pages/ # Routes
│ ├── stores/ # Pinia (auth, cart)
│ ├── composables/ # Composables Vue
│ └── components/ # Composables UI
│
├── mongo_data/ # Données MongoDB
├── .pids/ # PIDs des processus
├── run.sh # Script de lancement
└── README.md
🛣️ Routes API Principales
Authentification
POST /api/auth/register- Créer comptePOST /api/auth/login- ConnexionGET /api/auth/me- Profil
Produits
GET /api/products- ListeGET /api/products/:id- DétailPOST /api/admin/products- Créer (admin)PUT /api/admin/products/:id- Modifier (admin)DELETE /api/admin/products/:id- Supprimer (admin)
Panier
POST /api/cart- Créer/récupérerPOST /api/cart/items- Ajouter articlePUT /api/cart/items/:id- Modifier quantitéDELETE /api/cart/items/:id- Supprimer
Commandes
POST /api/orders- Passer commandeGET /api/orders- Mes commandesGET /api/admin/orders- Toutes (admin)PUT /api/admin/orders/:id/status- Changer statut (admin)
Tickets
POST /api/tickets- Ouvrir ticketGET /api/tickets- Mes ticketsPOST /api/tickets/:id/messages- RépondreGET /api/admin/tickets- Tous (admin)
Commissions
POST /api/commissions- CréerGET /api/commissions- Mes commissionsGET /api/commissions/:id- DétailPOST /api/commissions/:id/quote- Créer devis (admin)PUT /api/commissions/:id/respond-quote- Accepter/refuserPOST /api/commissions/:id/request-payment- Demander paiement (admin)POST /api/commissions/:id/messages- Envoyer messageGET /api/commissions/:id/messages- Lister messagesPOST /api/commissions/:id/upload- Uploader fichier (admin)GET /api/commissions/:id/files- Lister fichiersGET /api/commissions/:id/download/*- Télécharger
🔧 Configuration
Variables d'Environnement (Backend)
MONGODB_URI=mongodb://localhost:27017
DATABASE_NAME=kathecat4
JWT_SECRET=dev-secret-change-in-production
SERVER_HOST=127.0.0.1
SERVER_PORT=8080
ADMIN_EMAIL=admin@kathecat4.local
ADMIN_PASSWORD=admin123
MongoDB Atlas
Pour utiliser MongoDB Atlas (cloud), modifiez MONGODB_URI :
export MONGODB_URI="mongodb+srv://<user>:<password>@cluster.xxxxx.mongodb.net/?retryWrites=true&w=majority"
🎯 Utilisation
Pour les Clients
- Créer un compte ou se connecter
- Parcourir le catalogue
- Ajouter au panier
- Passer commande
- Suivre les commandes dans le dashboard
- Ouvrir des tickets si besoin
- Commander des commissions personnalisées
Pour les Vendeurs
- Créer un compte
- Demander l'approbation vendeur
- Ajouter des produits
- Gérer les commandes
Pour l'Admin
- Se connecter avec le compte admin
- Gérer les produits, catégories, vendeurs
- Suivre les commandes et statuts
- Gérer les tickets support
- Traiter les commissions (devis, paiements, fichiers)
- Configurer les options globales
📄 Statut Légal
Loi Facturation Électronique 2026
À partir du 1er septembre 2026, les fournisseurs devront envoyer des factures électroniques. Recommandé : utiliser Indy, Abby ou Tiime pour la gestion.
Documents Requis
- Mentions légales
- CGU (Conditions Générales d'Utilisation)
- CGV (Conditions Générales de Vente)
- Politique de confidentialité
- Page "À propos"
🔄 Déploiement Production
Options
- Backend : Railway, Fly.io, Render, ou serveur dédié
- Frontend : Vercel, Netlify, ou avec Nuxt Nitro
- Base de données : MongoDB Atlas
- Stockage fichiers : S3, Cloudinary (recommandé pour production)
Étapes
- Configurer les variables d'environnement production
- Builder le frontend :
bun run build - Builder le backend :
cargo build --release - Déployer sur les plateformes choisies
- Configurer le nom de domaine et SSL
🐛 Débogage
Commandes Utiles
# Vérifier les logs
./run.sh status
# Redémarrer tout
./run.sh restart
# Arrêter tout
./run.sh stop
# Reconstruire le frontend
./run.sh build
Problèmes Courants
- Port déjà utilisé : Changer
SERVER_PORToudevServer.port - MongoDB ne démarre pas : Vérifier que le dossier
mongo_dataexiste - Build frontend échoue : Supprimer
.nuxtetnode_modules, réinstaller
📈 Évolutions Futures
Améliorations Prévues
- Intégration Stripe complète
- Système de reviews/notes
- Programme fidélité
- Multi-langues
- Mode sombre
- Upload vers Cloudinary/S3
- API livraison (Colissimo, Mondial Relay)
- Emails transactionnels
- Analytics
- SEO amélioré
Fonctionnalités Suggérées
- Wishlist
- Comparateur de produits
- Ventes flash
- Codes promo
- Parrainage
- Abonnements
🤝 Contribuer
- Fork le projet
- Créer une branche (
git checkout -b feature/amazing-feature) - Commit les changements (
git commit -m 'Add amazing feature') - Push sur la branche (
git push origin feature/amazing-feature) - Ouvrir une Pull Request
📄 License
Propriété de Kathecat4 - Tous droits réservés.
🙏 Remerciements
- Merci à tous les contributeurs et testeurs
- Merci à la communauté Rust et Nuxt
- Merci aux artistes et créateurs qui font vivre cette plateforme
Dernière mise à jour : 2024
Contact : support@kathecat4.com