عن المشروع
Fold هو تطبيق مهام ذاتي الاستضافة يعمل مع أي خادم CalDAV متوافق مع المواصفات. تم إنشاؤه كبرنامج شخصي، ويُخزن جميع المهام كخصائص VTODO عادية تبقى قابلة للقراءة من قبل عملاء CalDAV الآخرين، مما يضمن قابلية نقل البيانات وطول عمرها.
تشمل الميزات الرئيسية محلل إضافة سريعة بناءً على اللغة الطبيعية - حيث يؤدي كتابة شيء مثل "تنظيف المجاري غداً في الساعة 3 مساءً #مهام p1" استخراج تاريخ الاستحقاق والوقت والقائمة وال الأولوية في ضغطة واحدة للإدخال. تشمل العروض مثل اليوم، الغد، الأيام التالية 7، الملخص، والبحث تجميعًا عبر كل القوائم. يعترف التطبيق بأسماء القوائم الخاصة: تظهر مهام الصحة في أعلى كل عرض، بينما تنهار قائمة البقالة في صف واحد فقط لأن السؤال هو ما إذا كان التسوق قد حدث، وليس عدد العناصر المدرجة.
يتم دعم التشغيل بدون اتصال من خلال طابور التغييرات المحلية الذي يعاد تشغيله عند عودة الاتصال. التطبيق أولويته لوحة المفاتيح وقابل للتثبيت كـ PWA على الهواتف. لا تتضمن أي إشعارات أو سلاسل أو إجبار.
لا يوجد قاعدة بيانات للمستخدم أو تخزين جلسات. عند تسجيل الدخول، يتم التحقق من بيانات اعتماد CalDAV مقابل الخادم وتشفيرها باستخدام AES-256-GCM في ملف تعريف ارتباط HttpOnly يُخزن في المتصفح. لا يمكن للغة JavaScript قراءة ملف تعريف الارتباط. يتم فك تشفير بيانات الاعتماد في ذاكرة الخادم لكل جولة CalDAV ثم يتم التخلص منها فورًا. إعادة تشغيل الحاوية لا تفقد شيئًا لأن شيئًا ما لا يُحفظ على الخادم.
يتم النشر باستخدام Docker مع متغير بيئة واحد مطلوب فقط: SESSION_SECRET، والذي يُشفر به ملف تعريف الارتباط الخاص بالبيانات. يُوصى باستخدام وكيل عكسي مع TLS نظرًا لأن ملف تعريف الارتباط يحمل بيانات اعتماد حساسة. توجد خيار ALLOW_INSECURE_COOKIE للشبكات المحلية الموثوقة بدون TLS. يمكن استخدام CALDAV_ALLOWED_HOSTS لتحديد خوادم CalDAV التي تقبل نموذج تسجيل الدخول، مما يحمي النسخ العامة.
يقوم Fold بشكل مقصود بعدم دعم المهام الفرعية أو المهام المتكررة أو المزامنة في الخلفية أو الحسابات المتعددة. يتم الحفاظ على خصائص RRULE الموجودة ولكن لا يتم إنشاؤها أو تعديلها من قبل التطبيق. يكون هناك حساب CalDAV نشط في وقت واحد.
المشروع مرخص بموجب رخصة MIT. يعتمد التطوير على Bun، مع طبقات اختبار مُدققة بما في ذلك اختبارات الوحدة ضد Vitest، واختبارات التكامل ضد خادم Radicale حقيقي، واختبارات نهاية إلى نهاية باستخدام Playwright. تُوثق المواصفات الكاملة وقرارات البنية في مجلد docs في مستودع المشروع.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.