رفتن به محتوای اصلی

شروع به کار

پیش‌نیازها:

  • 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

قدم بعدی: اندروید، وب، تست‌ها یا پرسش‌های مهم.