عن المشروع
# لوحة تحليلات تدفق النقر بالوقت الفعلي
لوحة تحليلات زيارات المواقع بالوقت الفعلي مبنية باستخدام Apache Kafka وPython وPandas وMatplotlib. تقوم النظام بمحاكاة بيانات مرور Clickstream، ثم بثّها عبر Kafka، ورسم لوحات تحليلية حية.
## الميزات الرئيسية
- خط أنابيب بث بيانات تدفق النقر بالوقت الفعلي
- بنية Producer وConsumer على Kafka
- لوحة عمل مبنية على Matplotlib مع رسوم متحركة محدّثة
- تتبع توزيع المرور حسب البلد
- تتبع نمو الزوار الفريدين مع مرور الوقت
- إعداد Docker Compose لبنية Kafka التحتية
## التقنيات المستخدمة
Python, Apache Kafka, Docker, Pandas, Matplotlib, NumPy
## هيكل المشروع
```
kafka-project/
├── consumer.py # مستهلك Kafka + لوحة Matplotlib
├── producer.py # منتج Kafka يبعث أحداث تدفق النقر
├── generate_data.py # مولّد بيانات Clickstream اصطناعية
├── docker-compose.yml # تكوين كومة Kafka
└── README.md
```
## كيف يعمل المشروع
1. يقوم `generate_data.py` بإنتاج سجلات Clickstream اصطناعية تشمل جلسات المستخدمين، وعروض الصفحات، ورموز البلدان، والطوابع الزمنية.
2. يقرأ `producer.py` هذه السجلات وينشرها إلى موضوع Kafka باسم `clickstream-topic`.
3. يستهلك `consumer.py` الرسائل من Kafka ويحدّث.figure Matplotlib كل 100 رسالة، مع عرض توزيع البلدان كرسم أعمدة، ونمو المستخدمين الفريدين كرسم خطي.
4. يتم تشغيل Kafka داخل حاويات Docker عبر Docker Compose.
## تشغيل المشروع
1. بدء خدمات Kafka:
```bash
docker compose up -d
```
2. إنشاء الموضوع:
```bash
docker exec -it kafka /opt/kafka/bin/kafka-topics.sh --create --topic clickstream-topic --bootstrap-server localhost:9092
```
3. توليد مجموعة البيانات:
```bash
python generate_data.py
```
4. تشغيل المنتج:
```bash
python producer.py
```
5. فتح طرفية ثانية وتشغيل المستهلك:
```bash
python consumer.py
```
ستتم تحديث نافذة Matplotlib بشكل مباشر مع وصول رسائل المستهلك.
## التحسينات المخطط لها
- لوحة عمل مدعومة بالويب (مثل Streamlit أو Dash)
- دمج Apache Spark Streaming
- تخزين قاعدة بيانات دائم للتحليلات التاريخية
- تحليلات مستوى الجلسة
- نماذج التنبؤ بسلوك المستخدمين
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.