尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證製作者的介紹僅有上面的一句話。 更多詳情請閱讀儲存庫 README。 儲存庫 README ↗
正在載入完整 README。
檢視完整 README ↗نسخة أولية قابلة للنشر على Vercel باستخدام Next.js وNeon PostgreSQL. الواجهة عربية RTL وتستند إلى تصور AXIS المرفق.
#007BFF، والسماوي #00C4CC، مع كحلي داكن للنصوص والمساحات.public/axis-logo.svg (والنسخة الداكنة public/axis-logo-dark.svg).public/axis-mark.svg وأيقونات PWA داخل public/icons/.docs/BRAND_GUIDE.md لقواعد استخدام الشعار حسب السياق. لا تستخدم صورة لوحة الشعار المرجعية كصورة واجهة./admin/login و/admin، لإدارة طلبات التوثيق والأعضاء والبلاغات والأحداث حسب دور الحساب.انسخ .env.example إلى .env.local.
من Neon افتح Connect واختر قاعدة البيانات والفرع، وانسخ عنوان الاتصال pooled إلى DATABASE_URL. يمكن وضع اتصال direct في DATABASE_URL_UNPOOLED لتطبيق المخطط وإدارة البيانات. لا تضع الأسرار في Git.
أنشئ مفتاحين مختلفين من 32 بايت (64 حرف hex):
node -e "console.log(require('node:crypto').randomBytes(32).toString('hex'))"
بديلًا من ذلك، شغّل npm run secrets:generate لعرض مفتاحين مختلفين، ثم انسخهما إلى DATA_ENCRYPTION_KEY وMEMBERSHIP_HMAC_KEY. لا تستخدم المفتاح نفسه للحاجتين، ولا تغيّر المفتاحين من غير خطة لترحيل بيانات التوثيق الحالية.
ثبّت الحزم وشغّل إنشاء الجداول:
npm install
npm run db:migrate
npm run dev
يمكن تفعيل استعادة كلمة المرور وتأكيد البريد الإلكتروني عبر Resend: اضبط RESEND_API_KEY وEMAIL_FROM على عنوان مرسل موثّق في Resend، واضبط APP_URL على عنوان المنصة الفعلي. من دون إعداد البريد ستظهر رسالة توضح أن الاستعادة/التأكيد غير مفعّلين.
أنشئ حساب مدير النظام من جهازك بعد ضبط ADMIN_EMAIL, ADMIN_USERNAME, ADMIN_DISPLAY_NAME, ADMIN_PASSWORD في .env.local أو في shell، ثم:
npm run admin:create
كلمة المرور الإدارية يجب أن تكون 12 حرفًا على الأقل. لا توجد صفحة لتسجيل مدير ذاتيًا. سجّل الدخول من /admin/login.
اختبر رحلة المستخدم: التسجيل ← طلب التوثيق ← مراجعة الإدارة ← الموافقة ← دخول /feed. واختبر الدليل /people، والمجموعات /groups، والرسائل /messages، واستعادة كلمة المرور /forgot-password.
axis_app) من لوحة Neon، ومنحه صلاحيات CONNECT وUSAGE وSELECT, INSERT, UPDATE, DELETE للجداول. يمكن تنفيذ db/grant-app-role.sql بعد إنشاء الدور axis_app وضبط كلمة مروره. احتفظ بدور المالك لاتصال الترحيل فقط. استخدم كلمة مرور قوية خاصة بدور التطبيق.DATABASE_URL — اتصال Neon pooled.DATA_ENCRYPTION_KEY — مفتاح AES-256-GCM.MEMBERSHIP_HMAC_KEY — مفتاح HMAC منفصل.APP_URL — أصل الموقع الفعلي، مثل https://your-project.vercel.app بعد توفره.npm run db:migrate من بيئة آمنة لها وصول إلى Neon. لا تعتمد على زيارة صفحة الموقع لإنشاء الجداول.npm run admin:create من جهازك مع اتصال Neon نفسه. لا تضف ADMIN_PASSWORD كمتغير بيئة دائم للإنتاج إذا لم تكن تحتاجه لعملية التهيئة.npm run db:migrate من بيئة آمنة بدور المالك، أو نفّذ ملف الترحيل الموحّد db/migrations/20261025_one_sprint.sql في Neon SQL Editor. يحتوي الملف على ترحيلات الردود والمشاركة الداخلية والشبكة الاجتماعية والرسائل وتحديد المعدل، وهو مصمم لإعادة التنفيذ دون حذف المستخدمين أو المنشورات أو التعليقات الحالية./, /register, /login, /verification, /admin/login, /admin، ورفض الوصول إلى /feed قبل التوثيق.تأكد من ضبط APP_URL على النطاق النهائي. قارن دائمًا إعدادات Production مع Preview حتى لا تستخدم قاعدة الإنتاج دون قصد في تجارب المعاينة.
المنصة تدعم التثبيت كـ Progressive Web App (PWA) عبر HTTPS؛ لا يلزم إنشاء تطبيق منفصل في متجر التطبيقات لبدء تجربة التثبيت. تشمل ملفات PWA ملف public/manifest.webmanifest وأيقونات Android/iOS وتسجيل Service Worker وصفحة توضيح عند انقطاع الاتصال.
npm run pwa:check ثم npm run typecheck وnpm run build. افحص التثبيت الفعلي بعد النشر عبر HTTPS وعلى جهاز iOS وAndroid.تحتاج هذه النسخة مخطط Neon الذي يحتوي على الردود وإعجابات التعليقات والمشاركة الداخلية ومتابعة المهندسين والمجموعات والمحادثات والرموز المؤقتة لاستعادة كلمة المرور/تأكيد البريد وجدول تحديد المعدل.
DATABASE_URL_UNPOOLED على اتصال دور مالك قاعدة البيانات ثم شغّل npm run db:migrate، أو نفّذ ملف db/migrations/20261025_one_sprint.sql في Neon SQL Editor.axis_app محدود الصلاحيات لتنفيذ تغييرات المخطط.admin: إدارة كاملة، بما فيها إدارة الأعضاء.reviewer: مراجعة العضوية والمستندات والشهادات المهنية.moderator: مراجعة البلاغات وإدارة أهم الأحداث.member: لا يدخل المجتمع حتى يصبح verification_status='verified'.يُنشأ أول admin باستخدام السكريبت، وتُمنع الإدارة من التسجيل الذاتي. الدخول الإداري له مسار منفصل ومحدد المعدل.
src/app/ الصفحات وواجهات API
src/components/ مكونات الواجهة
src/lib/ الجلسات والتشفير وقاعدة البيانات والحد من الطلبات
src/app/people/ دليل المهندسين والملفات العامة
src/app/groups/ المجموعات الهندسية
src/app/messages/ المحادثات الخاصة
db/schema.sql مخطط PostgreSQL
db/migrations/ ترحيلات idempotent لنسخ الإنتاج
scripts/migrate.mjs إنشاء/تحديث المخطط
scripts/create-admin.mjs إنشاء أول مدير
.env.example أسماء المتغيرات المطلوبة دون أسرار
RESEND_API_KEY وEMAIL_FROM وAPP_URL؛ هذه المزايا غير فعالة افتراضيًا حتى إعداد مزود البريد والتحقق من نطاق الإرسال.npm run typecheck
npm test
npm run build
npm test اختبار بنيوي ثابت لوجود بوابات التوثيق والإدارة الأساسية؛ ليس بديلًا لاختبار تكاملي على Neon أو اختبار نشر حقيقي.
AXIS supports opt-in Web Push for installed browsers and mobile web apps. Set VAPID_PUBLIC_KEY, VAPID_PRIVATE_KEY, and VAPID_SUBJECT in the deployment environment. Users explicitly enable notifications in Settings; members waiting for verification can enable them on the verification screen. On iPhone, users must add AXIS to the Home Screen and open the installed app before requesting push permission. Push notifications supplement the in-app notification center; browser/platform delivery is not guaranteed.