Stare Store هو تطبيق مشاركة الملفات وتخزينه على شبكة الإنترنت مصممة باستخدام Django و Python للواجهة الخلفية ، و JavaScript و Bootstrap للواجهة الأمامية. هذا هو المشروع النهائي لبرمجة الويب الخاصة بـ CS50 مع Python و JavaScript. يحتوي هذا المشروع على تطبيق واحد "محرك".
يتيح متجر Share للمستخدمين تسجيل الملفات وتسجيل الدخول وتحميل الملفات وإدارة أذونات الوصول لتلك الملفات. يمكن للمستخدمين مشاركة ملفاتهم مع أفراد محددين أو جعلهم في متناول الجميع. بالإضافة إلى ذلك ، يمكن للمستخدمين عرض الملفات المشتركة معهم من قبل الآخرين. متجر Share يستخدم تخزين Firebase لتخزين الملفات واسترجاعها. يوفر ميزات مثل مصادقة المستخدم ، وتحميل الملف/التنزيل ، والتحكم في الوصول ، وتغيير كلمة المرور ، وحذف الحساب ، مما يجعله منصة متعددة الاستخدامات لمشاركة الملفات.
مشروع تجريبي
(college lecture slides in my case) إلى Discord. الآن ، عندما يقوم المستخدمون بتحميل الملفات التي تحتوي على كلمات رئيسية محددة (على سبيل المثال ، أسماء المحاضرات أو موضوعات مثل Math أو TOC) من حساباتهم ، يتم إرسال هذه الملفات تلقائيًا إلى قناة Discord مخصصة ، كما هو محدد في متغيرات البيئة. يلغي هذا التكامل الحاجة إلى نقل الملفات اليدوية ، وتوفير الوقت وضمان مشاركة المحتوى على الفور مع مجتمع Discord ذي الصلة.لقطات الشاشة
ملحوظة
توضح لقطة الشاشة أدناه ميزة تكامل Discord ، وتحديداً كيفية نشر ملفات BOT إلى مؤشر ترابط/قناة مخصصة على خادم Discord الخاص بك. يتم تشغيل هذه الوظيفة من خلال تكوين CHANNEL_MAPPINGS ، مثل تضمين "Maths": "maths thread/channel ID" لتوجيه الملفات المتعلقة بالرياضيات إلى موقع Discord المناسب.
الفيديو التجريبي المشروع قديم بعض الشيء ، لذلك لا يعرض هذه الميزة.

static/drive : يحتوي على JavaScript لمعالجة أذونات الوصول ، وشعار التطبيق ، وملاءة أنماط للتصميم.
templates/drive : يحتوي على قوالب HTML المسؤولة عن تقديم صفحات الويب.
firebase.py : تهيئة Firebase Admin SDK ويخلق إشارة إلى تخزين Firebase.
models.py : يحدد نماذج البيانات للتطبيق ، بما في ذلك File User Share .
tests.py : يتضمن اختبارات قاعدة البيانات لإنشاء الملفات والمشاركات والمستخدمين.
urls.py : يحدد أنماط URL لتطبيق "محرك الأقراص".
utils.py : يحتوي على وظيفة الأداة المساعدة للتكرار على الملفات التي تم جلبها من عناوين URL الخارجية.
views.py : المنازل عرض وظائف تعامل مع طلبات HTTP وتحديد كيفية تقديم صفحات الويب.
discord_integration.py : يدير أتمتة تحميل الملفات إلى قناة Discord محددة بناءً على معايير معينة ، باستخدام API Discord.
requirements.txt : يسرد حزم بيثون الخارجية والتبعيات المطلوبة للمشروع.
ملاحظة: يتم تقديم دليل موجز حول كيفية إنشاء مشروع Firebase والعثور على ملف مفتاح حساب خدمة JSON لهذا المشروع في النهاية.
إنشاء بيئة افتراضية (اختياري) : إذا كنت تفضل العمل في بيئة افتراضية (موصى بها للعزلة) ، فيمكنك إنشاء وتنشيط واحدة. انتقل إلى دليل المشروع الخاص بك وتشغيل الأوامر التالية:
# Create a virtual environment
python -m venv myenv
# Activate the virtual environment (Windows)
myenv S cripts a ctivate
# Activate the virtual environment (macOS/Linux)
source myenv/bin/activate متطلبات التثبيت : تأكد من تثبيت Python على نظامك. انتقل إلى دليل المشروع الخاص بك وتثبيت حزم بيثون المطلوبة المدرجة في requirements.txt . يمكنك القيام بذلك باستخدام pip :
pip install -r requirements.txt
إنشاء ملف .env : إنشاء ملف اسمه .env في دليل المشروع الخاص بك. في ملف .ENV ، أضف الأسطر التالية ، واستبدال قيم العناوين المتعلقة بتفاصيل التكوين الفعلية:
STORAGE_BUCKET="Storage Bucket Name"
GOOGLE_APPLICATION_CREDENTIALS="Path to your Firebase Admin SDK JSON credential file"
SECRET_KEY="Your Django secret key"
CONNECTION_STRING="Your database connection string (production only)"
SERVER_ID="Your Discord Server ID"
BOT_TOKEN="Your Discord Bot Token"
CHANNEL_MAPPINGS={"substring_1": "Channel_ID_1", "substring_2": "Channel_ID_2"}
P_USERNAME="Specific platform username whose files will be checked for Discord posting."
يخدم كل من هذه المتغيرات غرضًا محددًا في التطبيق الخاص بك ، مثل الاتصال بقواعد البيانات ، والتكامل مع Discord ، وتكوين خدمات Firebase.
نصيحة
إذا كنت ترغب في البحث عن المزيد من الفرعية ، فما عليك سوى إضافة التعيين في متغير بيئة CHANNEL_MAPPINGS مثل SO: CHANNEL_MAPPINGS={"substring_1": "Channel_ID_1", "substring_2": "Channel_ID_2", "additional_substring": "Additional_Channel_ID"} :
ملحوظة
يجب عليك الحصول على ملف اعتماد FireBase Admin SDK JSON من إعدادات مشروع FireBase. إذا لم تكن قد قمت بالفعل بإنشاء مشروع Firebase ، فيمكنك القيام بذلك هنا: Console Firebase
بالإضافة إلى ذلك ، لإعداد الرمز المميز لـ Discord Bot الخاص بك والحصول عليه ، راجع بوابة Discord Developer. يمكن العثور على إرشادات مفصلة لإنشاء روبوت ودعوتها إلى الخادم الخاص بك هنا: بوابة Discord Developer.
python manage.py makemigrations
python manage.py migrate
python manage.py runserver
GOOGLE_APPLICATION_CREDENTIALS في ملف .env الخاص بمتجر الأسهم الخاص بك إلى مسار ملف مفتاح JSON الذي تم تنزيله. نرحب بالمساهمات في متجر الأسهم! للبدء ، يرجى قراءة إرشاداتنا المساهمة واتباع التعليمات لتقديم المشكلات وسحب الطلبات.
يرجى قراءة مدونة قواعد سلوكنا لفهم توقعاتنا للمشاركين والمساهمين.