Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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 لتقديم أسئلة لتقيم مستواك في العلوم الشرعية وتطوير حصيلتك العلمية في مجالات متنوعة، جميع الإجابات مصدرها موقع الدرر السنية.
- Host: GitHub
- URL: https://github.com/rn0x/islamicquizapi
- Owner: rn0x
- License: mit
- Created: 2024-01-12T16:09:40.000Z (11 months ago)
- Default Branch: main
- Last Pushed: 2024-10-16T23:21:00.000Z (2 months ago)
- Last Synced: 2024-10-20T04:06:37.462Z (2 months ago)
- Topics: database, database-islam, dorar, figh, islam, islamic, json, questions, quiz, quran, tafseer
- Language: JavaScript
- Homepage: https://islamicquiz.i8x.net/api/questions/random?count=5
- Size: 3.05 MB
- Stars: 6
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
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) | جميع البيانات ماخوذه من موقع معلمة الدرر
**لا تنسنا من دعوة صالحة بظهر الغيب 🤲**