# آرامش پلازا — پروژه کامل (فرانت‌اند + بک‌اند) مونوریپوی سایت آرامش پلازا شامل: - **`frontend/`** — سایت React + Vite + Tailwind (همه محتوا از API خوانده می‌شود) - **`backend/`** — بک‌اند FastAPI + SQLAlchemy 2 + PostgreSQL + JWT ## ساختار ``` ├── frontend/ # سایت React │ ├── src/ # کد منبع (api.tsx = لایه اتصال به بک‌اند) │ ├── Dockerfile # بیلد Node + سرو با nginx │ └── nginx.conf # پروکسی /api به بک‌اند ├── backend/ # بک‌اند FastAPI │ ├── app/ # کد منبع │ ├── requirements.txt │ ├── Dockerfile │ └── .env.example └── docker-compose.yml # اجرای کامل با یک دستور ``` ## اجرا با Docker (ساده‌ترین راه) ```bash docker compose up --build ``` - سایت: http://localhost:5173 - مستندات API: http://localhost:8000/docs - دیتابیس PostgreSQL در کانتینر جدا (داده‌ها در volume ذخیره می‌شوند) - بک‌اند هنگام شروع، خودش جداول و داده‌های اولیه سایت را seed می‌کند - nginx درخواست‌های `/api` را خودش به بک‌اند پروکسی می‌کند — نیازی به تنظیم CORS نیست ## اجرای محلی (توسعه) ### بک‌اند ```bash cd backend python -m venv .venv .venv\Scripts\activate # ویندوز — در لینوکس: source .venv/bin/activate pip install -r requirements.txt # فایل .env از روی .env.example بسازید و DATABASE_URL را تنظیم کنید python -m app.seed # ساخت جداول + محتوای اولیه uvicorn app.main:app --reload ``` ### فرانت‌اند ```bash cd frontend npm install npm run dev # http://localhost:5173 ``` آدرس بک‌اند در `frontend/src/config.ts` از `VITE_API_URL` خوانده می‌شود؛ اگر تنظیم نشود پیش‌فرض `http://localhost:8000` است. ## امکانات بک‌اند - **API عمومی**: برند، خدمات، پروژه‌ها، مقالات، نظرات، سوالات متداول، تیم، تایم‌لاین، آمار و... - **فرم تماس** `POST /api/contact` و **خبرنامه** `POST /api/newsletter` - **پنل مدیریت** با JWT: ورود `POST /api/auth/login` (پیش‌فرض: `admin` / `aramesh123`) و سپس CRUD کامل همه محتواها در `/api/admin/...` - همه محتوا در یک درخواست: `GET /api/site` > در محیط واقعی حتماً `SECRET_KEY` و `ADMIN_PASSWORD` را تغییر دهید. ## نکات امنیتی - فایل `.env` هرگز commit نمی‌شود (در `.gitignore` است) - رمز عبور ادمین با bcrypt هش می‌شود - توکن‌های JWT امضا دارند و مدت اعتبارشان قابل تنظیم است