Skip to content

About

Optimize Crysis 3 Remastered Nanosuit builds, loadouts, stealth, combat practice, missions, and analytics with one planning toolkit.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

موقع النادي الرياضي — جامعة أم القرى

موقع لأعضاء النادي الرياضي، فيه:

  • الرئيسية: تغريدات النادي من إكس تتقلب ورا بعض، ولو أحد ضغط على تغريدة تفتح له في إكس. وتحتها إعلانات النادي، يقرأها الكل وينشرها الرئاسة والقادة والنواب بس.
  • التسجيل: الاسم، الرقم الجامعي، البريد، الجوال، الكلية، اللجنة، حساب إكس ولنكدإن، والصفة.
  • الصفات: رئيس النادي، و٣ نواب للرئيس، وقائدين ونائبين لكل لجنة، والباقي أعضاء.
  • صفحة القادات (للكل): فوقها رئاسة النادي، وتحتها قادة ونواب كل لجنة، مع حساباتهم في إكس ولنكدإن.
  • الشات: شات عام، شات لكل لجنة، وشات القادة.
  • صفحة الاعتماد: للإدارة، فيها اعتماد أو رفض الطلبات، وتغيير الصفة واللجنة والمنصب.
  • حسابي: كل واحد يعدّل منه اسمه وحساباته.

الموقع ثابت، يعني ينرفع على GitHub Pages مجانًا، وقاعدة البيانات وتسجيل الدخول على Firebase (الخطة المجانية تكفي).


١) تجهيز Firebase (مرة وحدة)

  1. ادخل console.firebase.google.com وسوّ مشروع جديد (مثلًا uqufit). تقدر تطفي Google Analytics.
  2. Authentication › Get started › Email/Password › فعّله.
  3. Firestore Database › Create database › اختر موقع قريب (مثل me-central2 أو europe-west) › Production mode.
  4. افتح تبويب Rules في Firestore، امسح اللي فيه، والصق محتوى ملف firestore.rules كامل، واضغط Publish.
  5. Project settings (أيقونة الترس) › Your apps › اضغط </> (Web) › سجّل التطبيق › انسخ قيم firebaseConfig وحطها في ملف config.js مكان YOUR_....

عادي تكون بيانات firebaseConfig ظاهرة في الموقع، هذا الطبيعي في Firebase. الحماية الحقيقية في ملف firestore.rules.

٢) رفع الموقع على GitHub برابط ما فيه اسم حسابك

رابط GitHub Pages العادي يطلع كذا: اسم-الحساب.github.io. عشان ما يطلع اسمك، سوّ منظمة (Organization) باسم النادي، ويصير الرابط باسمها:

  1. في GitHub اضغط ➕ (فوق) › New organization › الخطة Free › الاسم مثلًا uqufit. (لو الاسم مأخوذ جرّب uqu-fit أو uqufit-club.)
  2. داخل المنظمة سوّ repository جديد باسم: uqufit.github.io بالضبط (نفس اسم المنظمة + .github.io)، ويكون Public.
  3. ارفع كل الملفات اللي في هذا المجلد (Add file › Upload files): index.html, app.js, config.js, styles.css, مجلد assets, .nojekyll.
  4. Settings › Pages › Source: Deploy from a branch › Branch: main / (root) › Save.
  5. بعد دقيقة أو دقيقتين يشتغل الموقع على: https://uqufit.github.io

لو تبون رابط مثل uqufit.club زي موقع نادي البحث، اشتروا دومين وحطوه في Settings › Pages › Custom domain.

مهم: بعد الرفع ارجع لـ Firebase › Authentication › Settings › Authorized domains › Add domain › uqufit.github.io.

٣) تعيين أول مشرف (الإدارة)

  1. سجّل في الموقع بحسابك العادي.
  2. في Firebase › Authentication › Users انسخ الـ User UID حقك.
  3. في Firestore › Data › Start collection › الاسم: admins › Document ID: الصق الـ UID › حط حقل name (نوعه string) واكتب اسمك › Save.
  4. حدّث الموقع، بيطلع لك رابط «الاعتماد» في القائمة، ومنه تعتمد القادة والنواب.

تقدر تضيف أكثر من مشرف بنفس الطريقة.

٤) تعديلات سريعة

تبي تغيّر الملف
أسماء اللجان config.js (COMMITTEES) و firestore.rules (committeeIds). لازم المعرّفات تكون نفسها في الملفين
الكليات config.js (COLLEGES)
التسجيل بالبريد الجامعي فقط REQUIRE_UQU_EMAIL = true في config.js و requireUquEmail() ترجع true في firestore.rules
الألوان أول الملف styles.css (:root)
الشعار assets/logo.png

الحماية

  • كل اللي ينكتب في الموقع (أسماء، رسائل، تغريدات) يظهر كنص فقط، فما أحد يقدر يحقن كود (XSS).
  • فيه Content-Security-Policy يسمح بالسكربتات من الموقع نفسه ومن Firebase فقط.
  • الصفة ما ينفع أحد يعطيها لنفسه. أي أحد يسجّل يكون «عضو» تلقائي، والقائد والنائب يصيرون «طلب» ينتظر اعتماد المشرف. هذا مضبوط في قواعد قاعدة البيانات نفسها، مو بس في الواجهة.
  • البيانات الخاصة (الرقم الجامعي، الجوال، البريد) يشوفها صاحبها والمشرفين فقط.
  • الشات يحتاج تفعيل البريد. وشات اللجنة لأعضائها فقط، وشات القادة للقادة والنواب فقط.
  • إضافة التغريدات للقادة والنواب المعتمدين فقط، وتنقبل روابط إكس فقط.
  • الرسائل والتغريدات لها حد أقصى في الطول، وما ينفع يتزوّر اسم المرسل أو صفته.
  • إذا تبي حماية أكثر من السبام، فعّل App Check في Firebase.

ملاحظة عن التغريدات

إكس ما يعطي تغريدات الحساب تلقائيًا إلا باشتراك API مدفوع، عشان كذا القائد يلصق رابط التغريدة ويضغط «جيب النص من الرابط». الموقع يحاول يجيب النص تلقائيًا، وإذا ما قدر يكتبه القائد بنفسه.

About

Optimize Crysis 3 Remastered Nanosuit builds, loadouts, stealth, combat practice, missions, and analytics with one planning toolkit.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages