Ilo/design/data.jsx
2026-05-02 20:01:30 +03:30

114 lines
11 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// All static fixture data for the prototype, in Persian.
// Names are realistic Iranian names; courses are realistic teacher topics.
const NAV = [
{ id: 'home', fa: 'خانه', en: 'Home', icon: 'home' },
{ id: 'courses', fa: 'دوره‌ها', en: 'Courses', icon: 'book', badge: '۳' },
{ id: 'students', fa: 'دانشجویان', en: 'Students', icon: 'users' },
{ id: 'live', fa: 'کلاس زنده', en: 'Live', icon: 'video' },
{ id: 'quiz', fa: 'آزمون‌ها', en: 'Quizzes', icon: 'quiz' },
{ id: 'cert', fa: 'گواهی‌نامه', en: 'Certificates', icon: 'cert' },
{ id: 'chat', fa: 'گفت‌وگو', en: 'Chat', icon: 'chat', badge: '۷' },
];
const NAV_GROW = [
{ id: 'site', fa: 'سایت من', en: 'My Site', icon: 'store' },
{ id: 'mkt', fa: 'بازاریابی', en: 'Marketing', icon: 'megaphone' },
{ id: 'analytics',fa: 'تحلیل‌ها', en: 'Analytics', icon: 'chart' },
];
// dashboard KPIs
const KPIS = [
{ id: 'rev', label: 'درآمد این ماه', value: '۲۸٬۴۵۰٬۰۰۰', unit: 'تومان', delta: '+۱۲٪', good: true, spark: [3,4,4,5,6,5,7,8,7,9,10,12] },
{ id: 'students', label: 'دانشجوی فعال', value: '۱٬۲۸۴', unit: 'نفر', delta: '+۴۸', good: true, spark: [4,4,5,6,6,7,8,8,9,10,11,11] },
{ id: 'progress', label: 'میانگین پیشرفت', value: '۶۸', unit: '٪', delta: '+۳٪', good: true, spark: [5,5,6,6,6,7,7,7,8,8,8,9] },
{ id: 'rating', label: 'رضایت دانشجویان', value: '۴٫۸', unit: 'از ۵', delta: '+۰٫۲', good: true, spark: [7,7,8,8,8,9,9,9,9,9,10,10] },
];
// course list (instructor's catalog)
const COURSES = [
{ id: 'c1', title: 'مبانی طراحی رابط کاربری', titleEn: 'UI Design Fundamentals',
students: 412, lessons: 38, hours: 12.5, status: 'published', progress: 100,
revenue: '۱۸٬۲۰۰٬۰۰۰', price: '۲٬۴۵۰٬۰۰۰', rating: 4.9, color: 'oklch(0.78 0.12 40)' },
{ id: 'c2', title: 'تایپوگرافی فارسی در وب', titleEn: 'Persian Web Typography',
students: 287, lessons: 24, hours: 8.0, status: 'published', progress: 100,
revenue: '۹٬۸۵۰٬۰۰۰', price: '۱٬۸۰۰٬۰۰۰', rating: 4.7, color: 'oklch(0.74 0.12 200)' },
{ id: 'c3', title: 'کارگاه فیگما برای مبتدیان', titleEn: 'Figma Workshop for Beginners',
students: 0, lessons: 16, hours: 4.5, status: 'draft', progress: 64,
revenue: '—', price: '—', rating: null, color: 'oklch(0.78 0.10 140)' },
];
// learning path / lessons for the course-builder
const MODULES = [
{ id: 'm1', title: 'پیش‌گفتار و آشنایی', expanded: true, lessons: [
{ id: 'l1', title: 'خوش‌آمدگویی به دوره', type: 'video', duration: '۳:۲۰', status: 'published', preview: true },
{ id: 'l2', title: 'پیش‌نیازها و ابزارها', type: 'video', duration: '۸:۴۵', status: 'published' },
{ id: 'l3', title: 'منابع و فایل‌های دوره', type: 'pdf', duration: '۵ صفحه', status: 'published' },
]},
{ id: 'm2', title: 'اصول طراحی بصری', expanded: true, lessons: [
{ id: 'l4', title: 'سلسله‌مراتب بصری', type: 'video', duration: '۱۴:۲۰', status: 'published' },
{ id: 'l5', title: 'تئوری رنگ کاربردی', type: 'video', duration: '۱۸:۰۵', status: 'published' },
{ id: 'l6', title: 'تمرین: پالت رنگ شخصی', type: 'task', duration: '۳۰ دقیقه', status: 'published' },
{ id: 'l7', title: 'گرید و سیستم لی‌اوت', type: 'video', duration: '۱۶:۴۰', status: 'draft' },
{ id: 'l8', title: 'آزمون فصل دوم', type: 'quiz', duration: '۱۰ سؤال', status: 'draft' },
]},
{ id: 'm3', title: 'تایپوگرافی', expanded: false, lessons: [
{ id: 'l9', title: 'انتخاب فونت مناسب', type: 'video', duration: '۱۲:۱۰', status: 'published' },
{ id: 'l10', title: 'تنظیم ارتفاع خط و فاصله', type: 'video', duration: '۹:۳۰', status: 'published' },
{ id: 'l11', title: 'تایپوگرافی فارسی', type: 'video', duration: '۱۵:۲۲', status: 'draft' },
]},
{ id: 'm4', title: 'کامپوننت‌ها و الگوها', expanded: false, lessons: [
{ id: 'l12', title: 'دکمه‌ها و فرم‌ها', type: 'video', duration: '۲۰:۰۰', status: 'draft' },
{ id: 'l13', title: 'ناوبری و منو', type: 'video', duration: '۱۸:۱۵', status: 'draft' },
]},
{ id: 'm5', title: 'پروژه پایانی', expanded: false, lessons: [
{ id: 'l14', title: 'بریف پروژه', type: 'pdf', duration: '۸ صفحه', status: 'draft' },
{ id: 'l15', title: 'ارائه و دریافت گواهی', type: 'task', duration: '—', status: 'draft' },
]},
];
// students / CRM list
const STUDENT_COLORS = [
'oklch(0.72 0.10 30)', 'oklch(0.72 0.10 80)', 'oklch(0.72 0.10 140)',
'oklch(0.72 0.10 200)', 'oklch(0.72 0.10 260)', 'oklch(0.72 0.10 320)',
];
const STUDENTS = [
{ name: 'سارا محمدی', initials: 'س م', course: 'مبانی طراحی رابط کاربری', progress: 92, lastActive: '۲ ساعت پیش', joined: '۱۴۰۳/۰۹/۱۲', status: 'active', tag: 'پروموتر', spent: '۲٬۴۵۰٬۰۰۰' },
{ name: 'علی رضایی', initials: 'ع ر', course: 'تایپوگرافی فارسی در وب', progress: 64, lastActive: 'دیروز', joined: '۱۴۰۳/۰۸/۲۰', status: 'active', tag: 'فعال', spent: '۱٬۸۰۰٬۰۰۰' },
{ name: 'نگار حسینی', initials: 'ن ح', course: 'مبانی طراحی رابط کاربری', progress: 100,lastActive: '۳ روز پیش', joined: '۱۴۰۳/۰۷/۰۵', status: 'completed', tag: 'فارغ‌التحصیل', spent: '۲٬۴۵۰٬۰۰۰' },
{ name: 'محمد احمدی', initials: ا', course: 'مبانی طراحی رابط کاربری', progress: 28, lastActive: '۸ روز پیش', joined: '۱۴۰۳/۰۹/۲۸', status: 'at-risk', tag: 'ساکت', spent: '۲٬۴۵۰٬۰۰۰' },
{ name: 'مریم کریمی', initials: 'م ک', course: 'تایپوگرافی فارسی در وب', progress: 78, lastActive: 'امروز', joined: '۱۴۰۳/۰۸/۰۸', status: 'active', tag: 'پروموتر', spent: '۱٬۸۰۰٬۰۰۰' },
{ name: 'امیر صالحی', initials: 'ا ص', course: 'مبانی طراحی رابط کاربری', progress: 45, lastActive: 'دیروز', joined: '۱۴۰۳/۰۹/۲۲', status: 'active', tag: 'فعال', spent: '۲٬۴۵۰٬۰۰۰' },
{ name: 'زهرا اکبری', initials: ا', course: 'تایپوگرافی فارسی در وب', progress: 12, lastActive: '۱۴ روز پیش',joined: '۱۴۰۳/۰۹/۰۲', status: 'at-risk', tag: 'ساکت', spent: '۱٬۸۰۰٬۰۰۰' },
{ name: 'حسین مرادی', initials: 'ح م', course: 'مبانی طراحی رابط کاربری', progress: 86, lastActive: '۵ ساعت پیش', joined: '۱۴۰۳/۰۸/۱۵', status: 'active', tag: 'پروموتر', spent: '۲٬۴۵۰٬۰۰۰' },
{ name: 'فاطمه نوری', initials: 'ف ن', course: 'مبانی طراحی رابط کاربری', progress: 54, lastActive: '۲ روز پیش', joined: '۱۴۰۳/۰۹/۱۸', status: 'active', tag: 'فعال', spent: '۲٬۴۵۰٬۰۰۰' },
{ name: 'رضا قاسمی', initials: 'ر ق', course: 'تایپوگرافی فارسی در وب', progress: 100,lastActive: '۱ هفته پیش',joined: '۱۴۰۳/۰۷/۲۰', status: 'completed', tag: 'فارغ‌التحصیل', spent: '۱٬۸۰۰٬۰۰۰' },
{ name: 'الهام شریفی', initials: 'ا ش', course: 'مبانی طراحی رابط کاربری', progress: 70, lastActive: 'دیروز', joined: '۱۴۰۳/۰۸/۲۵', status: 'active', tag: 'فعال', spent: '۲٬۴۵۰٬۰۰۰' },
{ name: 'پوریا تقوی', initials: 'پ ت', course: 'مبانی طراحی رابط کاربری', progress: 8, lastActive: '۲۱ روز پیش',joined: '۱۴۰۳/۰۹/۰۵', status: 'at-risk', tag: 'خطر ریزش', spent: '۲٬۴۵۰٬۰۰۰' },
].map((s, i) => ({ ...s, id: 's' + (i + 1), color: STUDENT_COLORS[i % STUDENT_COLORS.length] }));
// timeline / activity feed for dashboard
const ACTIVITY = [
{ id: 'a1', t: '۹ دقیقه پیش', who: 'سارا محمدی', did: 'درس «سلسله‌مراتب بصری» را تکمیل کرد', course: 'مبانی طراحی', kind: 'lesson', color: 'oklch(0.72 0.10 30)' },
{ id: 'a2', t: '۲۲ دقیقه پیش', who: 'علی رضایی', did: 'پرسشی در گفت‌وگوی دوره مطرح کرد', course: 'تایپوگرافی فارسی', kind: 'chat', color: 'oklch(0.72 0.10 80)' },
{ id: 'a3', t: '۱ ساعت پیش', who: 'نگار حسینی', did: 'گواهی پایان دوره دریافت کرد 🎉', course: 'مبانی طراحی', kind: 'cert', color: 'oklch(0.72 0.10 140)' },
{ id: 'a4', t: '۲ ساعت پیش', who: 'حسین مرادی', did: 'دوره را خریداری کرد', course: 'مبانی طراحی', kind: 'sale', color: 'oklch(0.72 0.10 200)' },
{ id: 'a5', t: '۳ ساعت پیش', who: 'مریم کریمی', did: 'به آزمون فصل دوم نمره ۹۲ گرفت', course: 'تایپوگرافی فارسی', kind: 'quiz', color: 'oklch(0.72 0.10 260)' },
];
// upcoming live sessions
const LIVE = [
{ id: 'lv1', title: 'پرسش و پاسخ هفتگی', course: 'مبانی طراحی رابط کاربری', at: 'پنج‌شنبه، ۱۹:۰۰', registered: 84, soon: true },
{ id: 'lv2', title: 'کارگاه عملی فیگما', course: 'کارگاه فیگما', at: 'جمعه، ۱۰:۳۰', registered: 32, soon: false },
];
// inbox snippets
const INBOX = [
{ id: 'i1', name: 'پوریا تقوی', msg: 'سلام استاد، ویدیوی درس سوم باز نمی‌شود', t: '۵ د', unread: true, color: 'oklch(0.72 0.10 30)' },
{ id: 'i2', name: 'مریم کریمی', msg: 'ممنون از پاسختون! یه سوال دیگه...', t: '۴۲ د', unread: true, color: 'oklch(0.72 0.10 260)' },
{ id: 'i3', name: 'علی رضایی', msg: 'فایل تمرین رو فرستادم، لطفاً نگاه کنید', t: '۲ س', unread: true, color: 'oklch(0.72 0.10 80)' },
{ id: 'i4', name: 'فاطمه نوری', msg: 'تشکر بابت بازخورد دقیق ❤️', t: 'دیروز', unread: false, color: 'oklch(0.72 0.10 320)' },
];
window.DATA = { NAV, NAV_GROW, KPIS, COURSES, MODULES, STUDENTS, ACTIVITY, LIVE, INBOX };