Artisan D'art
Digital Platform for Artisanal Excellence
A complete ecosystem connecting traditional artisans with modern consumers.
Featuring a native iOS application, a powerful admin dashboard, and a robust API backend —
all designed to preserve and promote artisanal craftsmanship.
3
Platforms
60+
API Endpoints
2
Languages
15+
Data Models
Executive Summary
What is Artisan D'art?
Artisan D'art is a full-stack digital marketplace that bridges traditional craftsmanship with modern technology,
enabling artisans to showcase their work, manage their business, and connect with customers worldwide.
MySQL
Relational Database
Platform Overview
📱
iOS Mobile App
Native SwiftUI application for customers and artisans to browse, discover, purchase, and manage artisanal products.
🖥️
Admin Dashboard
React-based control panel for administrators to manage artisans, articles, categories, badges, events, users, reports, and requests.
⚡
REST API Backend
Node.js/Express API powering both platforms with 60+ endpoints, JWT authentication, file uploads, push notifications, and geolocation.
Core Value Proposition
- Complete marketplace for handmade artisanal products
- Geolocation-based artisan discovery with interactive maps
- Multi-role system: Users, Artisans, Admins
- Bilingual support (English & French)
- Real-time push notifications via Firebase
- Review, rating, and social engagement system
- Event management with calendar integration
- Admin moderation and approval workflows
- Badge and verification system for trust
- Comprehensive analytics dashboard
Architecture
System Architecture
A modern three-tier architecture designed for scalability, maintainability, and 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
Technology Stack
📱 iOS Application
Swift 5
SwiftUI
MVVM
Coordinator Pattern
MapKit
Kingfisher
Lottie
Firebase FCM
CoreLocation
🖥️ Admin Dashboard
React 18
CoreUI 4
Redux
SCSS
Chart.js
Leaflet Maps
i18next
Axios
React Router 6
⚡ API Backend
Node.js
Express.js
Sequelize ORM
MySQL
JWT Auth
Multer
Nodemailer
Firebase Admin
Twilio SMS
Cron Jobs
Data Model Overview
| Entity |
Key Fields |
Relationships |
| 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 |
Mobile Application
iOS App — User Experience
A native SwiftUI application delivering a premium, fluid experience for discovering artisans and their craftsmanship.
🔐
Authentication & Account
- Email/phone login with JWT tokens
- Sign up with profile photo upload
- OTP-based email verification
- Forgot password with SMS OTP (Twilio)
- Password reset flow
- Session management & auto-logout
- Account upgrade (User → Artisan)
- Account archival/deletion
🔍
Discovery & Search
- Global search for articles & artisans
- Advanced filtering by category
- Filter by artisan type (Artisan/Shop)
- Price range filtering (min/max)
- Geolocation-based nearby discovery
- Distance-based filtering
- Infinite scroll pagination
- Real-time search results
🛍️
Article Browsing
- Featured/top articles homepage
- Most viewed, recent, top-rated sections
- Image gallery carousel with pagination
- Price display with promotion badges
- Star rating system (1-5 stars)
- Comments and reviews section
- Favorite/wishlist functionality
- View count tracking
👤
Artisan Profiles
- Rich artisan profiles with galleries
- Map showing artisan location
- Subscribe/follow artisans
- View artisan's product catalog
- Report inappropriate profiles
- Contact information display
- Subscription counter
- Verified badge display
📅
Events & Calendar
- Browse upcoming & past events
- Event details with image gallery
- Add events to personal calendar
- Location and distance display
- Date/time information
- Firebase push notification subscriptions
- Search events by title or location
⚙️
Settings & Preferences
- Profile editing (name, photo)
- Dark mode toggle
- Language selection (EN/FR)
- Push notification management
- Account upgrade request
- About & help sections
- Accessibility options
- Secure logout
Artisan-Only Features (After Account Upgrade)
📦
Article Management
Multi-step form to add articles with bilingual names, descriptions, galleries (up to 5 images), pricing, category, and promotions.
✏️
Edit & Archive
Update existing articles, change photos, adjust promotions and pricing, or archive items no longer available.
📊
Statistics
Track article views, ratings, and engagement metrics to understand customer interest and optimize offerings.
Administration
Admin Dashboard — Control Center
A premium React-based admin panel providing complete control over the entire platform with analytics, content moderation, and user management.
📊
Analytics Dashboard
Welcome banner, stat cards, line charts, doughnut charts, recent artisans table, category breakdowns.
👨🎨
Artisan CRUD
Create, view, update artisans with map location picker, gallery uploads, and badge assignment.
📝
Article CRUD
Full article management with bilingual content, pricing, promotions, categories, and image galleries.
🏷️
Category CRUD
Create and manage product categories with bilingual titles and images.
🏅
Badge System
Create badges with bilingual titles/descriptions, assign to trusted artisans.
📅
Event Management
Create events with dates, locations, map integration, galleries, and bilingual content.
📋
Request Workflow
Review and approve/refuse user upgrade requests and article submissions.
🚩
Content Moderation
Review reports, mark as handled, delete inappropriate comments, manage user safety.
CRUD Operations Matrix
| Entity |
Create |
Read |
Update |
Delete |
Archive |
Verify |
Search |
Filter |
| Artisans | ✓ | ✓ | ✓ | ✗ | ✓ | ✓ | ✓ | ✓ |
| Articles | ✓ | ✓ | ✓ | ✗ | ✓ | ✓ | ✓ | ✓ |
| Categories | ✓ | ✓ | ✓ | ✓ | ✓ | ✗ | ✓ | ✗ |
| Badges | ✓ | ✓ | ✓ | ✓ | ✗ | ✗ | ✓ | ✗ |
| Events | ✓ | ✓ | ✓ | ✓ | ✗ | ✗ | ✓ | ✗ |
| Users | ✗ | ✓ | ✗ | ✗ | ✓ | ✗ | ✓ | ✗ |
| Reports | ✗ | ✓ | ✓ | ✓ | ✗ | ✗ | ✗ | ✓ |
| Requests | ✗ | ✓ | ✓ | ✗ | ✗ | ✗ | ✗ | ✓ |
Dashboard Features
- Token-based admin authentication
- Multi-admin account support
- Responsive design (mobile & desktop)
- Language switcher (EN/FR)
- Skeleton loading states
- Debounced search (2s delay)
- Pagination across all lists
- Image upload with preview
- Leaflet map integration
- Confirmation dialogs for actions
Backend
API Backend — 60+ Endpoints
A robust Node.js/Express REST API with JWT authentication, role-based access control, file uploads, push notifications, and comprehensive data management.
🔐 Authentication (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
📅 Events (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 (Ratings, Comments, Favorites)
POST/api/ratings/:articleId/
POST/api/comments/:articleId/
POST/api/favorites/:articleId/
POST/api/subscribers/
POST/api/calendars/
🚩 Moderation (Reports & Requests)
POST/api/reports/
GET/api/reports/
PATCH/api/reports/:id
POST/api/requests/create
POST/api/requests/response
GET/api/requests/
🏷️ Categories & 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
Backend Capabilities
🔑 Security
JWT tokens, BCrypt hashing, role-based middleware, CORS
📧 Email
Nodemailer SMTP, verification codes, password reset emails
📲 SMS & Push
Twilio OTP, Firebase Cloud Messaging, topic subscriptions
⏰ Cron Jobs
Scheduled event reminders, daily at 10 AM UTC check
Why Artisan D'art
Key Differentiators
What makes Artisan D'art a premium, production-ready platform.
🌍 Full Bilingual Support
Every piece of content — articles, categories, badges, events — supports both French and English with seamless language switching across iOS and admin dashboard.
📍 Geolocation-Powered Discovery
Interactive maps with Leaflet (admin) and MapKit (iOS), Nominatim geocoding, distance-based filtering, and location-aware artisan discovery.
🔄 Approval Workflow
Complete request/approval system: users request artisan status, artisans request article publication, admins review and approve/refuse with full audit trail.
🛡️ Content Moderation
Report system for comments and artisan profiles, admin review panel, mark as handled, delete inappropriate content — keeping the platform safe.
🏅 Trust & Verification
Badge system (Master Artisan, Certified, Rising Talent), admin verification status, visual trust indicators throughout the platform.
🔔 Real-Time Notifications
Firebase Cloud Messaging push notifications, topic-based subscriptions (follow artisans, save events), scheduled daily event reminders via cron jobs.
Platform at a Glance
Ready to Deploy. Ready to Scale.
Artisan D'art is a complete, production-ready platform built with modern technologies, clean architecture, and best practices. From database to mobile screen — every layer is crafted with care.
Artisan D'art — Where Tradition Meets Technology
This document was prepared as a complete portfolio showcase of the Artisan D'art platform.
All rights reserved © 2024