Snap Algeria — IA Tour Algérie 2026: Expo app + Groq vision/LLM backend
# Snap Algeria 📸🇩🇿
## مسابقة IA Tour Algérie 2026
### التشغيل السريع
1. `cd backend && npm install && npm run seed && npm start`
2. `cd mobile && npm install && npx expo start`
### متطلبات
- Node.js v18+
- حساب Groq (مجاني): console.groq.com
- `GROQ_API_KEY` في `backend/.env`
### المكدس
- Groq Vision (qwen/qwen3.6-27b) → تحليل الصور
- Groq LLM (openai/gpt-oss-120b) → توليد القصص
- SQLite → قاعدة 57+ معلم جزائري (مع صور حقيقية)
- React Native + Expo → الموبايل
### نشر الخادم الخلفي على Render
الخدمة معرَّفة مسبقاً في `render.yaml` (اسمها `snap-algeria-api`). لإعادة نشرها أو نشرها من جديد:
1. ادفع هذا المستودع (أو مجلد `backend/` منه) إلى مستودع Git على GitHub متصل بحسابك على Render.
2. في لوحة Render، أنشئ **Web Service** جديدة (أو افتح الخدمة الموجودة `snap-algeria-api` إن كانت لا تزال موجودة) واربطها بالمستودع. سيتم اكتشاف `render.yaml` تلقائياً (`rootDir: backend`, `npm install`, `npm start`).
3. من تبويب **Environment** في لوحة الخدمة، أضف/تأكد من متغيّر البيئة:
- `GROQ_API_KEY` = مفتاحك من console.groq.com
4. بعد اكتمال النشر، تحقق من الرابط:
`
snap-algeria-api.onrender.c…`
يجب أن يُرجع:
```json
{ "status": "ok", "groq_api_key_configured": true, "heritage_sites_count": 57 }
```
إذا كان `groq_api_key_configured: false`، فمتغيّر البيئة غير مضبوط على Render.
إذا كان `heritage_sites_count` أقل من 57، شغّل يدوياً مرة واحدة `npm run seed` (أو احذف قاعدة البيانات القديمة على الخادم لإعادة البذر بالبيانات الجديدة).
5. تذكير: خطة Render المجانية (`plan: free`) "تنام" الخدمة بعد عدم النشاط، ما يجعل أول طلب بعد فترة سكون بطيئاً (30-60 ثانية) — هذا طبيعي وليس عطلاً.
### فريق التطوير
عمور محمد الشيخ