مجموعة التليجرام : pinkary.com/telegram » .
مرحبا بكم في بينكاري! Pinkary هي صفحة مقصودة لجميع الروابط الخاصة بك ومكان للتواصل مع الأفراد ذوي التفكير المماثل دون ضوضاء.
في البداية، تم إنشاؤه لمساعدة الأشخاص على مشاركة روابطهم بطريقة أكثر تنظيمًا. في غضون 15 ساعة فقط، انتقلنا من composer create-project
إلى الإنتاج، وبعد 24 ساعة، وصلنا إلى أكثر من 1000 مستخدم.
لا تزال شفرة المصدر تظهر بعض علامات الاندفاع؛ ولهذا السبب نعتقد أنه من المهم مشاركته معك - حتى تتمكن من رؤية كيف بنيناه ، والجمع بين السرعة في ظل الظروف والجودة التي نهدف إليها دائمًا.
بمرور الوقت، تمكنا من إضافة المزيد من الميزات، مثل الموجز والاستكشاف والأسئلة والإعجابات والمزيد. لقد قمنا أيضًا بتحسين التصميم وإضافة الاختبارات وتحسين الجودة الإجمالية للتعليمات البرمجية. لا يزال هناك الكثير للقيام به، ولكن الأهم من ذلك، أن هناك فرصة كبيرة لجعل هذا المشروع يقوده المجتمع .
Pinkary هو تطبيق Laravel عادي؛ إنه مبني على Laravel 11 ويستخدم Livewire / Tailwind CSS للواجهة الأمامية. إذا كنت معتادًا على Laravel، فيجب أن تشعر وكأنك في بيتك.
أما فيما يتعلق بالتنمية المحلية فيمكنك الاستفادة من المتطلبات التالية:
إذا كانت لديك هذه المتطلبات، يمكنك البدء باستنساخ المستودع وتثبيت التبعيات:
git clone https://github.com/pinkary-project/pinkary.com.git
cd pinkary.com
git checkout -b feat/your-feature # or fix/your-fix
لا تدفع مباشرة إلى الفرع
main
. بدلاً من ذلك، قم بإنشاء فرع جديد وادفعه إلى فرعك.
بعد ذلك، قم بتثبيت التبعيات باستخدام Composer وNPM:
composer install
npm install
بعد ذلك، قم بإعداد ملف .env
الخاص بك:
cp .env.example .env
php artisan key:generate
قم بإعداد قاعدة البيانات الخاصة بك وقم بتشغيل عمليات الترحيل:
touch database/database.sqlite
php artisan migrate
ربط التخزين بالمجلد العام:
php artisan storage:link
في محطة منفصلة ، قم ببناء الأصول في وضع المراقبة:
npm run dev
أيضًا في محطة منفصلة ، قم بتشغيل عامل قائمة الانتظار:
php artisan queue:work
أخيرًا، ابدأ تشغيل خادم التطوير:
php artisan serve
ملاحظة: بشكل افتراضي، يتم إرسال رسائل البريد الإلكتروني إلى برنامج تشغيل
log
. يمكنك تغيير هذا في ملف.env
إلى شيء مثلmailtrap
.
بمجرد الانتهاء من تغييرات التعليمات البرمجية، تأكد من تشغيل مجموعة الاختبار للتأكد من أن كل شيء لا يزال يعمل:
composer test
إذا كان كل شيء باللون الأخضر، فادفع فرعك وأنشئ طلب سحب:
git commit -am " Your commit message "
git push
قم بزيارة github.com/pinkary-project/pinkary.com/pulls وقم بإنشاء طلب سحب.
تستخدم Pinkary بعض الأدوات لضمان جودة التعليمات البرمجية واتساقها. بالطبع، Pest هو إطار الاختبار المفضل، ونحن نستخدم أيضًا PHPStan للتحليل الثابت. تبلغ تغطية نوع Pest 100%، كما أن مجموعة الاختبار تبلغ أيضًا 100%.
فيما يتعلق بنمط الكود، نستخدم Laravel Pint للتأكد من أن الكود متسق ويتبع اصطلاحات Laravel. نستخدم أيضًا Rector للتأكد من تحديث الكود بأحدث إصدار PHP.
يمكنك تشغيل هذه الأدوات بشكل فردي باستخدام الأوامر التالية:
# Lint the code using Pint
composer lint
composer test:lint
# Refactor the code using Rector
composer refactor
composer test:refactor
# Run PHPStan
composer test:types
# Run the test suite
composer test:unit
# Run all the tools
composer test
لن يتم دمج طلبات السحب التي لا تجتاز مجموعة الاختبار. لذا، كما هو مقترح في قسم التثبيت، تأكد من تشغيل مجموعة الاختبار قبل دفع الفرع الخاص بك.
تتم استضافة Pinkary على DigitalOcean ويستخدم Laravel Forge لإدارة الخادم وعمليات النشر. يعمل الخادم على Ubuntu 22.04 (LTS) x64 وهو عبارة عن وحدتي vCPUs بسعة 2 جيجابايت / 25 جيجابايت.
الخدمة الوحيدة التي نستخدمها هي Mailcoach لإدارة رسائل البريد الإلكتروني المرسلة. بالإضافة إلى ذلك، يتم استخدام SQLite كبرنامج تشغيل قاعدة بيانات، أو برنامج تشغيل الجلسات، أو برنامج تشغيل قائمة الانتظار، أو برنامج تشغيل ذاكرة التخزين المؤقت، وما إلى ذلك.
يتم إجراء النسخ الاحتياطية للخادم يوميًا بواسطة Digital Ocean.
Pinkary هو برنامج مفتوح المصدر مرخص بموجب رخصة GNU Affero العامة