Skip to main content

A modular full-stack framework for building modern web applications

Project description

WeWork Framework

فریمورک خام و ماژولار برای ساخت اپلیکیشن‌های وب مدرن با Python (FastAPI) و React.

این فریمورک یک بستر خام و عمومی است که به شما امکان ساخت هر نوع اپلیکیشنی را می‌دهد. با استفاده از CLI می‌توانید به سرعت المان‌های مختلف (API، Model، Component، Hook و ...) را ایجاد کنید.

PyPI version License: MIT

🚀 راه‌اندازی سریع

پیش‌نیازها

  • Python 3.9+
  • Node.js 18+
  • PostgreSQL 12+
  • Redis 6+
  • Docker (اختیاری)

ایجاد پروژه جدید

# نصب فریمورک
pip install wework-framework

# ایجاد پروژه جدید
wework create my-awesome-app

# رفتن به پوشه پروژه
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

تمام! حالا می‌توانید به آدرس‌های زیر دسترسی داشته باشید:

راه‌اندازی با 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 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 React
  • frontend/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/ قرار دارد:

برای فهرست کامل، به 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

🤝 مشارکت

برای مشارکت در توسعه:

  1. Fork کنید
  2. Branch جدید ایجاد کنید (git checkout -b feature/amazing-feature)
  3. Commit کنید (git commit -m 'Add amazing feature')
  4. Push کنید (git push origin feature/amazing-feature)
  5. Pull Request ایجاد کنید

برای راهنمای توسعه، به CONTRIBUTING.md مراجعه کنید.

📄 لایسنس

این پروژه تحت لایسنس MIT منتشر شده است. برای جزئیات، به LICENSE مراجعه کنید.

📞 پشتیبانی

برای سوالات و پشتیبانی:

  • Issues در GitHub
  • مستندات کامل در docs/

📝 تغییرات

برای مشاهده تغییرات و به‌روزرسانی‌ها، به CHANGELOG.md مراجعه کنید.


ساخته شده با ❤️ برای توسعه‌دهندگان

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

wework_framework-1.0.7.tar.gz (176.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

wework_framework-1.0.7-py3-none-any.whl (138.1 kB view details)

Uploaded Python 3

File details

Details for the file wework_framework-1.0.7.tar.gz.

File metadata

  • Download URL: wework_framework-1.0.7.tar.gz
  • Upload date:
  • Size: 176.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.8

File hashes

Hashes for wework_framework-1.0.7.tar.gz
Algorithm Hash digest
SHA256 0b4266a91cbe6946c76ec4b23d6aad9ddb740aa82ef18e3674e463a251656c91
MD5 358f57037804e930ead4b71775c41223
BLAKE2b-256 c98fe13c30693bee324cf544ee321d1987683236dddbab3adbd7c2a919df42d0

See more details on using hashes here.

File details

Details for the file wework_framework-1.0.7-py3-none-any.whl.

File metadata

File hashes

Hashes for wework_framework-1.0.7-py3-none-any.whl
Algorithm Hash digest
SHA256 5ccbbb31e5d29cc33a548cd5c825fff36d67933063ced7c52f6a758299950821
MD5 69c8fc211e4b3049ac153a0edc9ca9a9
BLAKE2b-256 dc709ed9032f097cc924697c7a8c013e769047e9ead93cf748f099e19ac0b537

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page