Oasis Clean Tech — منصة شركة IoT للري الذكي بلوحة Filament وحاسبة توفير وتقارير PDF

مواقع شركات • oasiscleantech.com
oasiscleantech.com
Oasis Clean Tech — منصة شركة IoT للري الذكي بلوحة Filament وحاسبة توفير وتقارير PDF — 1 Oasis Clean Tech — منصة شركة IoT للري الذكي بلوحة Filament وحاسبة توفير وتقارير PDF — 2 Oasis Clean Tech — منصة شركة IoT للري الذكي بلوحة Filament وحاسبة توفير وتقارير PDF — 3 Oasis Clean Tech — منصة شركة IoT للري الذكي بلوحة Filament وحاسبة توفير وتقارير PDF — 4 Oasis Clean Tech — منصة شركة IoT للري الذكي بلوحة Filament وحاسبة توفير وتقارير PDF — 5 Oasis Clean Tech — منصة شركة IoT للري الذكي بلوحة Filament وحاسبة توفير وتقارير PDF — 6 1 / 6

نبذة عن المشروع

منصة لشركة مصرية بتشتغل في إنترنت الأشياء والتكنولوجيا النظيفة، تركيزها ترشيد المياه والري الذكي. الموقع عربي أولًا (RTL على الـ root) والإنجليزي تحت ‎/en بروابط وسلاجات مترجمة، وفيه حلول وقطاعات وكتالوج منتجات بفلاتر ودراسات حالة ومركز معرفة ووظائف، وحاسبة توفير بتطلع تقرير PDF بيتبعت بالإيميل — وكله بيتدار من لوحة Filament بأدوار وصلاحيات.

323ملف PHP
45,202سطر كود
28Resource في لوحة الإدارة
31Model
38Migration
56ملف اختبار (Pest)
16نوع Block في الـ Page Builder
64مسار عام بلغتين

التقنيات المستخدمة

Backend
PHP 8.4Laravel 12MySQL 8 / MariaDB 11 (stored generated columns)Database QueueScheduler
Admin
Filament 5Livewire 4Filament Shield (RBAC)
Frontend
Blade ComponentsTailwind CSS 4Alpine.js 3Vite 7self-hosted IBM Plex Sans Arabic
Libraries
spatie translatablemedialibrarysettingspermissionactivitylogbackuphoneypotsitemaptagsmPDFIntervention Image
Testing
Pest 4 (56 test files)Laravel PintPlaywright responsive audit
Hosting & DevOps
Hostingerscripted deploy.sh (build → SSH → migrate → cache)app outside web rootsingle cron scheduler

المزايا المبنية

  • روابط مترجمة: ‎/الحلول/الري-الذكي و ‎/en/solutions/smart-irrigation من ملف مسارات واحد بيتسجّل لكل لغة.
  • كتالوج منتجات بفلاتر حسب الحل والقسم ونوع الجهاز وبروتوكول الاتصال ومصدر الطاقة، والفلتر في الرابط عشان يتبعت زي ما هو.
  • حاسبة توفير المياه: الحسابات كلها على السيرفر حسب نظام الري والمحصول ومصدر المياه، ثم رابط نتيجة موقّع وتقرير PDF بيتولّد في الـ Queue ويتبعت بالإيميل.
  • Page Builder بـ 16 نوع Block (نص، معرض، فيديو، جدول، أعمدة، حاسبة، فورم، FAQ، إحصائيات…).
  • صندوق Leads موحّد لكل الفورمات (تواصل، عرض سعر، حاسبة، تحميل دليل، نشرة، وظائف) بحالات وملاحظات.
  • أدلة قابلة للتحميل مقابل بيانات الزائر برابط موقّع، ونشرة بريدية بتأكيد مزدوج (Double Opt-in).
  • الوظائف: تقديم برفع CV مع فحص نوع الملف الحقيقي، وإدارة الطلبات، و JobPosting schema.
  • مدير ترجمة داخل اللوحة بيغطي على ملفات اللغة من قاعدة البيانات.
  • سيو شامل: sitemap بلغتين مع alternates، hreflang، canonical، و JSON-LD لـ Organization و Product و Article و Service و FAQPage و JobPosting.
  • معالجة صور تلقائية لـ WebP بمقاسات متعددة، و Dark/Light Theme، وحركات Scroll.

لوحة الإدارة (Filament 5)

  • 28 Resource: الصفحات، الحلول، القطاعات، المنتجات، دراسات الحالة، المقالات، الموارد، الوظائف، الـ Leads، عروض الأسعار، المشتركين، الحاسبة، الفريق، الشركاء، الآراء، الـ Redirects، الوسائط، المستخدمين، وسجل النشاط.
  • أدوار super_admin و editor و sales و hiring مع Policy لكل Model، و MFA اختياري.
  • سجل تدقيق بيعرض الفرق بين القيم، وباك أب يومي تلقائي، و Redirects بتتسجل مرات استخدامها.

المعمارية

  • Slugs مترجمة بأعمدة generated مخزّنة لكل لغة بتدي index و uniqueness.
  • Schema macros و Traits مشتركة (Publishable, HasSeo, HasTranslatableSlug, RecordsActivity) و Services layer للحاسبة والـ Leads والـ PDF.
  • الـ Scheduler هو نفسه الـ queue worker لأن الاستضافة المشتركة مفيهاش غير cron.

الأمان

  • Security headers كاملة (CSP, HSTS, X-Frame-Options, Permissions-Policy, COOP).
  • 3 طبقات حماية على كل فورم عام: throttle و honeypot وسؤال حسابي مشفّر بدل CAPTCHA.
  • روابط موقّعة، RBAC بـ 28 Policy، والكود خارج الـ web root.

تحديات تقنية اتحلّت

  1. الـ cron على Hostinger ماكانش بيشتغل من غير أي رسالة — الحل مسار PHP كامل من غير shell operators.
  2. PHP الافتراضي على السيرفر 8.3 وكان بيبني cache غلط — مسار صريح لـ PHP 8.4.
  3. النشر اليدوي كان بيسيب السيرفر مختلف عن الكود — سكربت نشر موحّد بـ dry-run.
  4. env() بترجع null بعد config:cache — ملف config مخصص.
استكشف المزيد

أعمال أخرى

كل الأعمال