Files
fabric_trade_server/README.md
T
mohmdsdgandCursor 9f0422c1db Add NestJS fabric trade API with Prisma and Docker
Provide backend for admin and user apps with Postgres, migrations, seed data, and docker-compose for LiteSpeed reverse-proxy deployment.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-05 20:26:39 +03:30

2.5 KiB

Fabric Trade Server

بک‌اند NestJS + Prisma + PostgreSQL برای اپ کاربر و پنل ادمین تجارت پارچه.

پیش‌نیاز

  • Node.js 20+
  • Docker (برای PostgreSQL)

اگر به Docker دسترسی ندارید:

sudo usermod -aG docker "$USER"
# سپس یک‌بار logout/login کنید

راه‌اندازی سریع (لوکال بدون Docker برای API)

cd fabric_trade_server
docker compose up -d postgres
npm install
npx prisma migrate deploy
npm run prisma:seed
npm run start:dev

دیپلوی با Docker Compose (پیشنهادی برای سرور)

روی سرور داخل fabric_trade_server:

# اولین بار با دیتای فیک:
RUN_SEED=true docker compose up -d --build

# بعداً بدون seed:
docker compose up -d --build
  • API روی 127.0.0.1:3000 بالا می‌آید
  • مایگریشن موقع استارت کانتینر اجرا می‌شود
  • LiteSpeed را Reverse Proxy کنید به http://127.0.0.1:3000

مثال مسیر LiteSpeed: https://domain.com/api/ → http://127.0.0.1:3000/api/

حساب‌های تست (پس از seed)

نقش ورود رمز / OTP
ادمین 09121112222 admin123
مشتری 09121234567 OTP: 123456

متغیرهای محیطی

فایل .env:

DATABASE_URL=postgresql://fabric:fabric123@localhost:5432/fabric_trade?schema=public
JWT_SECRET=fabric-trade-dev-secret-change-me
JWT_EXPIRES_IN=7d
PORT=3000
MOCK_OTP_CODE=123456
OTP_TTL_MINUTES=5

اسکریپت‌ها

دستور کار
npm run db:up بالا آوردن Postgres
npm run prisma:migrate مایگریشن توسعه
npm run prisma:seed دیتای فیک
npm run start:dev سرور با watch
npm run db:reset ریست کامل دیتابیس

ساختار API (خلاصه)

کاربر (Bearer JWT مشتری)

  • POST /api/auth/otp/request / verify
  • GET /api/auth/me · PATCH /api/auth/profile
  • GET /api/companies · catalogs · products · bank-accounts
  • GET/POST /api/carts …
  • GET/POST /api/orders · POST /api/orders/:id/cash-receipt

ادمین (Bearer JWT ادمین)

  • POST /api/admin/auth/login
  • GET /api/admin/dashboard · /admin/reports · /admin/settings
  • CRUD: companies, catalogs, products, customers, users, orders, checks, cash-payments, shipments