100 lines
6.3 KiB
Markdown
100 lines
6.3 KiB
Markdown
# ✅ التشيك لست الشاملة — diyaa.de
|
|
|
|
> نظرة عامة على **كل شي** لازم يتبنى، مقسّم لمراحل. للمهام القابلة للتنفيذ حالاً شوف [`TODO.md`](./TODO.md).
|
|
> `[ ]` = ناقص · `[~]` = جزئي/موجود ناقص · `[x]` = جاهز
|
|
|
|
---
|
|
|
|
## المرحلة 0 — الأساس (Foundation)
|
|
- [x] مشروع Next.js 14 + TS + Docker + Traefik + Makefile
|
|
- [x] i18n عربي/إنجليزي + ثيم فاتح/غامق
|
|
- [x] وضع coming-soon
|
|
- [x] تهيئة **Tailwind CSS** (نقل متغيّرات الثيم لإعداد Tailwind)
|
|
- [x] تهيئة **shadcn/ui** (`components/ui/`)
|
|
- [x] إعداد **PostgreSQL** بـ docker-compose + volume
|
|
- [x] إعداد **Prisma** + `schema.prisma` أولي + أول migration
|
|
- [x] `lib/db.ts` (Prisma client singleton)
|
|
|
|
## المرحلة 1 — المصادقة ولوحة التحكم (Admin core)
|
|
- [x] **Auth.js** (Credentials) + جدول User + كلمة سر مشفّرة
|
|
- [x] هيكل `app/admin/` محمي بالجلسة
|
|
- [x] Layout للوحة التحكم (سايدبار، عناصر مشتركة)
|
|
- [x] فورمات أساسية (React Hook Form + Zod) قابلة لإعادة الاستخدام
|
|
|
|
> ⚠️ **قرار 2026-08-05 (الخيار A):** الداتابيس صارت `Project` موحّد (PORTFOLIO/APP/WEBSITE/DESIGN) + `Melody` منفصل. المخطط القديم `Work/App` بينستبدل — شوف مهمة refactor بـ `TODO.md`.
|
|
|
|
## المرحلة 1.5 — إصلاحات معلّقة (من مراجعة 2026-08-05)
|
|
- [x] 🐞 إصلاح `.env.example`: `live` → `full` + اعتماد قيمة `maintenance`
|
|
- [x] إعادة تشكيل `schema.prisma` للخيار A (`Project` موحّد + `Melody`) + migration جديد
|
|
- [x] مواءمة CRUD التصنيفات مع `CategoryKind = PROJECT | MELODY`
|
|
|
|
## المرحلة 2 — التصنيفات (Categories)
|
|
- [x] موديل Category
|
|
- [x] CRUD تصنيفات من لوحة التحكم
|
|
- [x] مواءمة الأنواع للخيار A (PROJECT / MELODY)
|
|
- [ ] تصنيفات المشاريع (شعارات، بروشورات، مواقع، متاجر، أدوات AI…)
|
|
- [ ] تصنيفات الألحان (عربي، شرقي…)
|
|
|
|
## المرحلة 3 — رفع الملفات (Media)
|
|
- [x] `lib/upload.ts` — رفع لـ volume على الـ VPS
|
|
- [x] معالجة صور بـ `sharp` (webp + أحجام)
|
|
- [x] رفع صوت للألحان
|
|
- [x] التحقق من نوع/حجم الملف + أسماء ملفات آمنة
|
|
- [ ] **حذف الملف الفعلي عند حذف المحتوى** + `altText` للصور
|
|
- [x] مكوّن رفع قابل لإعادة الاستخدام (صور + صوت)
|
|
|
|
## المرحلة 4 — المشاريع: أعمال + مواقع + تصاميم (Project)
|
|
- [x] موديل `Project` موحّد + migration
|
|
- [x] **باك اند: إضافة/تعديل/حذف مشروع** + اختيار `type` + تصنيف + صور + تقنيات + `isFeatured`/`sortOrder`
|
|
- [x] **فرونت اند: صفحة الأعمال** (شبكة + فلترة بالتصنيف) + تفاصيل `[slug]`
|
|
- [x] **فرونت اند: صفحة المواقع** (Next.js/WordPress) + سكرين شوتس
|
|
- [x] **فرونت اند: صفحة التصاميم** (شعارات/بروشورات/هويات)
|
|
|
|
## المرحلة 5 — التطبيقات (Apps · type=APP)
|
|
- [x] **باك اند: إضافة تطبيق Swift** مع سكرين شوتس + حقول iOS
|
|
- [x] حقول: App Store / TestFlight / رقم الإصدار / رابط الدعم / سياسة خصوصية التطبيق
|
|
- [x] **فرونت اند: قسم التطبيقات** + معرض سكرين شوتس بصفحة التفاصيل
|
|
|
|
## المرحلة 6 — الألحان (Melodies)
|
|
- [x] موديل Melody + migration
|
|
- [x] **باك اند: إضافة لحن جديد** + تصنيف + ملف صوت + غلاف + سماح/منع تحميل
|
|
- [x] **فرونت اند: قسم الألحان** + **مشغّل صوت** قابل لإعادة الاستخدام
|
|
- [x] المشغّل: تشغيل/إيقاف + تقديم/تأخير + مستوى صوت + مدة + تحميل اختياري
|
|
- [x] تصنيفات الألحان (عربي/شرقي) بالفلترة
|
|
|
|
## المرحلة 7 — الإيميلات و SMTP
|
|
- [x] `lib/email.ts` — Nodemailer + إعداد **SMTP**
|
|
- [x] قوالب **React Email** (تأكيد تواصل، تنبيه للمالك) + قالب نصي بديل
|
|
- [x] ربط نموذج التواصل → حفظ بالداتابيس + إرسال إيميل
|
|
- [x] **Honeypot + Rate limiting** لنموذج التواصل
|
|
- [x] متغيّرات SMTP بـ `.env.example`
|
|
|
|
## المرحلة 8 — الصفحات الرسمية
|
|
- [x] سياسة الخصوصية (ar/en)
|
|
- [x] شروط الاستخدام (ar/en)
|
|
- [x] **Impressum** (إلزامي قانونياً بألمانيا — دومين `.de`)
|
|
- [x] روابط الصفحات بالـ footer
|
|
|
|
## المرحلة 9 — الاحصائيات (Analytics) — عدّادات داخلية أولاً
|
|
- [x] عدّادات داخلية بسيطة: زيارات الصفحات، فتح المشاريع، تشغيل الألحان، نقر روابط المشاريع، عدد رسائل التواصل
|
|
- [x] لوحة احصائيات مصغّرة داخل الأدمن
|
|
- [ ] (لاحقاً فقط لو لزم) Umami self-hosted للتحليلات المتقدمة
|
|
|
|
## المرحلة 10 — coming-soon و الصيانة
|
|
- [x] وضع coming-soon أساسي
|
|
- [ ] وضع **صيانة** منفصل (رسالة صيانة + رجوع للأدمن)
|
|
- [ ] تحكّم بالأوضاع من env بشكل موثّق
|
|
|
|
## المرحلة 11 — البنية التحتية والتشغيل
|
|
- [ ] تحديث **Makefile**: `db-up`, `migrate`, `seed`, `studio`, أوامر لوكال + سيرفر
|
|
- [x] docker-compose: خدمة postgres + volume البيانات
|
|
- [ ] تطبيق migrations تلقائياً عند النشر
|
|
- [ ] نسخ احتياطي للداتابيس (backup) موثّق
|
|
|
|
## عابرة لكل المراحل (Cross-cutting)
|
|
- [ ] كل شي **مكوّنات قابلة لإعادة الاستخدام**
|
|
- [ ] كل المكتبات **محليّة** (بدون CDN وقت التشغيل)
|
|
- [ ] الفرونت اند مطابق لمعايير **Tailwind + shadcn**
|
|
- [ ] تحديث `PROJECT-STATE.md` بعد كل خطوة كبيرة
|
|
- [ ] نقل المهام المنجزة من `TODO.md` لقسم Ready
|