Skip to content

Commit cffabad

Browse files
committed
🔥 Add Firebase integration - Complete setup with services, routes, and config files
1 parent b668ddd commit cffabad

17 files changed

+4680
-2
lines changed

.firebaserc

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"projects": {
3+
"default": "valiant-bonbon-479503-p3"
4+
}
5+
}
Lines changed: 383 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,383 @@
1+
# 🌐 Cloudflare للتصميم والنشر
2+
## دليل شامل لاستخدامات Cloudflare في المشروع
3+
4+
---
5+
6+
## 📋 ما هو Cloudflare في مشروعك؟
7+
8+
### الخدمات المستخدمة حالياً:
9+
10+
1.**Cloudflare Tunnel** - ربط Backend بالإنترنت
11+
2.**Cloudflare Pages** - نشر Web Apps (Client Portal)
12+
3.**Cloudflare R2** - تخزين الملفات (مثل AWS S3)
13+
4.**Cloudflare Workers** - دوال سحابية (API)
14+
5.**Cloudflare DNS** - إدارة النطاقات
15+
16+
---
17+
18+
## 🎨 Cloudflare Pages - تصميم ونشر Web Apps
19+
20+
### ما هو Cloudflare Pages؟
21+
خدمة نشر Web Apps (Static Sites) مجانية وسريعة.
22+
23+
### الاستخدامات:
24+
25+
#### 1. ✅ نشر Client Portal (موجود)
26+
- **الموقع**: `portal.zien-ai.app`
27+
- **النوع**: Static Site
28+
- **النشر**: تلقائي من GitHub
29+
30+
#### 2. ✅ نشر Web Apps من Builder
31+
- عندما يطلب عميل Web App
32+
- Builder ينشئ Web App
33+
- ينشر على Cloudflare Pages تلقائياً
34+
35+
#### 3. ✅ نشر Landing Pages
36+
- صفحات هبوط للعملاء
37+
- مواقع بسيطة
38+
- Portfolios
39+
40+
---
41+
42+
## 🚀 كيف يعمل Cloudflare Pages في مشروعك؟
43+
44+
### 1. Client Portal (موجود)
45+
46+
**الموقع**: `apps/client-portal/`
47+
48+
**النشر**:
49+
```yaml
50+
# .github/workflows/deploy-web.yml
51+
- name: Deploy to Cloudflare Pages
52+
uses: cloudflare/pages-action@v1
53+
with:
54+
apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }}
55+
accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
56+
projectName: client-portal
57+
directory: ./apps/client-portal
58+
```
59+
60+
**النتيجة**:
61+
- ✅ Client Portal منشور على `portal.zien-ai.app`
62+
- ✅ تحديث تلقائي عند Push على GitHub
63+
64+
---
65+
66+
### 2. Builder Web Apps (مخطط)
67+
68+
**كيف يعمل**:
69+
1. العميل يطلب Web App من Builder
70+
2. Builder ينشئ Web App
71+
3. Builder ينشر على Cloudflare Pages
72+
4. العميل يحصل على URL: `client-name.zien-ai.app`
73+
74+
**الكود**:
75+
```javascript
76+
// apps/backend/src/services/autoBuilderService.js
77+
78+
async function deployWebApp(clientId, buildOutput) {
79+
const response = await fetch(
80+
`https://api.cloudflare.com/client/v4/accounts/${CLOUDFLARE_ACCOUNT_ID}/pages/projects/${projectName}/deployments`,
81+
{
82+
method: 'POST',
83+
headers: {
84+
'Authorization': `Bearer ${CLOUDFLARE_PAGES_API_TOKEN}`,
85+
'Content-Type': 'application/json'
86+
},
87+
body: JSON.stringify({
88+
files: buildOutput // الملفات المبنية
89+
})
90+
}
91+
);
92+
}
93+
```
94+
95+
---
96+
97+
## 🎨 هل يمكن استخدام Cloudflare لتصميم iOS UI؟
98+
99+
### ❌ لا، Cloudflare Pages لا يبني iOS Apps
100+
101+
**Cloudflare Pages يستخدم لـ:**
102+
- ✅ Web Apps (HTML, CSS, JavaScript)
103+
- ✅ React/Vue/Angular Apps
104+
- ✅ Static Sites
105+
- ✅ Client Portal
106+
107+
**Cloudflare Pages لا يستخدم لـ:**
108+
- ❌ iOS Apps (Native)
109+
- ❌ Android Apps (Native)
110+
- ❌ Mobile Apps
111+
112+
---
113+
114+
## ✅ لكن يمكن استخدام Cloudflare Pages لـ:
115+
116+
### 1. Web Version من التطبيق
117+
- يمكن بناء Web App يشبه iOS App
118+
- يعمل في المتصفح
119+
- Responsive Design
120+
121+
### 2. Preview/Prototype
122+
- معاينة التصميم على Web
123+
- اختبار الواجهة
124+
- مشاركة مع الفريق
125+
126+
### 3. Landing Pages
127+
- صفحات هبوط جميلة
128+
- Portfolios
129+
- Marketing Sites
130+
131+
---
132+
133+
## 🛠️ أدوات Cloudflare المتاحة
134+
135+
### 1. 🌐 Cloudflare Pages (نشر Web Apps)
136+
137+
#### المميزات:
138+
- ✅ مجاني تماماً
139+
- ✅ CDN تلقائي (سريع عالمياً)
140+
- ✅ SSL مجاني
141+
- ✅ GitHub Integration
142+
- ✅ Custom Domains
143+
- ✅ Environment Variables
144+
145+
#### الاستخدام:
146+
```bash
147+
# نشر يدوي
148+
npx wrangler pages deploy ./dist
149+
150+
# أو من GitHub Actions (موجود)
151+
# .github/workflows/deploy-web.yml
152+
```
153+
154+
---
155+
156+
### 2. 💾 Cloudflare R2 (تخزين الملفات)
157+
158+
#### المميزات:
159+
- ✅ مثل AWS S3
160+
- ✅ مجاني لحد معين
161+
- ✅ CDN تلقائي
162+
- ✅ API متوافق مع S3
163+
164+
#### الاستخدام:
165+
```javascript
166+
// رفع ملف
167+
const formData = new FormData();
168+
formData.append('file', fileBlob);
169+
170+
await fetch(
171+
`https://${CLOUDFLARE_ACCOUNT_ID}.r2.cloudflarestorage.com/${bucketName}/${fileName}`,
172+
{
173+
method: 'PUT',
174+
headers: {
175+
'Authorization': `Bearer ${CLOUDFLARE_R2_ACCESS_KEY_ID}`
176+
},
177+
body: formData
178+
}
179+
);
180+
```
181+
182+
---
183+
184+
### 3. ⚡ Cloudflare Workers (دوال سحابية)
185+
186+
#### المميزات:
187+
- ✅ دوال JavaScript في Edge
188+
- ✅ سريع جداً (Edge Network)
189+
- ✅ مجاني لحد معين
190+
191+
#### الاستخدام:
192+
```javascript
193+
// worker.js
194+
export default {
195+
async fetch(request) {
196+
return new Response('Hello from Cloudflare Worker!');
197+
}
198+
};
199+
```
200+
201+
---
202+
203+
### 4. 🔒 Cloudflare Tunnel (موجود)
204+
205+
#### المميزات:
206+
- ✅ ربط Backend بالإنترنت
207+
- ✅ بدون فتح Ports
208+
- ✅ آمن
209+
210+
#### الاستخدام:
211+
```bash
212+
# موجود في ecosystem.config.cjs
213+
cloudflared tunnel run
214+
```
215+
216+
---
217+
218+
## 🎯 استخدامات Cloudflare في مشروعك
219+
220+
### ✅ ما يعمل حالياً:
221+
222+
1. **Cloudflare Tunnel**
223+
- ربط Backend: `api.zien-ai.app`
224+
- يعمل عبر PM2
225+
226+
2. **Cloudflare Pages** (جاهز للنشر)
227+
- Client Portal: `portal.zien-ai.app`
228+
- GitHub Actions workflow موجود
229+
230+
3. **Cloudflare R2** (جاهز)
231+
- Bucket: `rare`
232+
- Keys موجودة في `.env`
233+
234+
---
235+
236+
## 🚀 خطوات استخدام Cloudflare Pages لبناء Web App
237+
238+
### الخطوة 1: إنشاء Cloudflare Pages Project
239+
240+
#### في Cloudflare Dashboard:
241+
1. اذهب إلى: **Workers & Pages****Pages**
242+
2. اضغط **Create a project**
243+
3. اختر **Connect to Git**
244+
4. اختر Repository: `algeneral-n/abo-zien`
245+
5. اختر Branch: `main`
246+
247+
#### إعدادات Build:
248+
- **Framework preset**: None (Static)
249+
- **Build command**: (فارغ - Static Site)
250+
- **Build output directory**: `apps/client-portal`
251+
252+
---
253+
254+
### الخطوة 2: إعداد Custom Domain
255+
256+
#### في Cloudflare Pages:
257+
1. **Settings****Custom domains**
258+
2. أضف: `portal.zien-ai.app`
259+
3. Cloudflare سيقوم بإعداد DNS تلقائياً
260+
261+
---
262+
263+
### الخطوة 3: إضافة Environment Variables
264+
265+
#### في Cloudflare Pages:
266+
1. **Settings****Environment variables**
267+
2. أضف:
268+
- `EXPO_PUBLIC_API_URL`
269+
- `EXPO_PUBLIC_SUPABASE_URL`
270+
- وغيرها...
271+
272+
---
273+
274+
## 📱 الفرق بين Cloudflare Pages و iOS Apps
275+
276+
### Cloudflare Pages (Web):
277+
- ✅ يعمل في المتصفح
278+
- ✅ HTML/CSS/JavaScript
279+
- ✅ Responsive Design
280+
- ✅ يعمل على جميع الأجهزة
281+
282+
### iOS Apps (Native):
283+
- ✅ تطبيق أصلي على iOS
284+
- ✅ Swift/SwiftUI
285+
- ✅ يحتاج App Store
286+
- ✅ يعمل فقط على iOS
287+
288+
---
289+
290+
## 🎨 تصميم Web App يشبه iOS App
291+
292+
### يمكنك استخدام Cloudflare Pages لبناء:
293+
294+
#### 1. PWA (Progressive Web App)
295+
```javascript
296+
// manifest.json
297+
{
298+
"name": "RARE 4N",
299+
"short_name": "RARE",
300+
"display": "standalone",
301+
"theme_color": "#000000",
302+
"background_color": "#000000",
303+
"icons": [...]
304+
}
305+
```
306+
307+
#### 2. Responsive Design
308+
```css
309+
/* Mobile-first design */
310+
@media (max-width: 768px) {
311+
/* iOS-like design */
312+
}
313+
```
314+
315+
#### 3. iOS-like UI Components
316+
```javascript
317+
// استخدام مكتبات مثل:
318+
// - React Native Web
319+
// - Ionic
320+
// - Framework7
321+
```
322+
323+
---
324+
325+
## 🔧 الإعداد الحالي في مشروعك
326+
327+
### ✅ Cloudflare Tunnel:
328+
```javascript
329+
// ecosystem.config.cjs
330+
{
331+
name: 'CF-MAESTRO',
332+
script: './cloudflared.exe',
333+
args: 'tunnel run'
334+
}
335+
```
336+
337+
### ✅ Cloudflare Pages (جاهز):
338+
```yaml
339+
# .github/workflows/deploy-web.yml
340+
- name: Deploy to Cloudflare Pages
341+
uses: cloudflare/pages-action@v1
342+
```
343+
344+
### ✅ Cloudflare R2 (جاهز):
345+
```env
346+
CLOUDFLARE_R2_BUCKET_NAME=rare
347+
CLOUDFLARE_R2_ACCESS_KEY_ID=...
348+
CLOUDFLARE_R2_SECRET_ACCESS_KEY=...
349+
```
350+
351+
---
352+
353+
## 🎯 الخلاصة
354+
355+
### ✅ Cloudflare Pages يستخدم لـ:
356+
1. ✅ نشر Client Portal (Web)
357+
2. ✅ نشر Web Apps من Builder
358+
3. ✅ نشر Landing Pages
359+
4. ✅ Web Version من التطبيق
360+
361+
### ❌ Cloudflare Pages لا يستخدم لـ:
362+
1. ❌ بناء iOS Apps (Native)
363+
2. ❌ بناء Android Apps (Native)
364+
3. ❌ Mobile Apps
365+
366+
### 🚀 للـ iOS Apps:
367+
- ✅ استخدم **Expo EAS Build** (موجود في مشروعك)
368+
- ✅ استخدم **React Native** (موجود)
369+
- ✅ استخدم **SwiftUI** (إذا تريد iOS فقط)
370+
371+
---
372+
373+
## 📚 روابط مفيدة
374+
375+
- [Cloudflare Pages Docs](https://developers.cloudflare.com/pages)
376+
- [Cloudflare R2 Docs](https://developers.cloudflare.com/r2)
377+
- [Cloudflare Workers Docs](https://developers.cloudflare.com/workers)
378+
379+
---
380+
381+
**جاهز! 🎉**
382+
383+
Cloudflare Pages جاهز للنشر في مشروعك. يمكنك استخدامه لنشر Web Apps وليس iOS Apps.

0 commit comments

Comments
 (0)