Artisan D'art
Plateforme Numérique pour l'Excellence Artisanale
Un écosystème complet connectant les artisans traditionnels aux consommateurs modernes.
Comprenant une application iOS native, un puissant tableau de bord d'administration et un backend API robuste —
tous conçus pour préserver et promouvoir le savoir-faire artisanal.
3
Plateformes
60+
Endpoints API
2
Langues
15+
Modèles de Données
Résumé Exécutif
Qu'est-ce qu'Artisan D'art ?
Artisan D'art est une marketplace numérique full-stack qui relie l'artisanat traditionnel à la technologie moderne,
permettant aux artisans de présenter leur travail, gérer leur activité et se connecter avec des clients du monde entier.
iOS
Application Mobile Native
React
Tableau de Bord Admin
MySQL
Base de Données Relationnelle
Aperçu de la Plateforme
📱
Application iOS Mobile
Application SwiftUI native permettant aux clients et aux artisans de parcourir, découvrir, acheter et gérer des produits artisanaux.
🖥️
Tableau de Bord Admin
Panneau de contrôle basé sur React pour les administrateurs gérant les artisans, articles, catégories, badges, événements, utilisateurs, rapports et demandes.
⚡
Backend REST API
API Node.js/Express alimentant les deux plateformes avec 60+ endpoints, authentification JWT, téléchargements de fichiers, notifications push et géolocalisation.
Proposition de Valeur Principale
- Marketplace complète pour les produits artisanaux faits main
- Découverte d'artisans par géolocalisation avec des cartes interactives
- Système multi-rôles : Utilisateurs, Artisans, Admins
- Support bilingue (Anglais & Français)
- Notifications push en temps réel via Firebase
- Système d'avis, de notation et d'engagement social
- Gestion d'événements avec intégration de calendrier
- Modération admin et flux d'approbation
- Système de badges et de vérification pour la confiance
- Tableau de bord analytique complet
Architecture
Architecture Système
Une architecture moderne à trois niveaux conçue pour la scalabilité, la maintenabilité et la performance.
📱 iOS App
SwiftUI + MVVM
⟷
⚡ REST API
Node.js + Express
⟷
🗄️ MySQL
Sequelize ORM
🖥️ Admin Dashboard
React + CoreUI
⟷
⚡ REST API
Node.js + Express
⟷
📁 File Storage
/uploads
Stack Technologique
📱 Application iOS
Swift 5
SwiftUI
MVVM
Coordinator Pattern
MapKit
Kingfisher
Lottie
Firebase FCM
CoreLocation
🖥️ Tableau de Bord Admin
React 18
CoreUI 4
Redux
SCSS
Chart.js
Leaflet Maps
i18next
Axios
React Router 6
⚡ Backend API
Node.js
Express.js
Sequelize ORM
MySQL
JWT Auth
Multer
Nodemailer
Firebase Admin
Twilio SMS
Cron Jobs
Aperçu du Modèle de Données
| Entité |
Champs Clés |
Relations |
| User | name, email, phone, password, picture, role, verified | → Artisan, Comments, Ratings, Favorites, Subscriptions |
| Artisan | type, verified, archived, lat/lng, location, badge | → User, Articles, Gallery, Subscribers, Badge |
| Article | name (FR/EN), description (FR/EN), price, promotion | → Artisan, Category, Comments, Ratings, Gallery |
| Category | title (FR/EN), image | → Articles |
| Badge | title (FR/EN), description (FR/EN), picture | → Artisans |
| Event | title (FR/EN), dates, description (FR/EN), location, lat/lng | → Gallery, Calendar |
| Request | type, status (pending/success/refused/canceled) | → User, Article |
| Report | status (handled/unhandled) | → Reporter, Comment, Artisan |
Application Mobile
Application iOS — Expérience Utilisateur
Une application SwiftUI native offrant une expérience premium et fluide pour découvrir les artisans et leur savoir-faire.
🔐
Authentification & Compte
- Connexion email/téléphone avec tokens JWT
- Inscription avec téléchargement de photo de profil
- Vérification email par OTP
- Mot de passe oublié par SMS OTP (Twilio)
- Flux de réinitialisation du mot de passe
- Gestion de session & déconnexion automatique
- Mise à niveau du compte (Utilisateur → Artisan)
- Archivage/suppression du compte
🔍
Découverte & Recherche
- Recherche globale d'articles & d'artisans
- Filtrage avancé par catégorie
- Filtrage par type d'artisan (Artisan/Boutique)
- Filtrage par fourchette de prix (min/max)
- Découverte des artisans proches par géolocalisation
- Filtrage par distance
- Pagination avec défilement infini
- Résultats de recherche en temps réel
🛍️
Navigation des Articles
- Articles en vedette/populaires en page d'accueil
- Sections les plus vues, récentes, mieux notées
- Carrousel de galerie d'images avec pagination
- Affichage des prix avec badges de promotion
- Système de notation par étoiles (1-5 étoiles)
- Section commentaires et avis
- Fonctionnalité favoris/liste de souhaits
- Suivi du nombre de vues
👤
Profils d'Artisans
- Profils d'artisans enrichis avec galeries
- Carte montrant la localisation de l'artisan
- S'abonner/suivre des artisans
- Voir le catalogue de produits de l'artisan
- Signaler les profils inappropriés
- Affichage des informations de contact
- Compteur d'abonnés
- Affichage du badge de vérification
📅
Événements & Calendrier
- Parcourir les événements à venir & passés
- Détails de l'événement avec galerie d'images
- Ajouter des événements au calendrier personnel
- Affichage de la localisation et de la distance
- Informations de date/heure
- Abonnements aux notifications push Firebase
- Rechercher des événements par titre ou localisation
⚙️
Paramètres & Préférences
- Modification du profil (nom, photo)
- Basculement du mode sombre
- Sélection de la langue (EN/FR)
- Gestion des notifications push
- Demande de mise à niveau du compte
- Sections à propos & aide
- Options d'accessibilité
- Déconnexion sécurisée
Fonctionnalités Réservées aux Artisans (Après Mise à Niveau du Compte)
📦
Gestion des Articles
Formulaire multi-étapes pour ajouter des articles avec des noms et descriptions bilingues, des galeries (jusqu'à 5 images), les prix, la catégorie et les promotions.
✏️
Modifier & Archiver
Mettre à jour les articles existants, changer les photos, ajuster les promotions et les prix, ou archiver les articles qui ne sont plus disponibles.
📊
Statistiques
Suivre les vues d'articles, les notations et les métriques d'engagement pour comprendre l'intérêt des clients et optimiser les offres.
Administration
Tableau de Bord Admin — Centre de Contrôle
Un panneau d'administration premium basé sur React offrant un contrôle complet sur l'ensemble de la plateforme avec des analyses, de la modération de contenu et de la gestion des utilisateurs.
📊
Tableau de Bord Analytique
Bannière d'accueil, cartes de statistiques, graphiques linéaires, graphiques en anneau, tableau des artisans récents, répartitions par catégorie.
👨🎨
CRUD Artisans
Créer, voir, mettre à jour des artisans avec sélecteur de localisation sur carte, téléchargements de galerie et attribution de badges.
📝
CRUD Articles
Gestion complète des articles avec contenu bilingue, prix, promotions, catégories et galeries d'images.
🏷️
CRUD Catégories
Créer et gérer des catégories de produits avec des titres bilingues et des images.
🏅
Système de Badges
Créer des badges avec des titres/descriptions bilingues, attribuer aux artisans de confiance.
📅
Gestion des Événements
Créer des événements avec des dates, des localisations, l'intégration de cartes, des galeries et du contenu bilingue.
📋
Flux de Demandes
Examiner et approuver/refuser les demandes de mise à niveau des utilisateurs et les soumissions d'articles.
🚩
Modération du Contenu
Examiner les rapports, marquer comme traité, supprimer les commentaires inappropriés, gérer la sécurité des utilisateurs.
Matrice des Opérations CRUD
| Entité |
Créer |
Lire |
Modifier |
Supprimer |
Archiver |
Vérifier |
Rechercher |
Filtrer |
| Artisans | ✓ | ✓ | ✓ | ✗ | ✓ | ✓ | ✓ | ✓ |
| Articles | ✓ | ✓ | ✓ | ✗ | ✓ | ✓ | ✓ | ✓ |
| Catégories | ✓ | ✓ | ✓ | ✓ | ✓ | ✗ | ✓ | ✗ |
| Badges | ✓ | ✓ | ✓ | ✓ | ✗ | ✗ | ✓ | ✗ |
| Événements | ✓ | ✓ | ✓ | ✓ | ✗ | ✗ | ✓ | ✗ |
| Utilisateurs | ✗ | ✓ | ✗ | ✗ | ✓ | ✗ | ✓ | ✗ |
| Rapports | ✗ | ✓ | ✓ | ✓ | ✗ | ✗ | ✗ | ✓ |
| Demandes | ✗ | ✓ | ✓ | ✗ | ✗ | ✗ | ✗ | ✓ |
Fonctionnalités du Tableau de Bord
- Authentification admin basée sur les tokens
- Support multi-comptes administrateurs
- Design responsive (mobile & bureau)
- Sélecteur de langue (EN/FR)
- États de chargement skeleton
- Recherche anti-rebond (délai de 2s)
- Pagination sur toutes les listes
- Téléchargement d'images avec aperçu
- Intégration de carte Leaflet
- Boîtes de dialogue de confirmation pour les actions
Backend
Backend API — 60+ Endpoints
Une API REST Node.js/Express robuste avec authentification JWT, contrôle d'accès basé sur les rôles, téléchargements de fichiers, notifications push et gestion complète des données.
🔐 Authentification (8 endpoints)
POST/api/users/signup
POST/api/users/login
POST/api/users/send-otp
POST/api/users/verify-otp
POST/api/users/change-forgot-password
GET/api/users/verify/:code/:id
GET/api/users/resend-verification
POST/api/admin/login
👨🎨 Artisans (8 endpoints)
POST/api/artisans/
POST/api/artisans/profile/:id
GET/api/artisans/
GET/api/artisans/:id
PUT/api/artisans/v1/admin-update/:id
PUT/api/artisans/:id
PUT/api/artisans/:id/:badge_id
PATCH/api/artisans/:id (revoke badge)
📝 Articles (15 endpoints)
POST/api/articles/v1/create-by-admin
POST/api/articles/home-page
GET/api/articles/most-viewed
GET/api/articles/most-recent
GET/api/articles/top-rated
GET/api/articles/top-promoted
PUT/api/articles/:id/update
DEL/api/articles/:id
📅 Événements (7 endpoints)
POST/api/events/create
GET/api/events/all
GET/api/events/findAll
GET/api/events/:id
PUT/api/events/:id
DEL/api/events/:id
⭐ Social (Notations, Commentaires, Favoris)
POST/api/ratings/:articleId/
POST/api/comments/:articleId/
POST/api/favorites/:articleId/
POST/api/subscribers/
POST/api/calendars/
🚩 Modération (Rapports & Demandes)
POST/api/reports/
GET/api/reports/
PATCH/api/reports/:id
POST/api/requests/create
POST/api/requests/response
GET/api/requests/
🏷️ Catégories & Badges
POST/api/categories/create-new
GET/api/categories/v1/all
PUT/api/categories/v1/:id
POST/api/badges/v1/create
GET/api/badges/
PUT/api/badges/:id
Capacités du Backend
🔑 Sécurité
Tokens JWT, hachage BCrypt, middleware basé sur les rôles, CORS
📧 Email
Nodemailer SMTP, codes de vérification, emails de réinitialisation de mot de passe
📲 SMS & Push
OTP Twilio, Firebase Cloud Messaging, abonnements aux sujets
⏰ Tâches Planifiées
Rappels d'événements planifiés, vérification quotidienne à 10h UTC
Pourquoi Artisan D'art
Différenciateurs Clés
Ce qui fait d'Artisan D'art une plateforme premium, prête pour la production.
🌍 Support Bilingue Complet
Chaque contenu — articles, catégories, badges, événements — supporte le français et l'anglais avec un basculement de langue fluide sur iOS et le tableau de bord admin.
📍 Découverte par Géolocalisation
Cartes interactives avec Leaflet (admin) et MapKit (iOS), géocodage Nominatim, filtrage par distance et découverte d'artisans sensible à la localisation.
🔄 Flux d'Approbation
Système complet de demande/approbation : les utilisateurs demandent le statut d'artisan, les artisans demandent la publication d'articles, les admins examinent et approuvent/refusent avec un audit complet.
🛡️ Modération du Contenu
Système de signalement pour les commentaires et profils d'artisans, panneau de révision admin, marquer comme traité, supprimer le contenu inapproprié — gardant la plateforme sûre.
🏅 Confiance & Vérification
Système de badges (Maître Artisan, Certifié, Talent Émergent), statut de vérification admin, indicateurs visuels de confiance sur toute la plateforme.
🔔 Notifications en Temps Réel
Notifications push Firebase Cloud Messaging, abonnements basés sur des sujets (suivre des artisans, sauvegarder des événements), rappels d'événements quotidiens planifiés via des tâches cron.
La Plateforme en Un Coup d'Œil
Prêt à Déployer. Prêt à Scaler.
Artisan D'art est une plateforme complète, prête pour la production, construite avec des technologies modernes, une architecture propre et les meilleures pratiques. De la base de données à l'écran mobile — chaque couche est conçue avec soin.
Artisan D'art — Là Où la Tradition Rencontre la Technologie
Ce document a été préparé comme une vitrine complète du portfolio de la plateforme Artisan D'art.
Tous droits réservés © 2024