Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/rn0x/islamicquizapi

قاعدة بيانات وواجهة برمجة تطبيقات API لتقديم أسئلة لتقيم مستواك في العلوم الشرعية وتطوير حصيلتك العلمية في مجالات متنوعة، جميع الإجابات مصدرها موقع الدرر السنية.
https://github.com/rn0x/islamicquizapi

database database-islam dorar figh islam islamic json questions quiz quran tafseer

Last synced: about 2 months ago
JSON representation

قاعدة بيانات وواجهة برمجة تطبيقات API لتقديم أسئلة لتقيم مستواك في العلوم الشرعية وتطوير حصيلتك العلمية في مجالات متنوعة، جميع الإجابات مصدرها موقع الدرر السنية.

Awesome Lists containing this project

README

        

### **IslamicQuizAPI**

مشروع مفتوح المصدر يوفر **قاعدة بيانات متعددة التنسيقات** تشمل **JSON، SQLite، وCSV**، إضافةً إلى **واجهة برمجة تطبيقات (API)** مخصصة لتسهيل استخدام الأسئلة الشرعية في التطبيقات والمشاريع المختلفة.

#### **الأهداف**

- **تقييم مستوى المعرفة بالعلوم الشرعية** وتطوير الحصيلة العلمية.
- **تقديم الأسئلة في مجالات مختلفة** مع دعم الفئات والمواضيع المتنوعة.
- **مرونة الاستخدام** حيث يمكن للمطورين اختيار التنسيق الأنسب لمشاريعهم.
- **الاستناد إلى إجابات موثوقة** مقتبسة من **موقع الدرر السنية**.


قاعدة بيانات أسئلة دينية


قاعدة بيانات أسئلة دينية

---

## الفئات

