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.
iOS
Native Mobile App
React
Admin Dashboard
Node.js
REST API Backend
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
Username, email, phone, password, picture, role, verified→ Artisan, Comments, Ratings, Favorites, Subscriptions
Artisantype, verified, archived, lat/lng, location, badge→ User, Articles, Gallery, Subscribers, Badge
Articlename (FR/EN), description (FR/EN), price, promotion→ Artisan, Category, Comments, Ratings, Gallery
Categorytitle (FR/EN), image→ Articles
Badgetitle (FR/EN), description (FR/EN), picture→ Artisans
Eventtitle (FR/EN), dates, description (FR/EN), location, lat/lng→ Gallery, Calendar
Requesttype, status (pending/success/refused/canceled)→ User, Article
Reportstatus (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

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

60+
API Endpoints
15+
Data Models
30+
Screens
20+
Admin Pages

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