Files
diyaa.de/docs/PROJECT-STATE.md
T

16 KiB

🗺️ الوضع الحالي للموقع — diyaa.de

الهدف من الملف: أي agent يقرأه بيعرف الوضع الحالي للموقع بدون ما يقرأ الكود. آخر تحديث: 2026-08-05


نظرة عامة بسطر

موقع Next.js 14 شخصي، ثنائي اللغة (عربي/إنجليزي)، حالياً بوضع coming-soon، منشور عبر Docker + Traefik على VPS خاص (STRATO). قاعدة PostgreSQL وPrisma ومصادقة الأدمن ومخطط Project/Melody وCRUD المشاريع والتطبيقات والألحان ورفع الوسائط وقسم الألحان العام ومشغّل الصوت ونموذج التواصل والصفحات الرسمية والإحصائيات الداخلية صارت مهيّأة.


الموجود فعلياً حالياً

الإطار والأدوات

  • Next.js 14.2 (App Router) + React 18 + TypeScript (strict).
  • إخراج standalone للنشر عبر Docker.
  • Tailwind CSS 3.4 مهيّأ عبر tailwind.config.js وpostcss.config.js، مع ربط ألوان وظلال وخطوط الثيم بمتغيّرات CSS الحالية.
  • shadcn/ui مهيّأ عبر components.json، مع مكوّنات UI محلية أساسية في components/ui/ وأداة cn في lib/utils.ts.
  • PostgreSQL 16 مضاف إلى docker-compose.yml مع volume دائم، شبكة داخلية، وفحص صحة.
  • Prisma 6.19 مضاف مع prisma/schema.prisma، migration أولى، وlib/db.ts كـ singleton.
  • Auth.js Credentials مضاف مع جلسات JWT، تشفير كلمات السر بـ bcryptjs، وmiddleware يحمي /admin/.
  • Admin layout مضاف مع سايدبار، ترويسة صفحات مشتركة، وفورم reusable مبني على React Hook Form وZod.
  • Categories CRUD مضاف داخل لوحة الأدمن مع تحقق Zod ودعم أنواع PROJECT / MELODY.
  • Project/Melody schema مضاف عبر migration جديدة، مع أنواع المشاريع وحقول التطبيقات وحقول الترتيب والنشر.
  • Project CRUD + public directories مضاف للمشاريع الأساسية والتطبيقات، مع صفحات الأعمال والمواقع والتصاميم والتطبيقات وفلترة حسب التصنيف وصفحات تفاصيل حسب slug.
  • Melody CRUD + public directory مضاف مع إدارة الصوت والغلاف والتصنيف والنشر والتحميل، وصفحات قائمة/تفاصيل عامة ومشغّل صوت reusable.
  • Media upload مضاف مع تخزين دائم على volume، معالجة الصور إلى WebP عبر sharp، وحفظ ملفات الصوت بصيغتها الأصلية، ومربوط بنماذج المشاريع والألحان.
  • Contact messaging مضاف مع نموذج عام ثنائي اللغة، حفظ ContactMessage، إرسال إشعار للمالك وتأكيد للمرسل عبر Nodemailer/SMTP، وقالب HTML بـ React Email مع بديل نصي.
  • Contact protection مضاف عبر Honeypot وتحديد المعدل بخمسة طلبات لكل عنوان مصدر خلال عشر دقائق.
  • Legal pages مضافة بالعربي والإنجليزي: الخصوصية، شروط الاستخدام، وImpressum، مع روابط في الفوتر وحقول الهوية القانونية من .env.
  • Internal analytics مضافة عبر AnalyticsEvent وendpoint محمي بالتحديد والتحقق، مع عدّادات للزيارات وفتح المشاريع وتشغيل الألحان ونقر الروابط ورسائل التواصل ولوحة أدمن مختصرة.
  • ترويسات أمان مضبوطة بـ next.config.js (Referrer-Policy, X-Frame-Options, nosniff, Permissions-Policy).
  • alias @/* → جذر المشروع (بـ tsconfig.json).

التنسيق (Styling) — ⚠️ الانتقال بدأ

  • Tailwind CSS شغّال عبر PostCSS، وtokens الثيم متاحة كألوان وظلال وخطوط ضمن tailwind.config.js.
  • مكوّنات shadcn/ui الأساسية مضافة محلياً وقابلة لإعادة الاستخدام؛ قواعد المكوّنات العامة الحالية ما زالت موجودة في app/globals.css كطبقة انتقالية بانتظار ترحيلها للـ utilities.
  • في نظام theme (فاتح/غامق) عبر [data-theme] ومتغيرات CSS + مكوّن ThemeToggle.

التعدّد اللغوي (i18n)

  • لغتان: ar و en (lib/i18n.ts).
  • المحتوى مخزّن كـ dictionaries: content/ar.ts، content/en.ts، بأنواع من content/types.ts.
  • اتجاه تلقائي RTL للعربي / LTR للإنجليزي.
  • بوضع coming-soon: بيُجبر الموقع على الإنجليزي فقط.

الإعدادات والأوضاع

  • كل الإعداد عبر متغيرات بيئة (lib/site.ts).
  • ثلاثة أوضاع معتمدة: NEXT_PUBLIC_SITE_MODE = coming-soon | maintenance | full؛ وضع الصيانة حالياً قيمة محجوزة إلى حين تنفيذ واجهته في T-14.
  • بيانات المالك: الاسم "Diyaa"، إيميل، LinkedIn، GitHub — كلها من env.

الصفحات الموجودة (app/)

  • app/[locale]/page.tsx — الرئيسية (Hero).
  • app/[locale]/about/page.tsx — نبذة.
  • app/[locale]/contact/page.tsx — تواصل مع نموذج حفظ وإرسال الرسائل.
  • app/[locale]/legal/ — الخصوصية، شروط الاستخدام، وImpressum بالعربي والإنجليزي.
  • app/admin/(protected)/analytics/page.tsx — ملخص الإحصائيات الداخلية لآخر 30 يوماً.
  • app/api/analytics/route.ts — endpoint تسجيل الأحداث العامة مع Zod وrate limiting.
  • app/[locale]/melodies/ — قائمة الألحان العامة مع فلترة التصنيفات وصفحات التفاصيل.
  • app/not-found.tsx — 404.
  • app/api/health/route.ts — health check للـ Docker.
  • app/robots.ts + app/sitemap.ts — SEO.
  • صور OG/Twitter/icon جاهزة.

المكوّنات الموجودة (components/)

SiteHeader · SiteFooter · HeroSection · ComingSoonPanel · BottomNav · ThemeToggle · LanguageSwitcher · ContactForm

النشر والبنية التحتية

  • Dockerfile متعدّد المراحل (deps → builder → runner) بمستخدم غير-root.
  • docker-compose.yml مربوط بشبكة Traefik خارجية، مع labels للـ HTTPS (Host(diyaa.de), websecure, LetsEncrypt).
  • Makefile بأوامر: build · start · stop · restart · logs · ps (مع فحص .env و COMPOSE_PROJECT_NAME).
  • healthcheck عبر /api/health.
  • سكربتات npm: dev · build · start · lint · typecheck · check.

الناقص (لسا ما تبنى)

المجال الحالة
Tailwind + shadcn/ui 🟡 Tailwind وshadcn/ui مهيّآن؛ ترحيل المكوّنات العامة من CSS القديم لسا ناقص
قاعدة بيانات (PostgreSQL + Prisma) 🟡 مخطط Project/Melody وmigration جاهزان؛ CRUD المحتوى وباقي الداتا ناقصان
باك اند / لوحة تحكم (Admin) 🟡 layout وdashboard وCRUD التصنيفات والمشاريع والتطبيقات والألحان جاهزة؛ إدارة التواصل وباقي المحتوى لسا ناقصة
مصادقة (Auth) للأدمن 🟡 Auth.js Credentials وحماية /admin/ جاهزان؛ إدارة المحتوى لسا ناقصة
معرض الأعمال + التصنيفات 🟡 Project CRUD والصفحات العامة للأعمال والمواقع والتصاميم جاهزة؛ المحتوى المنشور ناقص
قسم التطبيقات (Swift/Next.js) مع سكرين شوتس 🟡 CRUD وحقول iOS ومعرض السكرين شوتس جاهزين؛ محتوى التطبيقات المنشور ناقص
قسم الألحان + مشغّل + تصنيفات 🟡 CRUD وقائمة/تفاصيل عامة ومشغّل وفلترة جاهزة؛ المحتوى المنشور لسا ناقص
إيميلات + SMTP 🟡 التكامل والقوالب والنموذج جاهزة؛ يلزم وضع بيانات SMTP الحقيقية في .env
الاحصائيات (Analytics) 🟡 عدّادات داخلية وواجهة أدمن جاهزة؛ لا توجد تحليلات خارجية متقدمة
الصفحات الرسمية (سياسة الخصوصية، الشروط...) 🟡 الصفحات والروابط جاهزة؛ يلزم تعبئة بيانات الهوية ومراجعة النصوص قانونياً
رفع الملفات (صور/صوت) 🟡 API وvolume ومعالجة الصور ومكوّن الرفع وربطه بالمشاريع والألحان جاهز؛ حذف الملفات الفعلية لسا ناقص

🧭 خريطة المجلدات الحالية

diyaa.de/
├── app/
│   ├── [locale]/          # الصفحات المترجمة (home, about, contact, melodies)
│   ├── api/health/        # health check
│   ├── api/auth/          # Auth.js handlers
│   ├── api/upload/        # رفع ملفات محمي للأدمن
│   ├── api/uploads/       # تقديم الملفات المرفوعة
│   ├── admin/             # login + layout + dashboard محميان بالمصادقة
│   │   └── (protected)/categories/ # صفحات وإجراءات CRUD للتصنيفات
│   │   └── (protected)/projects/   # صفحات وإجراءات CRUD للمشاريع
│   │   └── (protected)/melodies/   # صفحات وإجراءات CRUD للألحان
│   ├── [locale]/work/     # الأعمال المنشورة + [slug]
│   ├── [locale]/apps/     # التطبيقات المنشورة + [slug]
│   ├── [locale]/websites/ # المواقع المنشورة + [slug]
│   ├── [locale]/designs/  # التصاميم المنشورة + [slug]
│   ├── globals.css        # متغيرات CSS + الثيم
│   ├── layout.tsx · robots.ts · sitemap.ts · not-found.tsx
├── components/            # مكوّنات الواجهة الحالية
│   └── ui/                 # مكوّنات shadcn/ui الأساسية
├── prisma/                # schema.prisma + migrations (Project/Melody)
├── content/               # قواميس الترجمة (ar/en) + الأنواع
├── lib/                   # auth · db · upload · i18n · site config · metadata · utils · validations
├── components/admin/      # shell · page header · reusable form
├── components/public/     # project/melody cards, details, directory, audio player
├── middleware.ts          # حماية مسارات admin
├── public/                # أصول ثابتة
├── docs/                  # 📚 التوثيق (هون)
├── Dockerfile · docker-compose.yml · Makefile
└── .env.example

📌 Changelog (خطوات كبيرة)

  • 2026-08-03 — إنشاء منظومة التوثيق بمجلد docs/ (STATE, STACK, ARCHITECTURE, CHECKLIST, TODO, IDEAS) + AGENTS.md. توثيق الوضع الحالي كقاعدة انطلاق.
  • 2026-08-05 — إنجاز T-01: تهيئة Tailwind CSS وPostCSS وربط tokens الثيم الحالية مع الحفاظ على الوضعين الفاتح والغامق.
  • 2026-08-05 — إنجاز T-02: تهيئة shadcn/ui وإضافة Button وCard وInput وDialog وSelect وForm كمكوّنات محلية قابلة لإعادة الاستخدام.
  • 2026-08-05 — إنجاز T-03: إضافة PostgreSQL 16 إلى Docker، مخطط Prisma الأولي، migration init، وعميل قاعدة البيانات singleton.
  • 2026-08-05 — إنجاز T-04: إضافة Auth.js Credentials، تشفير كلمات السر، حماية /admin/، صفحة تسجيل الدخول، وseed آمن لمستخدم الأدمن.
  • 2026-08-05 — إنجاز T-05: إضافة layout لوحة الأدمن، سايدبار، عناصر صفحات مشتركة، وفورم عام قابل لإعادة الاستخدام.
  • 2026-08-05 — إنجاز T-06: إضافة تحقق Zod وCRUD للتصنيفات داخل لوحة الأدمن مع دعم أنواع PROJECT / MELODY.
  • 2026-08-05 — إنجاز T-07: إضافة volume للملفات المرفوعة، تخزين محلي، معالجة صور بـ sharp، endpoint محمي، ومكوّن رفع reusable للصور والصوت.
  • 2026-08-05 — إنجاز T-16: استبدال Work/App بـ Project موحّد، تحديث CategoryKind إلى PROJECT/MELODY، إضافة حقول iOS والترتيب والنشر، وتطبيق migration الجديدة.
  • 2026-08-05 — إنجاز T-08: إضافة CRUD المشاريع في الأدمن، رفع الصور من النموذج، وصفحات الأعمال والمواقع والتصاميم مع الفلترة والتفاصيل.
  • 2026-08-05 — إنجاز T-09: إضافة CRUD تطبيقات APP وحقول iOS، فلتر التطبيقات في الأدمن، وقسم عام مع معرض السكرين شوتس وروابط التطبيقات.
  • 2026-08-05 — إنجاز T-10: إضافة CRUD الألحان مع رفع الصوت والغلاف والتحكم بالتحميل، الصفحات العامة والتفاصيل، فلترة التصنيفات، ومشغّل صوت reusable بعناصر التحكم الأساسية.
  • 2026-08-05 — إنجاز T-11: ربط نموذج التواصل بحفظ الرسائل وإرسال إشعار للمالك وتأكيد للمرسل عبر SMTP، إضافة قوالب React Email وبديل نصي، وحماية Honeypot وRate limiting.
  • 2026-08-05 — إنجاز T-12: إضافة صفحات الخصوصية وشروط الاستخدام وImpressum بالعربي والإنجليزي، ربط الفوتر، وإضافة إعدادات الهوية القانونية.
  • 2026-08-05 — إنجاز T-13: إضافة AnalyticsEvent وmigration، تتبع الزيارات والتفاعلات الأساسية، endpoint محمي، ولوحة إحصائيات داخل الأدمن.
  • 2026-08-05 — إنجاز T-17: تصحيح .env.example واعتماد أوضاع coming-soon وmaintenance وfull في طبقة إعدادات الموقع، مع إبقاء واجهة الصيانة ضمن T-14.
  • 2026-08-05مراجعة + قرارات (REVIEW-2026-08-05.md): بعد مقارنة تشيك لست ChatGPT مع الواقع، اعتُمد: (1) مخطط الخيار AProject موحّد + Melody منفصل يستبدل Work/App؛ (2) الاحصائيات عدّادات داخلية أولاً بدل Umami؛ (3) إبقاء نظام التوثيق الحالي (6 ملفات)؛ (4) تبنّي إضافات: Impressum، حقول iOS، Honeypot/Rate-limit، تفاصيل مشغّل الألحان، فصل صفحات المواقع/التصاميم؛ (5) رصد باگ .env.example (livefull) وغياب maintenance. أُضيفت مهام T-16 (refactor المخطط) وT-17 (إصلاح env). (المراجعة موثّقة، وT-16/T-17 أُنجزتا؛ واجهة الصيانة الفعلية لسا متروكة لـ T-14.)
  • (قبل التوثيق) — موقع coming-soon ثنائي اللغة منشور عبر Docker + Traefik.

تعليمات تحديث هذا الملف

عند إنجاز أي feature: حدّث جدول "الموجود" و"الناقص"، وأضف سطر بالـ Changelog. خلّي هالملف يعكس الواقع لا الطموح.