- [التفسير](#التفسير)
- [العقيدة](#العقيدة)
- [الحديث](#الحديث)
- [الفقه](#الفقه)
- [التاريخ](#التاريخ)
- [اللغة العربية](#اللغة-العربية)

---

## **المزايا الرئيسية**

- **واجهة API** سهلة الاستخدام لعرض الأسئلة، الفئات، والمواضيع.
- **تنسيقات متعددة للبيانات** (JSON، SQLite، وCSV) لسهولة التوافق مع التطبيقات المختلفة.
- **تحكم في التصفح والبحث** داخل الأسئلة.
- **إمكانية تحديد عدد معين من الأسئلة العشوائية** لمزيد من المرونة.
- **حماية وأمان** باستخدام Helmet وRate Limiting لتقليل المخاطر.

---

## **المتطلبات**

- **Node.js** (إصدار 18 أو أحدث)
- **Git** (في حال التنزيل من المستودع)
- **إدارة الحزم** باستخدام npm أو yarn

---

## **التهيئة والتثبيت**

1. **استنساخ المستودع**

```bash
git clone https://github.com/rn0x/IslamicQuizAPI.git
cd IslamicQuizAPI
```

2. **تثبيت التبعات**

```bash
npm install
```

3. **إنشاء ملف البيئة (.env)**
أنشئ ملف `.env` في جذر المشروع وأضف المتغيرات التالية:

```bash
PORT=3000
BODY_SIZE_LIMIT=10mb
RATE_LIMIT_WINDOW_MS=3600000 # 1 ساعة
RATE_LIMIT_MAX=500 # 500 طلب في الساعة
```

4. **تشغيل المشروع في وضع التطوير**

```bash
npm run dev
```

5. **تشغيل المشروع في الوضع الإنتاجي**

```bash
npm start
```

6. **اختياري: تحويل البيانات**
لتحويل بيانات JSON إلى SQLite وCSV:

```bash
npm run db
```

---

## **تشغيل المشروع باستخدام Docker**

يمكنك تشغيل مشروع **IslamicQuizAPI** داخل حاوية Docker لتبسيط عملية النشر والتوزيع. إليك الخطوات اللازمة لذلك:

### **المتطلبات المسبقة**

قبل البدء، تأكد من أنك قد قمت بتثبيت:

- **Docker** على نظامك. يمكنك تحميله من [الموقع الرسمي لـ Docker](https://www.docker.com/get-started).

### **الخطوات لتشغيل المشروع**

1. **استنساخ المستودع**

إذا لم تكن قد قمت بذلك بعد، استنساخ المستودع إلى جهازك:

```bash
git clone https://github.com/rn0x/IslamicQuizAPI.git
cd IslamicQuizAPI
```

2. **بناء صورة Docker**

قم بإنشاء صورة Docker من ملف `Dockerfile` الموجود في المشروع:

```bash
docker build -t islamic-quiz-api .
```

- `-t islamic-quiz-api`: هذا هو اسم الصورة التي ستقوم بإنشائها.

3. **تشغيل حاوية Docker**

بعد إنشاء الصورة، قم بتشغيلها باستخدام الأمر التالي:

```bash
docker run -p 3000:5000 islamic-quiz-api
```

- `-p 3000:5000`: يربط المنفذ 3000 على جهازك بالمنفذ 5000 داخل الحاوية.

`الجزء الأول` (3000): هذا هو المنفذ على جهازك المضيف (host).

`الجزء الثاني` (5000): هذا هو المنفذ الذي يستمع عليه التطبيق داخل الحاوية (container).

- `--env-file .env`: يقوم بتحميل المتغيرات البيئية من ملف `.env` ليتم استخدامها داخل الحاوية.

4. **الوصول إلى واجهة API**

بعد تشغيل الحاوية، يمكنك الوصول إلى واجهة API من خلال المتصفح أو باستخدام أدوات مثل Postman عبر الرابط التالي:

```
http://localhost:3000/api
```

### **ملاحظات**

- تأكد من أن لديك Docker يعمل بشكل صحيح على نظامك قبل اتباع الخطوات.
- يمكنك التحقق من حالة الحاويات قيد التشغيل باستخدام الأمر:

```bash
docker ps
```

- إذا كنت ترغب في إيقاف الحاوية، يمكنك استخدام:

```bash
docker stop
```

حيث `` هو المعرف الخاص بالحاوية التي ترغب في إيقافها.

---

## **أمثلة لاستخدام API**

1. **عرض جميع الفئات والمواضيع**

```http
GET /api/categories
```

الإستجابة:

```
[
{
"id": 1,
"arabicName": "التفسير",
"englishName": "tafseer",
"description": "فهم القرآن الكريم ومعرفة مقصوده من أسمى المقاصد, يقول الله تعالى {كِتَابٌ أَنزَلْنَاهُ إِلَيْكَ مُبَارَكٌ لِّيَدَّبَّرُوا آيَاتِهِ وَلِيَتَذَكَّرَ أُولُو الْأَلْبَابِ} ص:29",
"topics": []
},
{
"id": 2,
"arabicName": "العقيدة",
"englishName": "aqeedah",
"description": "الإيمان بالله وملائكته وكتبه ورسله واليوم الآخر والقدر خيره وشره.",
"topics": []
},
{
"id": 3,
"arabicName": "السيرة النبوية",
"englishName": "sira",
"description": "دراسة حياة الرسول محمد صلى الله عليه وسلم وأحداث حياته.",
"topics": []
}
]
```

- id: معرف الفئة.
- arabicName: الاسم باللغة العربية.
- englishName: الاسم باللغة الإنجليزية.
- description: وصف مختصر للفئة.
- topics: قائمة المواضيع المرتبطة بهذه الفئة []

2. **عرض جميع الأسئلة بصفحات محددة**

```http
GET /api/questions?page=1&limit=10
```

الإستجابة:

```json
{
"page": 1,
"limit": 10,
"totalQuestions": 5820,
"totalPages": 582,
"questions": [
{
"id": 1,
"q": "من أسْماءِ سورةِ الفاتحةِ:",
"link": "https://dorar.net/tafseer/1#tt1",
"answers": [
{
"answer": "فاتحةُ الكِتابِ",
"t": 1
},
{
"answer": "أمُّ السوَرِ",
"t": 0
},
{
"answer": "نورُ الهدايةِ",
"t": 0
}
],
"category": "التفسير",
"topic": "الفاتحة"
},
{
"id": 2,
"q": "ما هي أول سورة نزلت في القرآن؟",
"link": "https://dorar.net/tafseer/2#tt1",
"answers": [
{
"answer": "العلق",
"t": 1
},
{
"answer": "الفاتحة",
"t": 0
},
{
"answer": "البقرة",
"t": 0
}
],
"category": "التفسير",
"topic": "النزول"
}
// يمكن إضافة المزيد من الأسئلة هنا
]
}
```

- page: رقم الصفحة الحالية.
- limit: عدد الأسئلة في الصفحة.
- totalQuestions: إجمالي عدد الأسئلة في قاعدة البيانات.
- totalPages: إجمالي عدد الصفحات المتاحة.
- questions: مصفوفة تحتوي على الأسئلة في الصفحة الحالية:
- id: معرف السؤال.
- q: نص السؤال.
- link: رابط للمزيد من التفاصيل حول السؤال.
- answers: مصفوفة تحتوي على الإجابات المحتملة:
- answer: نص الإجابة.
- t: قيمة تشير إلى ما إذا كانت الإجابة صحيحة (1) أو خاطئة (0).
- category: الفئة التي ينتمي إليها السؤال.
- topic: الموضوع المرتبط بالسؤال.

3. **عرض مواضيع فئة معينة**

```http
GET /api/categories/1/topics
```

الإستجابة:

```json
[
{
"slug": "tahara",
"name": "الطهارة"
},
{
"slug": "salah",
"name": "الصلاة"
},
{
"slug": "zakah",
"name": "الزكاة"
},
{
"slug": "siam",
"name": "الصيام"
},
{
"slug": "hajj",
"name": "الحج"
},
{
"slug": "figh-zina",
"name": "اللباس والزينة"
},
{
"slug": "figh-atema",
"name": "الأطعمة والأشربة"
},
{
"slug": "figh-said",
"name": "التذكية والعقيقة والصيد"
},
{
"slug": "figh-nikah",
"name": "النكاح"
},
{
"slug": "figh-talag",
"name": "الطلاق"
},
{
"slug": "figh-iela",
"name": "الخلع والإيلاء"
},
{
"slug": "ridaa",
"name": "الرضاع والحضانة والنفقات"
},
{
"slug": "idah",
"name": "اللعان والعدة"
},
{
"slug": "e-nozor",
"name": "الأيمان والنذور"
},
{
"slug": "wagf",
"name": "الوقف"
},
{
"slug": "wasaya",
"name": "الوصايا"
},
{
"slug": "hibat",
"name": "الهبات"
}
]
```

- slug: معرف الموضوع باللغة الإنجليزية، يُستخدم غالبًا في الروابط.
- name: اسم الموضوع باللغة العربية.

4. **جلب أسئلة عشوائية**

```http
GET /api/questions/random?count=5
```

الإستجابة:

```json
[
{
"id": 1,
"q": "هِبةُ الوَديعةِ لِمَن هي عِندَه",
"link": "https://www.dorar.net/feqhia/6634",
"answers": [
{
"answer": "لا تَجوزُ",
"t": 0
},
{
"answer": "تُكرَهُ",
"t": 0
},
{
"answer": "تَجوزُ",
"t": 1
}
],
"category": "الفقه",
"topic": "الهبات"
},
{
"id": 17,
"q": "قُرِئَ \"لِلْعَالِمِينَ\" بكسر اللَّامِ في قَولِه تَعالَى: {إِنَّ فِي ذَلِكَ لَآيَاتٍ لِلْعَالِمِينَ} أي:",
"link": "https://www.dorar.net/tafseer/30/4#tt4",
"answers": [
{
"answer": "عَالمُ الأَرضِ وعَالَمُ السَّماءِ",
"t": 0
},
{
"answer": "أَحبارُ اليَهُودِ",
"t": 0
},
{
"answer": "جَمع عالِمٍ",
"t": 1
}
],
"category": "التفسير",
"topic": "الروم"
},
{
"id": 10,
"q": "معنى قولِه: {نَادِيكُمُ}:",
"link": "https://dorar.net/tafseer/29/9",
"answers": [
{
"answer": "قَريَتُكم",
"t": 0
},
{
"answer": "بُستَانُكم",
"t": 0
},
{
"answer": "مَجلِسُكُم",
"t": 1
}
],
"category": "التفسير",
"topic": "العنكبوت"
},
{
"id": 18,
"q": "مَن كَذَب على رَسولِ اللهِ ﷺ في تَحليلِ حَرامٍ أو عَكسِه، فهو:",
"link": "https://www.dorar.net/aqeeda/2939",
"answers": [
{
"answer": "مُنافِقٌ مَعلومُ النِّفاِق",
"t": 0
},
{
"answer": "مُسلِمٌ مُرتكِبٌ لكَبيرةٍ",
"t": 0
},
{
"answer": "كافِرٌ خارِجٌ منَ المِلَّةِ",
"t": 1
}
],
"category": "العقيدة",
"topic": "نواقض الإيمان"
},
{
"id": 6,
"q": "مَعنَى \"زَاغَتْ\" في قَولِه تعالى: {أَمْ زَاغَتْ عَنْهُمُ الْأَبْصَارُ}: ",
"link": "https://dorar.net/tafseer/38/11",
"answers": [
{
"answer": "عَمِيَت",
"t": 0
},
{
"answer": "تَعالَت وتَكبَّرَت",
"t": 0
},
{
"answer": "عدَلتْ ومالَتْ",
"t": 1
}
],
"category": "التفسير",
"topic": "ص"
}
]
```

- id: معرف السؤال.
- q: نص السؤال.
- link: رابط إلى مزيد من المعلومات حول السؤال.
- answers: قائمة بالإجابات المحتملة:
- answer: نص الإجابة.
- t: تشير إلى ما إذا كانت الإجابة صحيحة (1) أم لا (0).
- category: الفئة التي ينتمي إليها السؤال.
- topic: الموضوع المحدد للسؤال.

5. **البحث في الأسئلة عبر النص**

```http
GET /api/search?q=الصلاة
```

الإستجابة:

```json
[
{
"id": 5,
"q": "قُدِّمت الصلاةُ على الزكاةِ في قولِه تَعالَى: {الَّذِينَ يُقِيمُونَ الصَّلَاةَ وَيُؤْتُونَ الزَّكَاةَ}:",
"link": "https://www.dorar.net/tafseer/31/1",
"answers": [
{
"answer": "لأنَّها أوَّلُ ما فُرِضَ مِن فَرائضِ الإسلامِ",
"t": 0
},
{
"answer": "لأنَّ الصَّلاةَ نَفعُها لازِمٌ، والزَّكاةَ نفعُها مُتعَدٍّ للغيرِ",
"t": 0
},
{
"answer": "لأنَّها أحبُّ الأعْمالِ إلى اللهِ تَعالَى ",
"t": 1
}
],
"category": "التفسير",
"topic": "لقمان"
},
{
"id": 20,
"q": "قال اللهُ تعالَى: {إِنَّمَا تُنْذِرُ الَّذِينَ يَخْشَوْنَ رَبَّهُمْ بِالْغَيْبِ وَأَقَامُوا الصَّلَاةَ} فيه فَضيلةُ الصلاةِ؛ وأنَّها سببٌ لـ:",
"link": "https://dorar.net/tafseer/35/5",
"answers": [
{
"answer": "مُضاعفَةِ الأَجرِ",
"t": 0
},
{
"answer": "الكَفِّ عن الشَّهَواتِ",
"t": 0
},
{
"answer": "الانتفاعِ بإنذارِ النَّبِيِّ صلَّى الله عليه وسلَّم",
"t": 1
}
],
"category": "التفسير",
"topic": "فاطر"
},
{
"id": 19,
"q": "القَهْقَهةُ (الضَّحِكُ) في الصلاةِ",
"link": "https://www.dorar.net/feqhia/443",
"answers": [
{
"answer": "لا تَنقُضُ الوُضوءَ، وإنْ كانت تُفسِدُ الصلاةَ",
"t": 1
},
{
"answer": "تَنقُضُ الوُضوءَ ولا تَنقُضُ الصلاةَ",
"t": 0
},
{
"answer": "تَنقُضُ الوُضوءَ والصلاةَ",
"t": 0
}
],
"category": "الفقه",
"topic": "الطهارة"
},
{
"id": 8,
"q": "أصدرَتِ الحكومةُ التركيةُ برئاسةِ مصطفى كمال أتاتورك قرارًا حكوميًّا سنةَ 1353هـ 1934م بتوقُّفِ الصلاةِ في:",
"link": "https://www.dorar.net/history/?page=255",
"answers": [
{
"answer": "جامعِ الفاتِحِ",
"t": 0
},
{
"answer": "جامعِ أيوب سُلطان",
"t": 0
},
{
"answer": "جامِعِ آيا صُوفْيا",
"t": 1
}
],
"category": "التاريخ",
"topic": "التاريخ المعاصر"
}
]
```

- id: معرف السؤال.
- q: نص السؤال.
- link: رابط إلى مزيد من المعلومات حول السؤال.
- answers: قائمة بالإجابات المحتملة:
- answer: نص الإجابة.
- t: تشير إلى ما إذا كانت الإجابة صحيحة (1) أم لا (0).
- category: الفئة التي ينتمي إليها السؤال.
- topic: الموضوع المحدد للسؤال.

6. **عرض جميع الأسئلة لفئة معينة**

```http
GET /api/categories/1/questions?page=1&limit=10
```

الإستجابة:

```json
{
"page": 1,
"limit": 10,
"totalQuestions": 2400,
"totalPages": 240,
"questions": [
{
"id": 1,
"q": "من أسْماءِ سورةِ الفاتحةِ:",
"link": "https://dorar.net/tafseer/1#tt1",
"answers": [
{
"answer": "فاتحةُ الكِتابِ",
"t": 1
},
{
"answer": "أمُّ السوَرِ",
"t": 0
},
{
"answer": "نورُ الهدايةِ",
"t": 0
}
],
"category": "التفسير",
"topic": "الفاتحة"
},
{
"id": 2,
"q": "من فَضائلِها",
"link": "https://dorar.net/tafseer/1#tt1",
"answers": [
{
"answer": "حُصولُ السَّعةُ في الرِّزقِ",
"t": 0
},
{
"answer": "حُصولُ المناجاةِ في الصَّلاةِ بينَ العَبدِ وربِّه",
"t": 1
},
{
"answer": "النَّجاةُ من عَذابِ القَبرِ",
"t": 0
}
],
"category": "التفسير",
"topic": "الفاتحة"
},
{
"id": 3,
"q": "من خَصائصِ سورةِ الفاتحةِ",
"link": "https://dorar.net/tafseer/1#tt1",
"answers": [
{
"answer": "أنَّه لا صَلاةَ لِمَن لم يَقْرأْ بها",
"t": 1
},
{
"answer": "أنَّها تعصِمُ من فِتنةِ الدجَّالِ",
"t": 0
},
{
"answer": "أنَّ قِراءَتَها تَفتحُ أَبوابَ الخيرِ",
"t": 0
}
],
"category": "التفسير",
"topic": "الفاتحة"
},
{
"id": 4,
"q": "من فَضائلِ سورةِ الفاتحةِ",
"link": "https://dorar.net/tafseer/1#tt2",
"answers": [
{
"answer": "أنَّها تُعينُ على قيامِ الليلِ",
"t": 0
},
{
"answer": "أنَّها رُقْيةٌ شافيةٌ",
"t": 1
},
{
"answer": "أنَّها تَزيدُ في الرِّزقِ",
"t": 0
}
],
"category": "التفسير",
"topic": "الفاتحة"
},
{
"id": 5,
"q": "معنى الربِّ هو:",
"link": "https://www.dorar.net/tafseer/1/1#tt7",
"answers": [
{
"answer": "المُستحِقُّ للحَمدِ",
"t": 0
},
{
"answer": "الذي لا يُعبَدُ سِواهُ",
"t": 0
},
{
"answer": "السيِّدُ، والمالِكُ، والمصلِحُ، والصَّاحبُ، والمُرَبِّي، والخالِقُ",
"t": 1
}
],
"category": "التفسير",
"topic": "الفاتحة"
},
{
"id": 6,
"q": "المقصودُ بالضَّالِّينَ في قولِه تعالى: {غَيْرِ الْمَغْضُوبِ عَلَيْهِمْ وَلَا الضَّالِّينَ} هُم:",
"link": "https://www.dorar.net/tafseer/1/1#tt4",
"answers": [
{
"answer": "المرتَدُّونَ الذين آمنُوا ثم كَفرُوا فطَبعَ اللهُ على قُلوبِهم",
"t": 0
},
{
"answer": "النَّصارى ومَن سلَك طريقتَهم ممَّن جهِلوا الحقَّ، فعبَدوا اللهَ تعالى بغَيرِ عِلمٍ",
"t": 1
},
{
"answer": "الذين قال الله فيهم: {الَّذِينَ ضَلَّ سَعْيُهُمْ فِي الْحَيَاةِ الدُّنْيَا وَهُمْ يَحْسَبُونَ أَنَّهُمْ يُحْسِنُونَ صُنْعًا}",
"t": 0
}
],
"category": "التفسير",
"topic": "الفاتحة"
},
{
"id": 7,
"q": "مِن صِفاتِ الذينَ أنعَمَ اللهُ تعالى عليهمُ المذكورةِ في سورةِ الفاتحةِ:",
"link": "https://dorar.net/tafseer/1/1#tt7",
"answers": [
{
"answer": "أنَّهم لَيسوا كاليَهودِ",
"t": 1
},
{
"answer": "أنَّهم منَ الصَّابِرينَ",
"t": 0
},
{
"answer": "أنَّهم لَيسوا منَ المنافِقينَ",
"t": 0
}
],
"category": "التفسير",
"topic": "الفاتحة"
},
{
"id": 8,
"q": "الرَّحْمَنِ الرَّحِيمِ:",
"link": "https://www.dorar.net/tafseer/1/1#tt4",
"answers": [
{
"answer": "اسْمانِ مُشتَقَّانِ منَ الرَّحمةِ على وَجهِ المُبالَغةِ، والرَحيمٌ أشَدُّ مُبالَغةً من الرَحمنَ",
"t": 0
},
{
"answer": "اسْمانِ مُشتَقَّانِ منَ الرَّحمةِ على وَجهِ المُبالَغةِ، والرَحمنُ تدُلُّ على الرَحيمٍ، دونَ فَرقٍ بَينَهما",
"t": 0
},
{
"answer": "اسْمانِ مُشتَقَّانِ منَ الرَّحمةِ على وَجهِ المُبالَغةِ، والرَحمنُ أشدُّ مُبالَغةً من الرَحيمٍ",
"t": 1
}
],
"category": "التفسير",
"topic": "الفاتحة"
},
{
"id": 9,
"q": "معنى: {مَالِكِ يَوْمِ الدِّينِ}",
"link": "https://dorar.net/tafseer/1/1#tt4",
"answers": [
{
"answer": "المتصرِّفُ في جميعِ خلْقِه بالفِعلِ فقطْ",
"t": 0
},
{
"answer": "المتصرِّفُ في جميعِ خلْقِه بالقَولِ فقطْ",
"t": 0
},
{
"answer": "المتصرِّفُ في جميعِ خلْقِه بالقَولِ والفِعلِ",
"t": 1
}
],
"category": "التفسير",
"topic": "الفاتحة"
},
{
"id": 10,
"q": "في قولُه صلَّى اللهُ عليه وسلَّمَ: \"وما يُدْريكَ أنَّها رُقْيةٌ؟\" يُقصَدُ بها:",
"link": "https://dorar.net/tafseer/1#tt1",
"answers": [
{
"answer": "المعوِّذتان",
"t": 0
},
{
"answer": "سورةُ الفاتحة",
"t": 1
},
{
"answer": "سورةُ الإخْلاص",
"t": 0
}
],
"category": "التفسير",
"topic": "الفاتحة"
}
]
}
```

- page: رقم الصفحة الحالية.
- limit: عدد الأسئلة في الصفحة.
- totalQuestions: إجمالي عدد الأسئلة.
- totalPages: إجمالي عدد الصفحات.
- questions: قائمة الأسئلة:
- id: معرف السؤال.
- q: نص السؤال.
- link: رابط لمزيد من المعلومات حول السؤال.
- answers: قائمة بالإجابات المحتملة:
- answer: نص الإجابة.
- t: تشير إلى ما إذا كانت الإجابة صحيحة (1) أم لا (0).
- category: الفئة التي ينتمي إليها السؤال.
- topic: الموضوع المحدد للسؤال.

7. **عرض جميع الأسئلة لموضوع معين**

```http
GET /api/categories/1/topics/some-topic/questions
```

الإستجابة:

```json
[
{
"id": 1,
"q": "من أسْماءِ سورةِ الفاتحةِ:",
"link": "https://dorar.net/tafseer/1#tt1",
"answers": [
{
"answer": "فاتحةُ الكِتابِ",
"t": 1
},
{
"answer": "أمُّ السوَرِ",
"t": 0
},
{
"answer": "نورُ الهدايةِ",
"t": 0
}
],
"category": "التفسير",
"topic": "الفاتحة"
},
{
"id": 2,
"q": "من فَضائلِها",
"link": "https://dorar.net/tafseer/1#tt1",
"answers": [
{
"answer": "حُصولُ السَّعةُ في الرِّزقِ",
"t": 0
},
{
"answer": "حُصولُ المناجاةِ في الصَّلاةِ بينَ العَبدِ وربِّه",
"t": 1
},
{
"answer": "النَّجاةُ من عَذابِ القَبرِ",
"t": 0
}
],
"category": "التفسير",
"topic": "الفاتحة"
},
{
"id": 3,
"q": "من خَصائصِ سورةِ الفاتحةِ",
"link": "https://dorar.net/tafseer/1#tt1",
"answers": [
{
"answer": "أنَّه لا صَلاةَ لِمَن لم يَقْرأْ بها",
"t": 1
},
{
"answer": "أنَّها تعصِمُ من فِتنةِ الدجَّالِ",
"t": 0
},
{
"answer": "أنَّ قِراءَتَها تَفتحُ أَبوابَ الخيرِ",
"t": 0
}
],
"category": "التفسير",
"topic": "الفاتحة"
}
]
```

- id: معرف السؤال.
- q: نص السؤال.
- link: رابط لمزيد من المعلومات حول السؤال.
- answers: قائمة بالإجابات المحتملة:
- answer: نص الإجابة.
- t: تشير إلى ما إذا كانت الإجابة صحيحة (1) أم لا (0).
- category: الفئة التي ينتمي إليها السؤال.
- topic: الموضوع المحدد للسؤال.

---

## **هيكلية الملفات والمجلدات**

```
IslamicQuizAPI/

├── database/ # يحتوي على ملفات JSON SQLITE C

├── src/ # مجلد المصدر الرئيسي
│ ├── routes/ # يحتوي على تعريف المسارات والوظائف
│ │ └── quizRoutes.mjs
│ ├── logger.mjs # ملف تسجيل الأخطاء والعمليات
│ └── index.mjs # ملف الدخول الرئيسي للتطبيق

├── unused/ # يحتوي على سكربتات وملفات غير مستخدمة

├── .env # ملف إعداد المتغيرات البيئية
├── package.json # تعريف المشروع والتبعيات
└── README.md # التوثيق
```

---

## **التبعيات**

- **Express**: لإنشاء السيرفر.
- **Helmet**: لتعزيز أمان التطبيق.
- **Rate Limiting**: لتحديد عدد الطلبات لكل IP.
- **CORS**: للسماح بالوصول عبر مصادر متعددة.
- **fs-extra**: للتعامل مع ملفات JSON.
- **dotenv**: لتحميل المتغيرات البيئية.
- **better-sqlite3**: لتحويل البيانات إلى SQLite.
- **json2csv**: لتحويل البيانات إلى CSV.

---

## **المساهمة في المشروع**

1. قم بعمل **Fork** من المشروع.
2. أنشئ فرعًا جديدًا باستخدام:
```bash
git checkout -b feature/new-feature
```
3. أضف تعديلاتك وقدم طلب سحب (**Pull Request**).

---

## **رخصة الاستخدام**

هذا المشروع مرخص تحت **رخصة MIT**، مما يسمح بالاستخدام المفتوح والتعديل بحرية.

---

## **المستودع**

رابط المشروع على GitHub:
[IslamicQuizAPI - GitHub](https://github.com/rn0x/IslamicQuizAPI)

---

## تحميل القاعدة

![quran-data](https://img.shields.io/github/downloads/rn0x/IslamicQuizAPI/total?color=blue&label=Total%20Downloads)

[json](https://github.com/rn0x/IslamicQuizAPI/releases/download/database/database.json)

[sqlite](https://github.com/rn0x/IslamicQuizAPI/releases/download/database/database.sqlite)

[csv](https://github.com/rn0x/IslamicQuizAPI/releases/download/database/database.csv)

[dorar.net](https://dorar.net/m3lama) | جميع البيانات ماخوذه من موقع معلمة الدرر

**لا تنسنا من دعوة صالحة بظهر الغيب 🤲**