نظام تقسيط هو تطبيق ويب متكامل مبني بـ Python Flask لإدارة المبيعات بالتقسيط. يوفر النظام حلاً شاملاً للمحلات التجارية التي تقدم خدمات البيع بالتقسيط، مع واجهة مستخدم عربية سهلة الاستخدام ولوحة تحكم متقدمة.
- إنشاء فواتير نقدية وتقسيط
- دعم الباركود للمنتجات
- حساب تلقائي للأقساط
- طباعة الفواتير
- سجل كامل للعملاء
- تتبع الأقساط لكل عميل
- سجل المدفوعات
- إرسال تذكيرات
- تتبع المنتجات والكميات
- تنبيهات المخزون المنخفض
- تصنيفات المنتجات
- دعم الباركود
- جدولة الأقساط التلقائية
- تتبع المدفوعات
- تقارير الأقساط المتأخرة
- غرامات التأخير (اختياري)
- لوحة تحكم تفاعلية
- تقارير المبيعات
- تقارير الأقساط
- تقارير المخزون
- تصدير للـ Excel/PDF
- نظام صلاحيات متعدد المستويات
- سجل النشاطات
- API مع مفاتيح مصادقة
- نسخ احتياطي تلقائي
- تطبيق ويب تقدمي
- يعمل بدون إنترنت
- قابل للتثبيت على الجوال
| التقنية | الوصف |
|---|---|
| Backend | Python 3.9+, Flask 2.0+ |
| Database | PostgreSQL / SQLite |
| ORM | SQLAlchemy |
| Frontend | HTML5, CSS3, JavaScript |
| Icons | Material Icons |
| Authentication | Flask-Login |
| Migrations | Flask-Migrate |
- Python 3.9 أو أحدث
- PostgreSQL 13+ (للإنتاج) أو SQLite (للتطوير)
- pip (مدير حزم Python)
git clone https://github.com/hany-php/taqsit-python.git
cd taqsit-python# Windows
python -m venv .venv
.\.venv\Scripts\activate
# Linux/macOS
python3 -m venv .venv
source .venv/bin/activatepip install -r requirements.txt# نسخ ملف المثال
cp .env.example .env
# تعديل الإعدادات حسب بيئتكمحتوى ملف .env:
# Flask Configuration
FLASK_APP=run.py
FLASK_ENV=development
SECRET_KEY=your-secret-key-here
# Database
DATABASE_URL=postgresql://user:password@localhost:5432/taqsit
# أو للتطوير المحلي:
# DATABASE_URL=sqlite:///taqsit.db
# Mail (Optional)
MAIL_SERVER=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=your-email@gmail.com
MAIL_PASSWORD=your-app-password# إنشاء الجداول
flask db upgrade
# إضافة بيانات تجريبية (اختياري)
python seed_data.py# للتطوير
flask run --host=0.0.0.0 --port=5000
# للإنتاج (مع Gunicorn)
gunicorn -w 4 -b 0.0.0.0:5000 run:appافتح المتصفح على: http://localhost:5000
بيانات الدخول الافتراضية:
- المستخدم:
admin - كلمة المرور:
admin123
taqsit-python/
├── app/
│ ├── __init__.py # تهيئة التطبيق
│ ├── controllers/ # المتحكمات (Routes)
│ │ ├── auth.py
│ │ ├── customers.py
│ │ ├── dashboard.py
│ │ ├── invoices.py
│ │ ├── products.py
│ │ ├── reports.py
│ │ └── settings.py
│ ├── models/ # نماذج قاعدة البيانات
│ │ ├── user.py
│ │ ├── customer.py
│ │ ├── product.py
│ │ ├── invoice.py
│ │ ├── installment.py
│ │ └── payment.py
│ ├── templates/ # قوالب HTML
│ ├── static/ # ملفات ثابتة (CSS, JS, Images)
│ └── utils/ # أدوات مساعدة
├── migrations/ # ملفات الهجرة
├── backups/ # النسخ الاحتياطية
├── config.py # إعدادات التطبيق
├── requirements.txt # المتطلبات
├── run.py # نقطة تشغيل التطبيق
└── .env.example # مثال ملف البيئة
يوفر النظام API للتكامل مع أنظمة أخرى:
جميع طلبات الـ API تتطلب مفتاح في الـ Header:
X-API-Key: your-api-key
| Method | Endpoint | الوصف |
|---|---|---|
| GET | /api/v1/customers |
قائمة العملاء |
| GET | /api/v1/customers/{id} |
بيانات عميل |
| GET | /api/v1/products |
قائمة المنتجات |
| GET | /api/v1/invoices |
قائمة الفواتير |
| GET | /api/v1/installments/overdue |
الأقساط المتأخرة |
| GET | /api/v1/stats |
إحصائيات عامة |
import requests
headers = {'X-API-Key': 'your-api-key'}
response = requests.get('http://localhost:5000/api/v1/customers', headers=headers)
print(response.json())من لوحة التحكم > الإعدادات > إعدادات التقسيط:
- عدد أشهر التقسيط الافتراضي: الفترة الافتراضية للتقسيط
- نسبة غرامة التأخير: نسبة الغرامة على الأقساط المتأخرة
- أيام السماح: فترة السماح قبل احتساب التأخير
- التذكير قبل الاستحقاق: عدد أيام التذكير المسبق
يمكن إنشاء خطط تقسيط متعددة مع:
- عدد الأشهر
- نسبة الزيادة
- الحد الأدنى للمقدم
يدعم النظام ثلاثة أنواع من النسخ الاحتياطي:
- نسخة كاملة: قاعدة البيانات + جميع ملفات المشروع
- قاعدة البيانات فقط: تصدير JSON لجميع البيانات
- الملفات فقط: ملفات المشروع والصور
من لوحة التحكم > الإعدادات > النسخ الاحتياطي
- أنشئ حساب على Render
- أنشئ Web Service جديد
- اربط مستودع GitHub
- أضف المتغيرات البيئية
- انشر!
railway login
railway init
railway upFROM python:3.9-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY . .
EXPOSE 5000
CMD ["gunicorn", "-w", "4", "-b", "0.0.0.0:5000", "run:app"]نرحب بمساهماتك!
- Fork المشروع
- أنشئ branch جديد (
git checkout -b feature/amazing-feature) - Commit التغييرات (
git commit -m 'Add amazing feature') - Push للـ branch (
git push origin feature/amazing-feature) - افتح Pull Request
- اتبع نمط الكود الموجود
- أضف اختبارات للميزات الجديدة
- حدّث التوثيق
- اكتب رسائل commit واضحة
هذا المشروع مرخص تحت MIT License.
- 📧 البريد الإلكتروني: hany.hassan.hany@gmail.com
- 🐛 الإبلاغ عن مشكلة: GitHub Issues
- Flask - إطار العمل
- SQLAlchemy - ORM
- Material Icons - الأيقونات
صُنع بـ ❤️ في مصر