App Generator CLI
أداة واجهة سطر الأوامر لإنشاء تطبيقات كاملة المكاسب مع الواجهة الأمامية للرسالة React و Supabase الخلفية.
التحديثات
2025-01-27 (Docusign + إصدار الويب):
- أضاف التكامل المستند
- إضافة إصدار ويب تم استضافته على Vercel مع رمز هنا: https://github.com/vivek100/webverion1
- تمت إضافة وظائف Vercel للواجهة الخلفية لمكالمات Openai وتكامل DocuSign
2024-01-24 (تكامل Docker & Nginx):
- تمت إضافة خيارات نشر Docker و Nginx لكل من التدفقات Create and Edit
- دعم نشر الحاويات مع الوكيل العكسي NGINX اختياري
- إدارة المنافذ التلقائية وتكوين الحاويات
- عملية نشر مبسطة مع إعداد أمر واحد
2024-01-16 (تحرير التدفق):
- قدمت استراتيجيات تحديث ذكية لتعديل التطبيقات الحالية
- إضافة دعم الإصدار لتحديثات التطبيق
- يدعم نهجين التحديث الرئيسيين:
- التجديد الكامل: إعادة البناء الكاملة مع الحفاظ على الوظائف الأساسية
- استخدم تحديث الحالة: التعديلات المستهدفة لمكونات محددة
- نظام النسخ الاحتياطي الذكي الذي ينشئ نسخ احتياطية من الطابع الزمني قبل التغييرات
- تتبع الإصدار لتكرارات متعددة لنفس التطبيق
2024-01-10 (خط أنابيب جيل الذكاء الاصطناعي المحسن):
- تم إعادة هيكلة جيل الذكاء الاصطناعى من 2 مكالمات إلى 4 مكالمات متخصصة:
- استخدم توليد الحالة: يركز على منطق الأعمال وسير عمل المستخدم
- توليد نموذج الكيان: مخطط قاعدة البيانات والعلاقات
- توليد بيانات وهمية: بيانات الاختبار وسيناريوهات المستخدم
- توليد نموذج الواجهة: مكونات واجهة المستخدم وتخطيطات
- فوائد:
- تحسين الدقة من خلال مطالبات متخصصة
- أفضل معالجة الأخطاء والتحقق من الصحة بين الخطوات
- انخفاض استخدام الرمز المميز لكل مكالمة
- القدرة المعززة على الحفاظ على السياق
- انتقل نهج المكالمة الأصليين إلى الوضع القديم للتوافق مع الوراء
2024-12-20 (انخفاض استخدام الرمز المميز بنسبة 70 ٪ والدقة بنسبة 80 ٪):
- يتم دمجها مع الخطوط العريضة لإنشاء الإخراج المهيكل ، ويستخدم هذا الطريقة التي يتم فيها تعيين السجلات منخفضة أو صفر احتمال للرموز التي ليست جزءًا من الإخراج ، ويتم ذلك مباشرة قبل إنشاء الرمز المميز. يتيح هذا الأداة الحصول على إخراج دقة أعلى مع نماذج أصغر
- ثم يتم استخدام المخرجات المهيكلة لإنشاء الواجهة الأمامية ورمز الواجهة الخلفية التي تشبه ملفات التكوين ، وهذا يساعد في إنشاء الرمز مع رموز أقل
- إخراج DB هو JSON من الكيانات وعلاقاتها ، ويستخدم هذا لإنشاء استعلامات SQL عبر رمز Python وتشغيل SQL لإنشاء الجداول والطرق على Supabase
- يتم تنظيم الإخراج المهيكلة للواجهة الأمامية حول مسؤول React والمكونات ، ويستخدم هذا لإنشاء رمز الواجهة الأمامية باستخدام قوالب Jinja2
- يتم محاكاة الواجهة الخلفية باستخدام عميل Supabase JS عبر DataProviders
- هذا معا يمكّن هذا الأداة من توليد الرمز الأمامي والخلفي مع رموز أقل ودقة أعلى ونموذج أصغر مثل GPT-4O-Mini
سمات
- يولد تطبيقات React كاملة مع مكونات المواد-UI
- يتكامل مع Supabase لخدمات الخلفية
- يشمل المصادقة والترخيص
- يولد عمليات CRUD للكيانات
- يدعم نماذج المجال المخصصة
- يتضمن مكونات تم إنشاؤها مسبقًا (الجداول ، النماذج ، المخططات ، إلخ)
المتطلبات الأساسية
- بيثون 3.8 أو أعلى
- Node.js و NPM
- حساب supabase
- Docker (اختياري ، لنشر الحاويات)
- nginx (اختياري ، للوكيل العكسي)
إعداد Docker & Nginx (اختياري)
- تثبيت Docker:
# For Ubuntu
sudo apt-get update
sudo apt-get install docker.io
sudo systemctl start docker
sudo systemctl enable docker
# For macOS/Windows
Download and install Docker Desktop from https://www.docker.com/products/docker-desktop
- بناء صورة قاعدة:
# Navigate to the project root directory
cd oneShotCodeGen
# Build the base image
docker build -t base-image -f base.Dockerfile .
# Verify the image was created
docker images | grep base-image
- تثبيت nginx:
# For Ubuntu
sudo apt-get install nginx
sudo systemctl start nginx
sudo systemctl enable nginx
# For macOS
brew install nginx
# For Windows
Download and install Nginx from http://nginx.org/en/download.html
- تكوين أذونات مستخدم Nginx (Linux/MacOS):
# Add your user to nginx group
sudo usermod -aG nginx $USER
# Ensure nginx config directory is writable
sudo chown -R $USER : $USER /etc/nginx/conf.d
ملاحظة: يجب بناء الصورة الأساسية مرة واحدة فقط ، إلا إذا قمت بإجراء تغييرات على Dockerfile. تحتوي هذه الصورة الأساسية على جميع التبعيات والتكوينات اللازمة التي سيتم استخدامها كأساس لجميع التطبيقات التي تم إنشاؤها.
تثبيت
- استنساخ المستودع
- قم بتثبيت الحزمة:
pip install -r requirements.txt
الاستخدام
- قم بإعداد متغيرات البيئة الخاصة بك في
.env :
OPENAI_API_KEY=your_openai_api_key
SUPABASE_PROJECT_URL=your_supabase_url
SUPABASE_ANON_KEY=your_supabase_anon_key
SUPABASE_DB_PASSWORD=your_db_password
تأكد من ضبط الأذونات المتابعة على الواجهة الأمامية لتشغيل الاستعلامات الإجمالية:
ALTER ROLE authenticator SET pgrst . db_aggregates_enabled = ' true ' ;
NOTIFY pgrst, ' reload config ' ;
- قم بإنشاء تطبيق مع Docker:
a. Latest version
# Just code generation
python -m src.cli create " Create an expense tracker app "
# With Docker only
python -m src.cli create " Create an expense tracker app " --docker
# With Docker and Nginx
python -m src.cli create " Create an expense tracker app " --docker --nginx
ب. باستخدام الوضع القديم (نهج المكالمة 2):
python -m src.cli create " Create an expense tracker app " --use-legacy
ج. إضافة دليل الإخراج المخصص:
python -m src.cli create " Create an expense tracker app " --output-dir " path/to/
outputfolder "
- تحرير تطبيق موجود مع Docker:
# Just code generation
python -m src.cli edit < project_dir > --description " Add a dashboard for expense
analytics "
# With Docker only
python -m src.cli edit < project_dir > --description " Add a dashboard " --docker
# With Docker and Nginx
python -m src.cli edit < project_dir > --description " Add a dashboard " --docker --nginx
- تشغيل التطبيق:
أ. التنمية المحلية (الافتراضي):
cd output/{output_folder_name}/frontend
npm install
npm run dev ب. نشر Docker:
- سيكون التطبيق متاحًا على
http://localhost:<port> - يتم تعيين المنفذ تلقائيًا وعرضه بعد النشر
ج. Docker مع Nginx:
- سيكون التطبيق متاحًا على
http://localhost/{app_name} - Nginx يتعامل مع التوجيه وموازنة التحميل
خيارات النشر
التنمية المحلية
- خادم التطوير المستند إلى NPM المباشر
- الأفضل للتنمية والاختبار
- تمكين التحميل الساخن
نشر Docker
- تطبيق الحاويات
- بيئة معزولة
- إدارة المنفذ التلقائي
- مناسبة للإنتاج
Docker مع Nginx
- عكس تكوين الوكيل
- التوجيه القائم على المسار
- تحميل موازنة القدرة
- إعداد الإنتاج المحسن
السيطرة على الإصدار
- تتضمن التطبيقات الآن تتبع الإصدار
- تنسيق الإصدار: V0 ، V1 ، V2 ، إلخ.
- زيادات رقم الإصدار بناءً على سجل النسخ الاحتياطي
- يساعد على تتبع التكرارات المتعددة لنفس التطبيق
هيكل المشروع
app-generator-cli/
├── src/ # Source code for the CLI
├── output/ # Generated applications
│ └── [timestamp]/ # Timestamp-based output directory
│ ├── frontend/ # React frontend application
│ ├── use_cases.json # Use case definitions
│ ├── entities.json # Entity model
│ ├── mock_users.json # Mock user data
│ ├── mock_data.json # Generated test data
│ ├── domain_model.json # Combined application model
│ ├── interface_model.json # UI/UX specifications
│ ├── sql/ # Generated SQL migrations
│ ├── src/ # Generated application source
│ └── generation.log # Generation process log
└── .env # Environment variables
تحرير التدفق
يتيح لك نظام تدفق التحرير تعديل التطبيقات الحالية مع الحفاظ على الاتساق والسلامة. إليك كيفية استخدامه:
- تحديث تطبيق موجود:
python -m src.cli update " Add a dashboard for expense analytics "
- سوف النظام:
- تحليل طلب التغيير الخاص بك
- اختر استراتيجية تحديث مناسبة
- قم بإنشاء نسخة احتياطية من تطبيقك الحالي
- تطبيق التغييرات مع الحفاظ على اتساق البيانات
تحديث استراتيجيات
التجديد الكامل
- تستخدم للتغيرات المعمارية الرئيسية
- يحافظ على الوظائف الحالية أثناء إعادة بناء التطبيق
- يحافظ على اتساق البيانات مع النماذج الحالية
تحديث جزئي
- للتغييرات المستهدفة على مكونات محددة
- أثرت التحديثات فقط على الأجزاء من التطبيق
- يدعم التحديثات المعيارية إلى:
- استخدام الحالات وسير العمل
- نماذج الكيان والعلاقات
- البيانات الوهمية واختبار المستخدمين
- مكونات الواجهة
نظام النسخ الاحتياطي
- النسخ الاحتياطية التلقائية التي تم إنشاؤها قبل أي تغييرات
- أدلة النسخ الاحتياطي الطابع الزمني:
backups/backup_YYYYMMDD_HHMMSS/ - سهل التراجع إذا لزم الأمر
بنية التطبيق التي تم إنشاؤها
تقوم الأداة بإنشاء تطبيق React مع الهيكل التالي:
frontend/
├── src/
│ ├── components/ # Reusable UI components
│ │ ├── Button.jsx
│ │ ├── Card.jsx
│ │ ├── Chart.jsx
│ │ ├── Form.jsx
│ │ ├── Modal.jsx
│ │ └── Table.jsx
│ ├── pages/ # Application pages
│ ├── providers/ # Data and auth providers
│ └── App.js # Main application component
└── package.json # Project dependencies
التبعيات
تبعيات CLI
- Typer [all] == 0.9.0
- Pydantic == 2.6.1
- numpy
- الخطوط العريضة
- ريتش == 13.7.0
- Python-dotenv == 1.0.0
- Jinja2 == 3.1.3
- supabase == 2.3.4
- Asyncio == 3.4.3
- aiohttp == 3.9.3
- انقر غني == 1.7.3
- Inquirer == 3.2.4
- Colorama == 0.4.6
- Openai
تبعات الواجهة الأمامية
- رد فعل 19.0.0
- Material-Ui 6.1.10
- رد فعل المسؤول 5.4.1
- إعادة شحن 2.14.1
- عميل Supabase JS 2.47.2
المساهمة
المساهمات مرحب بها! لا تتردد في تقديم طلب سحب.
رخصة
تم ترخيص هذا المشروع بموجب ترخيص معهد ماساتشوستس للتكنولوجيا - راجع ملف الترخيص للحصول على التفاصيل.