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

Taghvimam

تقویم‌م (Taghvimam) یک پلتفرم تقویم با بک‌اند همگام‌سازی آفلاین و چند‌کاربره (Express + Prisma + PostgreSQL)، یک اپلیکیشن وب (React/Vite) و یک کلاینت اندروید است.

  • مرجع API — به‌صورت خودکار از اسکیمای Zod تولید می‌شود (منبع واحد): مرجع API.
  • API تعاملی — تمام مسیرها را زنده امتحان کنید: Swagger UI.
  • راهنماهاشروع به کار، معماری.

اینجا چه چیزی هست؟

بخشتکنولوژی
بک‌اند (apps/api)Express.js + TypeScript، Prisma + PostgreSQL، احراز هویت JWT، OTP پیامکی کاوه‌نگار، Firebase FCM
وب (apps/calendar-web)React 18 + Vite + Tailwind v3، TanStack Query، ساختار feature-sliced
قراردادها (packages/contracts)اسکیماهای Zod — منبع واحد برای تمام DTO‌های API و اسکیمای OpenAPI
همگام‌سازی (فاز ۱)همگام‌سازی آفلاین v2 — واترمارکِ نسخهٔ سراسری، کرسر HMAC، LWW، احراز هویت مبتنی بر دستگاه

نگاهی به همگام‌سازی دو‌جهته

کلاینت اندروید و سرور تغییرات را از طریق /api/v2/sync/* همگام می‌کنند:

  • هر رکورد یک version یک‌طرفه و یک uid تولید‌شدهٔ توسط کلاینت دارد؛
  • دریافت (pull) با یک کرسر امضاشده و نامشفاف هدایت می‌شود که نشانگر «آبِ بالا» را برای هر موجودیت نگه می‌دارد؛
  • ارسال (push) هر آیتم را با قاعدهٔ «آخرین‌نوشته‌برنده» (LWW) اعمال کرده و بازنده‌ها را در جدول قابل‌بازیابی SyncConflict ذخیره می‌کند.

برای مدل کامل به اسpec طراحی همگام‌سازی مراجعه کنید.