40ed7b5caf73eda423cfcb0422f6b1207d7bfc0f
- data/site.ts: نام برند، ایمیل تماس (info@arameshplaza.com به info@arameshbuildinggroup.com)، تیتر تایملاین، نقلقول تستیمونیال و سؤال FAQ - کامپوننتها: کپی فوتر و کپیرایت، aria-label تماس شناور، معرفی و alt تصویر هیرو، لید و alt گالری، کپی بخش داستان، تیتر خبرنامه، تیتر «چرا گروه ساختمانی آرامش»، لید مقالات - صفحات: لید درباره ما، کپی مشارکت در سرمایهگذاری، لید وبلاگ - index.html: عنوان صفحه
آرامش پلازا — پروژه کامل (فرانتاند + بکاند)
مونوریپوی سایت آرامش پلازا شامل:
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 (سادهترین راه)
docker compose up --build
- سایت: http://localhost:5173
- مستندات API: http://localhost:8000/docs
- دیتابیس PostgreSQL در کانتینر جدا (دادهها در volume ذخیره میشوند)
- بکاند هنگام شروع، خودش جداول و دادههای اولیه سایت را seed میکند
- nginx درخواستهای
/apiرا خودش به بکاند پروکسی میکند — نیازی به تنظیم CORS نیست
اجرای محلی (توسعه)
بکاند
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
فرانتاند
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 امضا دارند و مدت اعتبارشان قابل تنظیم است
Languages
TypeScript
53%
Python
37.6%
JavaScript
5.2%
Shell
2%
CSS
1.5%
Other
0.6%