نظام ويب مصمم للشركات التي توفر خدمات تأجير صناديق التخزين ويشمل النظام ادارة الصناديق المتوفرة وعقود الاجار و الدفعات و سجلات العملاء. يشمل العمل نظام الدخول عبر غوغل و روابط الدخول (magic link) مع نظام تخزين المرفقات و تنبيهات عبر البريد الالكتروني بالاضافة الى قاعدة بيانات postgres.
المميزات الرئيسية:
1. إدارة الوحدات (Units): تسجيل وحدات التخزين، أحجامها، حالاتها، وتتبع توفرها.
2. إدارة العملاء (Customers): سجل العملاء (أفراد/شركات) وربطهم بالعقود.
3. إدارة العقود (Contracts): إنشاء العقود، ربطها بالوحدات، أنواع العقود، وبنود إضافية.
4. المنتجات والأسعار: إدارة المنتجات وأسعار الوحدات وأنواع الإضافات.
5. المدفوعات (Payments): تسجيل المدفوعات وربطها بالعقود.
6. المرفقات (Attachments): رفع وحفظ الملفات (PDF، صور) وربطها بالعقود.
7. لوحة تحكم وتحليلات (Dashboard): إحصائيات حالة العقود، الإيرادات، وتوزيع أحجام الصناديق.
8. سجل التدقيق (Audit Log): تسجيل عمليات الإنشاء والتعديل والحذف للكيانات الرئيسية.
9. الفريق والمنظمات: إنشاء منظمات، نظام دعوات، والتبديل بين المنظمات.
10. الإعدادات: إعدادات المنظمة، أنواع العقود، الفريق، والاشتراك والفوترة (Stripe).
11. الإشعارات: جرس إشعارات في الواجهة مع صفحة مخصصة.
12. حساب المستخدم: إدارة الحساب الشخصي والمظهر (فاتح/داكن).
اللغة والتقنيات البرمجية:-
- لغة البرمجة: TypeScript (مع JavaScript في إطار React و Node).
- إطار الويب: Next.js 16 مع App Router.
- واجهة المستخدم: React 19 مع مكونات واجهة من shadcn/ui و Radix UI، وتصميم بـ Tailwind CSS.
- قاعدة البيانات: PostgreSQL (Neon serverless) مع Drizzle ORM.
- المصادقة: better-auth (تسجيل الدخول عبر Google وروابط سحرية بدون كلمات مرور).
- الدفع والاشتراكات: Stripe للفوترة والاشتراكات.
- التخزين السحابي: AWS S3 لرفع الملفات والمرفقات.
- البريد الإلكتروني: Resend لإرسال الرسائل.
- الاختبارات: Playwright لاختبارات End-to-End، و ESLint للجودة والتنميط.
ملخص تقني إضافي
- الاعتماد على Server Actions في Next.js لتنفيذ العمليات مع التحقق من الجلسة وعزل المستأجر.
- ترشيح كافة الاستعلامات حسب معرّف المنظمة (tenant_id) لضمان الخصوصية.
- واجهة responsive مع جداول قابلة للبحث والترقيم ونماذج موحدة مع التحقق من المدخلات (Zod).
- دعم الوضع الليلي والنهاري وتحسين تجربة الاستخدام.