A modular full-stack framework for building modern web applications
Project description
WeWork Framework
فریمورک خام و ماژولار برای ساخت اپلیکیشنهای وب مدرن با Python (FastAPI) و React.
این فریمورک یک بستر خام و عمومی است که به شما امکان ساخت هر نوع اپلیکیشنی را میدهد. با استفاده از CLI میتوانید به سرعت المانهای مختلف (API، Model، Component، Hook و ...) را ایجاد کنید.
🚀 راهاندازی سریع
پیشنیازها
- Python 3.9+
- Node.js 18+
- PostgreSQL 12+
- Redis 6+
- Docker (اختیاری)
ایجاد پروژه جدید
# نصب فریمورک
pip install wework-framework
# ایجاد پروژه جدید (با انتخاب تمپلت از منوی تعاملی)
wework create my-awesome-app
# یا مستقیماً با مشخص کردن تمپلت
wework create my-awesome-app --template corporate
wework create my-awesome-app --template ecommerce
wework create my-awesome-app --template admin
wework create my-awesome-app --template messaging
# رفتن به پوشه پروژه
cd my-awesome-app
# تنظیم محیط
cp .env.example .env
# فایل .env را ویرایش کنید
# نصب وابستگیهای بکاند
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
pip install -r requirements.txt
# راهاندازی دیتابیس و Redis
docker-compose up -d postgres redis
# ایجاد جداول دیتابیس
python -m src.db.create_tables
# راهاندازی بکاند
uvicorn src.api.app:app --reload --port 8000
# در ترمینال جدید - راهاندازی فرانتاند
cd frontend
npm install
npm run dev
نصب و راهاندازی (روش قدیمی - کلون از GitHub)
# 1. کلون کردن پروژه
git clone https://github.com/wecanco/WeWork.git
cd WeWork
# 2. نصب وابستگیهای بکاند
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
pip install -r requirements.txt
# 3. تنظیم متغیرهای محیطی
cp .env.example .env
# فایل .env را ویرایش کنید
# 4. راهاندازی دیتابیس و Redis
docker-compose up -d postgres redis
# 5. ایجاد جداول دیتابیس
python -m src.db.create_tables
# 6. راهاندازی بکاند
uvicorn src.api.app:app --reload --port 8000
# 7. در ترمینال جدید - راهاندازی فرانتاند
cd frontend
npm install
npm run dev
✅ تمام! حالا میتوانید به آدرسهای زیر دسترسی داشته باشید:
- Backend API: http://localhost:8000/docs
- Frontend: http://localhost:5173
راهاندازی با Docker (سادهتر)
# راهاندازی همه سرویسها
docker-compose up -d
# ایجاد جداول دیتابیس
docker-compose exec api python -m src.db.create_tables
📚 ویژگیها
Backend
- ✅ FastAPI: API مدرن و سریع با مستندات خودکار
- ✅ Authentication: سیستم احراز هویت کامل با JWT و OTP
- ✅ Database: PostgreSQL با SQLAlchemy Async
- ✅ Redis: Cache و Pub/Sub
- ✅ Event System: سیستم رویداد یکپارچه
- ✅ CLI Tool: ابزار خط فرمان برای ساخت سریع المانها
Frontend
- ✅ React 19: آخرین نسخه React
- ✅ UI Kit: مجموعه کامل کامپوننتهای قابل استفاده مجدد
- ✅ Responsive Design: طراحی واکنشگرا برای تمام دستگاهها
- ✅ RTL Support: پشتیبانی کامل از راست به چپ
- ✅ Dark Mode: تم دارک آماده
- ✅ PWA: Progressive Web App
ماژولهای پایه
- ✅ Authentication Module: احراز هویت کامل
- ✅ User Management: مدیریت کاربران
- ✅ Billing Module: پرداخت و اشتراک
- ✅ Notifications: اعلانرسانی (SMS, Web Push)
- ✅ Admin Panel: پنل مدیریت کامل
🛠️ استفاده از CLI
تمپلتهای آماده
WeWork Framework شامل 5 تمپلت آماده است که میتوانید از آنها استفاده کنید:
- Basic - تمپلت پایه و ساده برای شروع
- Corporate - وبسایت شرکتی با صفحات خدمات، درباره ما و تماس
- E-commerce - فروشگاه آنلاین کامل با سبد خرید و پرداخت
- Admin Panel - پنل مدیریتی حرفهای با داشبورد و جداول
- Messaging - سامانه ارسال پیام برای پیامرسانهای ایرانی با مدیریت اکانت و ارسال توزیع شده
# ایجاد پروژه با انتخاب تمپلت از منوی تعاملی
wework create my-project
# یا مستقیماً با مشخص کردن تمپلت
wework create my-corporate-site --template corporate
wework create my-online-store --template ecommerce
wework create my-admin-panel --template admin
wework create my-messaging-app --template messaging
دستورات اصلی
# ایجاد پروژه جدید
wework create my-project
# ساخت API Router جدید
wework make:api products
# ساخت Model جدید
wework make:model Product
# ساخت Component جدید
wework make:component ProductList
# ساخت Hook جدید
wework make:hook useProducts
# ساخت Migration جدید
wework make:migration add_products_table
مثال: ایجاد یک API کامل
# 1. ساخت API
wework make:api products
# 2. ساخت Model
wework make:model Product
# 3. ساخت Component
wework make:component ProductList
# 4. ساخت Hook
wework make:hook useProducts
# 5. ساخت Migration
wework make:migration add_products_table
بعد از اجرای دستورات بالا، فایلهای زیر ایجاد میشوند:
src/api/products_api.py- API Router با CRUD کاملsrc/db/models.py- Model جدید اضافه میشودfrontend/src/components/ProductList.jsx- Component Reactfrontend/src/hooks/useProducts.js- Hook برای fetch دادهsrc/db/migrate_add_products_table.py- Migration
استفاده از API ایجاد شده
# فایل src/api/products_api.py به صورت خودکار ایجاد میشود
# فقط کافی است آن را به app.py اضافه کنید:
from src.api.products_api import router as products_router
app.include_router(products_router)
📖 مستندات
مستندات کامل در پوشه docs/ قرار دارد:
- راهنمای نصب - نصب و راهاندازی کامل
- راهنمای سریع - شروع سریع در 10 دقیقه
- CLI Commands - راهنمای کامل CLI
- معماری بکاند - معماری و ساختار
- UI Kit - کامپوننتهای React
- مثالها - مثالهای کاربردی
برای فهرست کامل، به README مستندات مراجعه کنید.
🏗️ ساختار پروژه
WeWork/
├── docs/ # مستندات کامل
├── frontend/ # فرانتاند React
│ ├── src/
│ │ ├── components/ # کامپوننتهای React
│ │ ├── hooks/ # React Hooks
│ │ └── ui/ # UI Kit
├── src/ # بکاند Python
│ ├── api/ # API Endpoints
│ ├── cli/ # CLI Tool
│ ├── config/ # تنظیمات
│ ├── db/ # دیتابیس
│ ├── core/ # ماژولهای اصلی
│ └── integrations/ # یکپارچهسازیها
├── examples/ # مثالهای استفاده
└── services/ # Docker Services
💡 مثال سریع
ایجاد یک API ساده
# src/api/my_api.py
from fastapi import APIRouter
router = APIRouter(prefix="/api/my", tags=["my"])
@router.get("/hello")
async def hello():
return {"message": "Hello from WeWork!"}
استفاده از UI Kit
import { Button, Card } from '../ui'
function MyComponent() {
return (
<Card>
<h3>عنوان</h3>
<Button variant="primary">کلیک کنید</Button>
</Card>
)
}
🔧 تنظیمات اولیه
فایل .env را در ریشه پروژه ایجاد کنید:
# Database
POSTGRES_HOST=localhost
POSTGRES_USER=postgres
POSTGRES_PASSWORD=your_password
POSTGRES_DB=wework
# JWT
JWT_SECRET_KEY=your-super-secret-key-change-this
JWT_ACCESS_TOKEN_EXPIRE_MINUTES=60
# Redis
REDIS_URL=redis://localhost:6379/0
# Frontend
FRONTEND_BASE_URL=http://localhost:5173
📦 نصب از PyPI
pip install wework-framework
🤝 مشارکت
برای مشارکت در توسعه:
- Fork کنید
- Branch جدید ایجاد کنید (
git checkout -b feature/amazing-feature) - Commit کنید (
git commit -m 'Add amazing feature') - Push کنید (
git push origin feature/amazing-feature) - Pull Request ایجاد کنید
برای راهنمای توسعه، به CONTRIBUTING.md مراجعه کنید.
📄 لایسنس
این پروژه تحت لایسنس MIT منتشر شده است. برای جزئیات، به LICENSE مراجعه کنید.
📞 پشتیبانی
برای سوالات و پشتیبانی:
- Issues در GitHub
- مستندات کامل در
docs/
📝 تغییرات
برای مشاهده تغییرات و بهروزرسانیها، به CHANGELOG.md مراجعه کنید.
ساخته شده با ❤️ برای توسعهدهندگان
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file wework_framework-1.1.2.tar.gz.
File metadata
- Download URL: wework_framework-1.1.2.tar.gz
- Upload date:
- Size: 234.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d4aa81103297e3dd91098255734b025fddf8acc0059edf0688caf9e6cd06c230
|
|
| MD5 |
a10d877128b57307ad03fa0aeed252e8
|
|
| BLAKE2b-256 |
9fb7c63bc79597d486d8c660fdc8371bdc9c08171adfa2e18bff048aabe18296
|
File details
Details for the file wework_framework-1.1.2-py3-none-any.whl.
File metadata
- Download URL: wework_framework-1.1.2-py3-none-any.whl
- Upload date:
- Size: 230.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8f3d728644510443a8acdb672fc600e9fbcf5971a08255873c7bac4d7fa46f8e
|
|
| MD5 |
035461ed719562fc8f4900e2860b0c05
|
|
| BLAKE2b-256 |
d21600c78f37cf0eb014b862fdd15d13498655dca3db8cded8cd025a81998f9c
|