نظام متكامل لإدارة التراخيص والاشتراكات مع واجهة إدارية للمشرفين فقط، مبني باستخدام React و Supabase.
هذا النظام مصمم للمشرفين فقط لإدارة التراخيص. المستخدمون النهائيون يستخدمون التراخيص المُنشأة في تطبيقاتك الخاصة من خلال API.
- ✅ تسجيل دخول آمن للمشرفين فقط
- ✅ تغيير كلمة المرور الإجباري عند أول تسجيل دخول
- ✅ إنشاء تراخيص بمدد مخصصة (بالأيام)
- ✅ تحديد عدد التفعيلات المسموحة لكل ترخيص
- ✅ مراقبة المستخدمين النشطين والتراخيص
- ✅ تفعيل/إلغاء تفعيل/حذف التراخيص
- ✅ عرض سجل كامل للمستخدمين وتراخيصهم
- ✅ إحصائيات شاملة
- ✅ تسجيل وتفعيل حساب بالبريد والاسم فقط
- ✅ تفعيل الترخيص عبر مفتاح بسيط
- ✅ الوصول للتطبيق حتى بدون إنترنت
- ✅ تتبع حالة الترخيص وتاريخ الانتهاء
- ✅ واجهة عربية جميلة وسهلة الاستخدام
- ✅ API كامل وموثق مع Edge Functions
- ✅ دعم الوصول غير المتصل (Offline)
- ✅ Row Level Security كامل
- ✅ توثيق شامل مع أمثلة كود جاهزة للنسخ
- ✅ سهولة الربط بأي تطبيق React
- Frontend: React 18 + TypeScript + Tailwind CSS
- Backend: Supabase (PostgreSQL + Edge Functions)
- المصادقة: Supabase Auth
- قاعدة البيانات: PostgreSQL مع RLS
- Icons: Lucide React
npm installتأكد من وجود ملف .env مع المتغيرات التالية:
VITE_SUPABASE_URL=your_supabase_url
VITE_SUPABASE_ANON_KEY=your_anon_keyاتبع التعليمات في ملف SETUP.md لإنشاء حساب المشرف الافتراضي:
بيانات الدخول الافتراضية:
- البريد الإلكتروني:
[email protected] - كلمة المرور:
357357
npm run devsrc/
├── components/
│ ├── AdminLoginForm.tsx # نموذج تسجيل دخول المشرف
│ ├── ChangePasswordModal.tsx # نافذة تغيير كلمة المرور
│ ├── AdminDashboard.tsx # لوحة إدارة التراخيص
│ └── Documentation.tsx # صفحة التوثيق الشاملة
├── lib/
│ ├── supabase.ts # إعداد Supabase Client
│ ├── auth.ts # خدمات المصادقة
│ └── license.ts # خدمات التراخيص
└── App.tsx # التطبيق الرئيسي
-
profiles: معلومات المستخدمين
id,email,full_name,created_at,updated_at
-
admin_users: المشرفين
id,user_id,password_changed,created_at
-
licenses: التراخيص
id,license_key,duration_days,max_activations,current_activations,is_active,notes
-
user_licenses: ربط المستخدمين بالتراخيص
id,user_id,license_id,activated_at,expires_at,is_active,last_validated
POST /functions/v1/activate-license
Body:
{
"licenseKey": "XXXXX-XXXXX-XXXXX-XXXXX"
}GET /functions/v1/validate-license
Headers:
Authorization: Bearer YOUR_TOKEN
راجع صفحة التوثيق داخل التطبيق للحصول على أمثلة كود كاملة وتعليمات مفصلة خطوة بخطوة.
import { createClient } from '@supabase/supabase-js';
const supabase = createClient('YOUR_URL', 'YOUR_KEY');
// التسجيل
async function signUp(email: string, password: string, fullName: string) {
const { data: authData } = await supabase.auth.signUp({
email,
password,
});
await supabase.from('profiles').insert({
id: authData.user.id,
email,
full_name: fullName,
});
}
// تفعيل الترخيص
async function activateLicense(licenseKey: string, userId: string) {
const { data: license } = await supabase
.from('licenses')
.select('*')
.eq('license_key', licenseKey)
.maybeSingle();
if (!license) return { success: false };
const expiresAt = new Date();
expiresAt.setDate(expiresAt.getDate() + license.duration_days);
await supabase.from('user_licenses').insert({
user_id: userId,
license_id: license.id,
expires_at: expiresAt.toISOString(),
});
return { success: true };
}- ✅ Row Level Security (RLS) مفعل على جميع الجداول
- ✅ المشرفون فقط يمكنهم الوصول للوحة الإدارة
- ✅ المستخدمون يرون تراخيصهم فقط
- ✅ تغيير كلمة المرور إجباري عند أول دخول
- ✅ التحقق من الترخيص عند كل وصول
- ✅ تشفير الاتصالات عبر HTTPS
- ✅ حماية من SQL Injection
- تصميم عربي كامل (RTL)
- واجهة حديثة وجميلة باستخدام Tailwind CSS
- استجابة كاملة لجميع الشاشات
- رسائل خطأ واضحة ومفيدة
- حالات تحميل سلسة
- تسجيل الدخول بالبيانات الافتراضية
- تغيير كلمة المرور المؤقتة
- إنشاء تراخيص جديدة
- مراقبة المستخدمين والتفعيلات
- إدارة التراخيص (تفعيل/إلغاء/حذف)
- التسجيل بالبريد الإلكتروني والاسم
- إدخال مفتاح الترخيص
- تفعيل الترخيص تلقائياً
- الوصول للتطبيق (متصل أو غير متصل)
- تتبع حالة الترخيص وتاريخ الانتهاء
- سجل الدخول بحساب المشرف
- أنشئ ترخيصاً جديداً
- تحقق من ظهوره في الجدول
- جرب تفعيل/إلغاء التفعيل
- راجع إحصائيات اللوحة
- استخدم مفتاح ترخيص صالح
- فعّل الترخيص لمستخدم جديد
- تحقق من التفعيل في لوحة الإدارة
- جرب التحقق من الترخيص
SETUP.md- دليل الإعداد التفصيليREADME.md- هذا الملف- صفحة التوثيق داخل التطبيق - أمثلة كود كاملة
للمشاكل الشائعة وحلولها، راجع قسم "استكشاف الأخطاء" في ملف SETUP.md.
هذا المشروع مفتوح المصدر ومتاح للاستخدام في مشاريعك الشخصية والتجارية.
ملاحظة: هذا النظام مصمم لإدارة التراخيص من قبل المشرفين. للمستخدمين النهائيين، قم بدمج API في تطبيقك الخاص باتباع التوثيق المتوفر.