## الخدمة الخلفية (NestJS) Translation Translation Translation Translation Translation Translation Translation Translation Translation Translation يتضمن تطبيق لوحة الإدارة apps/api apps/admin-panel ### متطلبات النظام تأكد من أن نظامك يلبي المتطلبات التالية قبل بدء التثبيت: - Node.js v18 أو أعلى - PostgreSQL 15 أو أعلى - ريديس v5 أو أعلى ### خطوات التثبيت 1. استنساخ/استخراج المستودع 2. تثبيت التبعيات: ```bash npm i ``` #### بيئة الإعداد - إعادة تسمية`.env.example`ل`.env` #### قاعدة بيانات الإعداد - يرتب`DATABASE_URL`ل`.env` ```sh DATABASE_URL="postgresql://:@:5432/?schema=public" # example DATABASE_URL="postgresql://postgres:postgre123@localhost:5432/backtix?schema=public" ``` - قم بتشغيل الترحيل لإنشاء الجداول المطلوبة ```bash npx prisma migrate deploy ``` - قم بتشغيل بذارة قاعدة البيانات لإنشاء مستخدمين`superadmin` ```bash npm run db:seed ``` #### يثبت**تسجيل الدخول جوجل**معرف الخادم والعميل - إنشاء مشروع جديد في[جوجل السحابية وحدة التحكم](https://console.cloud.google.com/projectcreate) - بمجرد الانتهاء من إنشاء المشروع، حدده`APIs & Services`، ثم حدد`OAuth consent screen`على الجانب الأيسر - أدخل اسم التطبيق والبريد الإلكتروني و`Developer contact information` ![Cloud Console](/assets/Screenshot_1.png) - **الخادم**معرف العميل - يختار`Credentials`في الشريط الجانبي الأيسر، انقر فوق`CREATE CREDENTIALS`، يختار`OAuth client ID` ![Cloud Console](/assets/Screenshot_2.png) - يختار`Web application`نوع التطبيق، بيري ناما لالو حفظ/إنشاء ![Cloud Console](/assets/Screenshot_3.png) - ترجمة`Client ID`و`Client secret`أعطيت`.env` ```sh # google oauth SERVER_GOOGLE_CLIENT_ID= SERVER_GOOGLE_CLIENT_SECRET= ``` - **التطبيق على شبكة الإنترنت**معرف العميل - `CREATE CREDENTIALS`العودة، حدد`OAuth client ID` - يختار`Web application`نوع التطبيق، وإعطاء اسم و`Authorized JavaScript origins`كما في الصورة (إذا كنت تستخدم المضيف المحلي)، ثم احفظ/أنشئ ![Cloud Console](/assets/Screenshot_4.png) - ترجمة`Client ID`و`Client secret`أعطيت`.env` ```sh # optional web only WEB_APP_GOOGLE_CLIENT_ID= WEB_APP_GOOGLE_CLIENT_SECRET= ``` - انقر`DOWNLOAD JSON`وحفظ معرف العميل. سيتم استخدام معرف عميل الويب في تطبيق Flutter للجوال. #### إعداد خادم midtrans ومفتاح العميل - اذهب إلى[لوحة القيادة ميدترانس](https://dashboard.midtrans.com/)، حدد البيئة`sandbox`(مستحسن) أو`production` - أدخل إلى`Settings`>`Access Keys`، ثم انسخ مفاتيح العميل والخادم إلى الملف`.env` ```sh # sandbox MIDTRANS_URL=https://app.sandbox.midtrans.com/snap/v1/transactions # production MIDTRANS_URL=https://app.midtrans.com/snap/v1/transactions MIDTRANS_SERVER_KEY= MIDTRANS_CLIENT_KEY= ``` - التكوين المتغير`.env`أخرى حسب الحاجة. ### كيف تركض 1. يولد`metadata`: ```bash npm run metadata --workspace=@backtix-service/api ``` 2. تشغيل التطبيق ```bash npm run start ``` - وضع التنمية ```bash npm run start:dev ``` 2. مستندات Swagger API - افتح http://localhost:3000/api/docs (اضبط عنوان URL الأساسي) 3. اختبار (اختياري) ```bash npm test ``` ### لقطات الشاشة ![Swagger API Docs](/assets/swagger.png)