لقد عثرت للتو على تطبيق Drop (الإصدار الأول من Boxtribute - وهو تطبيق ويب، يسهل على المؤسسات الحصول على السلع المتبرع بها وتخزينها وتوزيعها على الأشخاص المحتاجين بطريقة عادلة وكريمة). هذا حاليًا قيد الاستبدال بـ Boxtribute 2.0.
تم تطوير Dropapp في البداية لصالح Drop In The Ocean - وهي منظمة نرويجية غير حكومية تعمل في ثلاثة مخيمات للاجئين في جميع أنحاء اليونان. ومن بين المستخدمين الآخرين: Samos Volunteers، وEurope Cares، وHermine، وThe Free ShopLebanon، والجمعية الأوروبية للمساعدة الإنسانية (IHA)، وحركة على الأرض.
لقد قمنا بتطوير التطبيق ليتم استضافته الآن مركزيًا حتى نتمكن من تقديم المنتج للعديد من المؤسسات، ونعمل باستمرار على تحسين النظام وربط المنظمات المانحة والموزعة مع بعضها البعض.
إذا كنت مهتمًا بأن تكون جزءًا من هذا المشروع، فاكتب لنا على [email protected]! يمكنك أيضًا مراجعة موقعنا الإلكتروني للحصول على مزيد من التفاصيل حول نوع المساعدة التي نحتاجها في هذا المشروع.
قم بتثبيت عامل الميناء
قم بتثبيت PHP 8.2 أو الأحدث.
تأكد من تثبيت ملحقات mbstring
و curl
و mysql
و xdebug
PHP. على أوبونتو:
apt install php-curl php-mbstring php-mysql php-xdebug
استنساخ هذا الريبو. إذا كنت تستخدم Ubuntu، فقد تحتاج إلى تعيين أذونات الكتابة لمجلد القوالب لـ Docker.
git clone https://github.com/boxwise/dropapp
chmod -R 777 dropapp/templates (not generally recommended - ToDo Fix bug for Ubuntu users)
تحتاج أولاً إلى تثبيت "المؤلف" (نقترح جعله متاحًا عالميًا)
curl -s https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer
يمكنك تثبيت التبعيات المطلوبة ثم استخدامها
composer install
لتكوين التطبيق، انسخ /library/config.php.default
وقم بإزالة .default
من اسم الملف. ثم املأ بيانات اعتماد Auth0 من عميل Auth0. يرجى مراجعة docs/auth0.md للحصول على مزيد من المعلومات حول Auth0.
لتشغيل التطبيق، نفترض أنك قمت بتثبيت Docker. يمكنك بعد ذلك تشغيل:
docker-compose up
وبدلاً من ذلك، يمكنك التشغيل باستخدام خادم تطوير PHP
php -S localhost:8000 gcloud-entry.php
لتهيئة قاعدة البيانات لأول مرة، يجب عليك تشغيل هذا الأمر لإنشاء المخطط:
vendor/bin/phinx migrate -e development
يتم إنشاء قاعدة البيانات الأساسية db/init.sql
في الإصدار 2 ونسخها من هناك.
إذا كنت تريد بالإضافة إلى ذلك توصيل المستخدمين من المصدر الأصلي إلى auth0 وملء جدول قاعدة البيانات cms_usergroups_roles، ثم افتح المتصفح واطلب http://localhost:8100/cron/reseed-auth0.php
بمجرد تشغيل حاويات عامل الإرساء، يمكن الوصول إلى التطبيق على http://localhost:8100/
بعد ذلك يجب أن تكون قادرًا على تسجيل الدخول إلى التطبيق باستخدام كلمة المرور Browser_tests وأحد رسائل البريد الإلكتروني التالية:
BoxAid (جميعهم لديهم إمكانية الوصول إلى قاعدة واحدة تسمى ليسفوس):
BoxCare (هناك 3 قواعد مرتبطة - سالونيك، ساموس، أثينا):
يستخدم معظمنا VSCode كمحرر أكواد ومنضدة عمل MySQL للوصول إلى قاعدة البيانات.
لذلك لا يتعين علينا التفكير أو الجدال حول اصطلاحات التعليمات البرمجية، فنحن نستخدم منسق التعليمات البرمجية التلقائي php-cs-fixer.
سوف يفشل CircleCI في طلب السحب الخاص بك إذا كان هناك أي رمز يتطلب إصلاحات الفحص.
إذا كنت تستخدم VSCode، فسيتم اقتراح ملحق vscode-php-cs-fixer
تلقائيًا وتطبيق التنسيق التلقائي عند الحفظ.
بدلا من ذلك، يمكنك تشغيل
php vendor/friendsofphp/php-cs-fixer/php-cs-fixer fix . --rules @PhpCsFixer
في الجذر يدويا.
لقد قمنا بتمكين تصحيح أخطاء XDebug عن بعد في تكوين Docker الافتراضي، حتى تتمكن من التنقل خلال التعليمات البرمجية الخاصة بك. يرجى تشغيل docker-compose up --build
في المرة القادمة التي تقوم فيها بتشغيل الخادم الخاص بك لتحديث صورة عامل الإرساء الخاص بك.
إذا كنت تستخدم VS Code، وإذا قمت بتثبيت ملحق PHP Debug وبدء تكوين "Listen for XDebug"، فيمكنك بعد ذلك تعيين نقاط التوقف في التعليمات البرمجية الخاصة بك.
يرجى العلم أنه يتم اكتشاف نقاط التوقف فقط والتي تقع في سطر يحتوي على تعليمات برمجية قابلة للتنفيذ.
لا يمكن لحاويات Docker التي تعمل على نظام التشغيل Linux تحليل العنوان host.docker.internal
إلى عنوان IP. لاستخدام Xdebug على نظام التشغيل Linux، عليك تحديد عنوان IP الداخلي لحاوية عامل الإرساء في docker-compose.yaml
. لمعرفة عنوان عامل الإرساء الداخلي الخاص بك، قم بتشغيل
docker inspect -f '{{range .NetworkSettings.Networks}}{{.Gateway}}{{end}}'
أدخل العنوان في docker-compose.yaml
هنا:
environment:
XDEBUG_CONFIG: remote_host=172.19.0.1
إذا كنت تريد الاتصال بخادم MySQL من جهازك المضيف، فيمكنك القيام بذلك باستخدام
docker exec -it mysql -u root -p
يمكن أيضًا الوصول إلى خادم mysql الموجود في حاوية الإرساء الخاصة بك على المنفذ 9906 للمضيف المحلي الخاص بك
mysql --host=127.0.0.1 --port=9906 -u root -p
كلمة المرور للمستخدم الجذر لـ db dropapp_dev
هي dropapp_root
.
يستخدم معظمهم Workbench للوصول إلى قاعدة بيانات MySQL. لإنشاء اتصال، يتعين عليك إدخال عنوان localhost
الخاص بك، على سبيل المثال 127.0.0.1
لـ "اسم المضيف" و 9906
لـ "المنفذ".
نحن نستخدم Phinx لتشغيل عمليات ترحيل قاعدة البيانات.
للانتقال إلى إصدار قاعدة البيانات الحالي، قم بتشغيل
vendor/bin/phinx migrate
لإنشاء تشغيل الترحيل
vendor/bin/phinx create
يقوم بإنشاء ملف في db/migrations
. الرجاء استخدام هذا الملف لكتابة ترحيل قاعدة البيانات الخاصة بك.
نحن نستخدم Cypress لاختبار المتصفح. لإجراء اختبارات Cypress على بيئتك المحلية، من فضلك
baseURL
إلى عنوانك المحلي، على سبيل المثال localhost:8100
في cypress.json.auth0Domain
إلى مستأجر التطوير Auth0، على سبيل المثال boxtribute-dev.eu.auth0.com
في cypress.json.إذا فشلت الاختبارات 2.4 و2.9، تحقق
يجب العثور على جميع الاختبارات في cypress/integrations
ويمكن تنفيذها مباشرة. عند كتابة الاختبارات، حاول اتباع هذه الإرشادات إن أمكن:
cypress/support
- ثم تكون متاحة عالميًا. ابحث عن الاسم المطابق أو أنشئ اسمًا جديدًا. في الحالة الأخيرة، لا تنس استيراده في cypress/integrations/index.js
. تجنب إنشاء أسماء ملفات متنوعة لأنها تؤدي إلى الفوضى.clickNewUserButton()
أفضل من clickElementByTypeAndTestId('button','new-user-button')
.لقد شهدنا من قبل أن الاختبارات يمكن أن تفشل في CircleCI، ولكن ليس في البيئة المحلية. السبب الرئيسي لذلك هو أن Cypress عادةً ما ينفذ الأوامر بشكل أبطأ في بيئة التطوير المحلية. ولذلك، هناك بعض الإرشادات الإضافية عند كتابة الاختبار:
cy.url().should('include', 'people_deactivated')
. ونتيجة لهذا التأكيد، سينتظر السرو بالتأكيد حتى يتم تنفيذ إعادة التوجيه.cy.visit()
يمكنك التأكد من أن اختبار السرو ينتظر حتى يتم تحميل الصفحة بالكامل. لذلك، حاول التنقل قدر الإمكان باستخدام cy.visit()
.إذا كنت تقوم بإعداد مستأجر Auth0 جديد، فإننا نطلب الوصول إلى واجهة برمجة تطبيقات إدارة Auth0. من أجل القيام بذلك
يجب أن تكون رائعًا ولطيفًا. بالنسبة لكل شيء آخر، يرجى الاطلاع على إرشادات المساهمة الخاصة بنا
أرسل لنا بريدًا إلكترونيًا إلى [email protected]!
راجع ملف الترخيص لمعرفة حقوق الترخيص وقيوده (Apache 2.0).