Logo Lanfrica

ddmstore01-afk/ddm-store

Domaine:

socioeconomic

Type de record:

software
Créateur:
ddm
Hôte:
Complete e-commerce website with Algerian payment methods # 🛍️ DDM Store - متجر إلكتروني جزائري ## نظرة عامة Ecommerce platform كاملة ومتكاملة للتجارة الإلكترونية في الجزائر مع دعم 3 طرق دفع. ## المميزات الرئيسية ✅ **نظام المستخدمين** - تسجيل حساب جديد - تسجيل دخول آمن مع JWT - إدارة الملف الشخصي - تشفير كلمات المرور ✅ **نظام المنتجات** - عرض جميع المنتجات - البحث والفلترة حسب الفئة - إدارة المخزون ✅ **سلة التسوق** - إضافة المنتجات للسلة - تعديل الكمية - حساب السعر النهائي ✅ **نظام الطلبات** - إنشاء وتتبع الطلبات - عرض تاريخ الطلبات ✅ **طرق الدفع الثلاثة** - 💳 بطاقة بنكية (Stripe) - 📮 البريد الجزائري (Bpost) - 🏪 الدفع عند الاستلام (COD) ✅ **الأمان** - Authentication مع JWT - تشفير البيانات الحساسة - حماية من الثغرات الشائعة ## البنية التقنية ### Backend - **Framework**: Express.js - **Database**: MongoDB - **Authentication**: JWT - **Payment**: Stripe API - **Email**: NodeMailer ### Frontend - **Library**: React - **Routing**: React Router v6 - **Styling**: CSS3 - **State Management**: Context API ## التثبيت والتشغيل ### 1️⃣ تثبيت Backend ```bash cd backend npm install ``` **أنشئ ملف `.env`:** ``` PORT=5000 MONGODB_URI=mongodb+srv://user:password@cluster.mongodb.net JWT_SECRET=your_super_secret_key_here JWT_EXPIRE=7d STRIPE_SECRET_KEY=sk_test_your_key STRIPE_PUBLIC_KEY=pk_test_your_key CLIENT_URL=localhost NODE_ENV=development ``` **شغّل الـ Backend:** ```bash npm run dev ``` ### 2️⃣ تثبيت Frontend ```bash cd frontend npm install ``` **شغّل الـ Frontend:** ```bash npm start ``` ## استخدام قاعدة البيانات MongoDB ### الخطوة 1: أنشئ حساب مجاني على MongoDB Atlas - اذهب إلى mongodb.com - أنشئ حساب مجاني - أنشئ Cluster جديد ### الخطوة 2: احصل على connection string ``` mongodb+srv://username:password@cluster.mongodb.net ``` ### الخطوة 3: ضع الـ connection string في ملف `.env` ## إضافة منتجات تجريبية استخدم Postman أو cURL لإضافة منتجات: ```bash curl -X POST localhost \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Content-Type: a …