System Architecture · Database Schema · API Flow · Tech Stack
اپ موبایل با دوربین گوشی یا دوربین Insta360 عکسهای هر اتاق رو میگیره. هر اتاق = یک Scene
عکسها مستقیم به MinIO آپلود میشن. Backend یه tour_id جدید میسازه با status: processing
Celery worker عکسها رو پردازش میکنه، tileهای ۳۶۰ میسازه، hotspotهای پیشفرض اضافه میکنه
status به ready تغییر میکنه، viewer_url ساخته میشه، SMS به مالک ارسال میشه
Pannellum viewer توی مرورگر یا اپ لود میشه. خریدار بین اتاقها میچرخه، درخواست بازدید حضوری میده
مشاور قرارداد مینویسه، پورسانت از طریق زرینپال پرداخت میشه، ملک به status=sold/rented تغییر میکنه
| بخش | تکنولوژی | چرا؟ | جایگزین |
|---|---|---|---|
| Frontend Web | Next.js 14Tailwind | SEO عالی، سریع | Nuxt.js |
| Mobile App | React NativeExpo | iOS + Android با یه کد | Flutter |
| Backend API | FastAPIPython | سریع، async، راحت | Node/Express |
| Database | PostgreSQL | JSONB برای hotspot، قوی | MySQL |
| Cache | Redis | Session + cache سریع | - |
| 3D Viewer | Pannellum | رایگان، open source، سبک | Marzipano |
| Storage | MinIO | self-hosted، بدون تحریم | AWS S3 |
| Background Jobs | CeleryRedis | پردازش عکس async | RQ |
| Server | HetznerDocker | اروپا، ارزون، بیتحریم | Contabo |
| Payment | زرینپال | ایرانی، API ساده | IDPay |
| Auth | JWTSMS OTP | بدون پسورد، راحت | - |
| SMS | کاوهنگار | ایرانی، ارزان | ملیپیامک |
| Vibe Coding | Cursor AIClaude | سریعترین روش توسعه | Windsurf |