عن المشروع

Deck Lab هو تطبيق ويب Python/Flask لبناء وبحث واختبار مجموعات بطاقات Commander (Magic: The Gathering) التنافسية في مساحة عمل واحدة. يمكن للمستخدمين تعديل المجموعات، والبحث في الميتاغيم التنافسي، وفحص معلومات البطاقات، وتشغيل محاكاة ذهبية؛ تظل المجموعات المحفوظة والحسابات والتفضيلات محفوظة عبر الجلسات. يتطلب المثيل المستضاف حسابًا موفرًا من المالك. القدرات الرئيسية الموضحة في ملف README: - سير عمل تعديل المجموعات والبحث: يتم تقديم نتائج البحث العامة من لقطة ثابتة مع تتبع المراجعة، والتحديث في الخلفية، وتقديم البيانات القديمة المحدودة؛ يتم تحديث المرشحات وسجل المتصفح دون إعادة بناء الصفحة بالكامل. - منطق المجال الحتمي: يتم التحقق من قانونية Commander، وهوية اللون، وتوليفات الشريك، وحجم المجموعة في الكود؛ يختار منشئ حزم الاستراتيجية البطاقات بشكل حتمي، مع حصر مخرجات النموذج في حدود منفصلة تم التحقق منها للتفسيرات. - عقود بيانات صريحة: يتم عرض بحث PostgreSQL من خلال طرق عرض `mtg_v1` ذات الإصدارات مع مستهلك للقراءة فقط، ويتبادل المحاكي المنفصل JSON ذي الإصدارات الذي تم التحقق منه مقابل مخطط معبأ. يتم عرض الأدلة المفقودة والمحاكاة غير المتاحة كحالات مرئية بدلاً من نتائج مخترعة. - الأمان: تجزئات كلمات المرور Argon2، وحماية CSRF، وتوفير الحساب، واستعادة كلمة المرور، وعمليات التحقق من التفويض؛ يستخدم الإنتاج و QA بيانات اعتماد وبيانات وشبكات حاويات منفصلة. - إصدارات قابلة للتكرار: تقوم GitHub Actions بتنفيذ اختبارات، وتدقيق، وتنسيق، وأنواع، وفحوصات دخان للحاويات؛ يتحقق النشر من مراجعة الصورة، وتجزئة الأرشيف، والمنصة، والطبقات؛ تدعم النسخ الاحتياطي المشفر وفحوصات الاستعادة المعزولة الاسترداد. الهندسة المعمارية: تطبيق ويب Flask + Waitress مدعوم بـ SQLite للحسابات والمجموعات ولقطة البحث؛ يقوم التحديث الخلفي بسحب البيانات من طرق عرض PostgreSQL `mtg_v1`؛ يمكن للتطبيق استدعاء محاكي خاص عبر JSON ذي إصدارات وبوابة نموذج اختيارية. يستخدم النشر Caddy لـ HTTPS و Docker Compose على DigitalOcean، مع إبقاء منافذ قاعدة البيانات والمحاكي خاصة؛ يتوفر QA على نطاق فرعي منفصل لمراجعة المالك قبل إصدار الإنتاج. يتطلب التشغيل محليًا Python 3.11+. يستخدم الإعداد بيئة افتراضية، `pip install -e '.[dev,postgres,legacy]'`، نص برمجي لإعداد قاعدة البيانات، ومتغيرات بيئة للمفتاح السري، ووضع المصادقة، وأعلام الطرح، وأمر إنشاء مسؤول، وأمر تقديم. يحتفظ CLI/الحزمة بالاسم التاريخي `sabermetrics` للتوافق. يعمل مسار cEDH الافتراضي المدعوم بالتركيبات بدون بيانات اعتماد موفر، أو PostgreSQL، أو محاكي؛ لا يتم توزيع مجموعة أبحاث الإنتاج والحسابات الخاصة مع المستودع. يمكن ممارسة منشئ حتمي غير متصل عبر أوامر CLI التي تسرد وتبني حزم الاستراتيجية. يستخدم التحقق pytest، ruff، black، و mypy؛ تعتمد المجموعة الافتراضية على التركيبات والنماذج، بينما تكون تكاملات PostgreSQL الحية، والنموذج، والمحاكي اختيارية ويمكن أن تتكبد اختبارات النموذج رسوم API. تمارس CI أيضًا سلوك الحزمة المثبتة، والمصادقة/الاستعادة، وردود الفعل مع التسليم المقلد، وبدء تشغيل حاوية HTTP. يوثق تكوين النوع استثناءات قديمة مقيدة بدلاً من المطالبة بتغطية كاملة. النطاق والقيود: هذا تطبيق يركز على Commander، وليس محرك قواعد كامل؛ تقيس المحاكاة الذهبية أنماط اللعب النموذجية، وليس احتمالية الفوز في اللعب المتعدد؛ تعكس تغطية البطولة بيانات المصدر المتاحة ومعدل التضمين ليس دليلاً على جودة البطاقة؛ يقتصر دعم حزم الاستراتيجية على المواد المنسقة وقدرات المحاكي؛ يعد النشر على مضيف واحد مقايضة تشغيلية متعمدة، وليس ادعاءً بالتوافر العالي. لا تزال بعض وحدات المولد الأصلية موجودة كرمز توافق، مع وجود منتج المولد النشط في مستودع منفصل. المشروع هو مشروع معجب غير رسمي، غير تابع لـ Wizards of the Coast، ومرخص بموج بموجب MIT.