شروع به کار
پیشنیازها:
- Node 22 و pnpm نسخهٔ
11.10.0(نسخهٔ pnpm درpackage.jsonقفل شده است). - برای API: PostgreSQL 16.
- برای اندروید: JDK 21 و Android SDK مطابق
apps/mobile/gradle/libs.versions.toml.
API و وب
از ریشهٔ مخزن، در یک محیط توسعهٔ جدا (نه محیط مشترک/تولید):
corepack enable
pnpm install --frozen-lockfile
docker compose -f docker-compose.dev.yml up -d
cp .env.example apps/api/.env
سپس در apps/api/.env این موارد را تنظیم کنید:
NODE_ENV=developmentوAPP_ENV=development— این فایل مخصوص محیط محلی است.DATABASE_URL=postgresql://postgres:postgres@localhost:5432/taghvimam— نشانی داخل container برای اجرای host مناسب نیست؛ همین نشانی را بگذارید.- سه کلید مستقل و تصادفی ب رای
JWT_SECRET،JWT_REFRESH_SECRETوSYNC_CURSOR_SECRET. مقدارهای نمونه را هرگز استفاده نکنید. - برای توسعه بدون SMS، تنظیم نمونهٔ Kavenegar را حذف کنید. کد OTP آزمایشی فقط وقتی
APP_ENVدقیقاًdevelopmentیاtestباشد در پاسخ برمیگردد؛ اگر ست نشده باشد پنهان میماند و در console هم لاگ نمیشود. در تولید debug را فعال نکنید و OTP را در گزارش یا مستندات نگذارید.
ساخت و اجرا:
pnpm --filter @taghvimam/contracts build
pnpm --filter taghvimam-backend prisma:generate
pnpm --filter taghvimam-backend db:deploy
pnpm dev
نکتهها:
db:deployفقط migrationهای موجود را نصب میکند؛ برای تغییر schema باید migration جدید بسازید —db:pushکافی نیست.- API روی
http://localhost:5000و وب رویhttp://localhost:5173بالا میآید. Vite مسیر/apiرا به API محلی پروکسی میکند؛ برای همین مسیر محلی،VITE_API_URLرا تنظیم نکنید.
بررسی سلامت: curl http://localhost:5000/health/ready باید وضعیت ready بدهد. Swagger محلی در http://localhost:5000/api-docs است؛ عملیاتهای نوشتن را روی Swagger تولید امتحان نکنید.
اندروید
در apps/mobile با JDK 21 و SDK آماده:
./gradlew :android:assembleBazarDebug
هشدار: build نوع debug هم بهطور پیشفرض API تولید را هدف میگیرد. پیش از هر ورود آزمایشی یا instrumentation، نشانی API آزمایش را تنظیم و خروجیاش را بررسی کنید — صرف ساخت debug، محیط امن آزمایش نمیسازد.
همین مستندات
پوشهٔ docs یک پروژهٔ npm مستقل است. از ریشه:
npm ci --prefix docs
cp apps/api/openapi.json docs/static/openapi.json
npm start --prefix docs
قدم بعدی: اندروید، وب، تستها یا پرسشهای مهم.