مطالعه موردی
Nova
سیستمعامل بهرهوری شخصی

نگاه کلی
Nova یک مرکز فرماندهی فولاستک برای مدیریت وظایف، پروژهها، رویدادهای تقویم، یادداشتها، عادتها و جلسات تمرکز است. این محصول دادههای واقعی هر حساب را به یک نمای روزانه عملی و یکپارچه تبدیل میکند.
مسئله
اطلاعات بهرهوری معمولاً بین فهرست کارها، تقویم، یادداشت و تایمرهای جدا پخش میشود. محصول باید همه این جریانها را در یک تجربه منسجم جمع میکرد، اطلاعات هر کاربر را جدا نگه میداشت و در دسکتاپ و موبایل به یک اندازه کاربردی میماند.
راهحل
یک مونوریپوی تایپشده با فرانتاند Next.js، API مبتنی بر NestJS، Prisma و PostgreSQL ساختم. TanStack Query وضعیت سرور و تعاملات خوشبینانه را مدیریت میکند و نشستهای Cookieمحور، چرخش Refresh Token، حفاظت CSRF، اعتبارسنجی و کوئریهای مالکمحور مرز امنیتی واقعی ایجاد میکنند.
نقش من
- طراحی سیستم محصول، داشبورد واکنشگرا و کامپوننتهای رابط قابل استفاده مجدد
- معماری اپ وب و API بهعنوان پکیجهای مستقل و قابل استقرار
- پیادهسازی کامل وظایف، پروژهها، تقویم، یادداشتها، عادتها و تمرکز
- طراحی اسکیمای PostgreSQL، مایگریشنهای Prisma، قراردادهای REST، فیلتر و صفحهبندی
- پیادهسازی احراز هویت، چرخش نشست، CSRF، کنترل مالکیت و تنظیمات استقرار
چالشها
احراز هویت امن بین سرویسها
فرانتاند و API مستقل مستقر میشوند. درخواستهای مرورگر را با Reverse Proxy هممبدأ نگه داشتم و از Cookieهای HttpOnly، چرخش نشست و اعتبارسنجی CSRF بدون افشای اطلاعات ورود در جاوااسکریپت استفاده کردم.
مرزبندی دقیق مالکیت داده
تمام خواندنها و تغییرات منابع در سرور با شناسه کاربر فعلی محدود میشوند و حسابهای آزمایشی جدا برای بررسی جلوگیری از دسترسی متقاطع ساخته شدند.
تعامل سریع و سازگار
مرزهای محدود کلاینت، کش کوئری، باطلسازی هدفمند، بهروزرسانی خوشبینانه همراه Rollback و جلسات تمرکز بازیابیپذیر، سرعت رابط را بدون قربانی کردن سازگاری حفظ میکنند.
نتیجه
Nova به یک محصول فولاستک آنلاین و مناسب ارائه در پورتفولیو تبدیل شد؛ با شش فضای کاری متصل، رابط روشن و تاریک واکنشگرا، دادههای ماندگار حساب، احراز هویت امن و معماری استقرار مستقل وب، API و پایگاه داده.
درسهای آموخته
- امنیت و مالکیت باید از ابتدا در مدل داده و API حضور داشته باشند
- رابط خوشبینانه زمانی قابل اعتماد است که Rollback و Invalidation مشخص داشته باشد
- مونوریپو وقتی ارزشمند است که قراردادهای مشترک مستقل از فریمورک بمانند
- نرمافزار بهرهوری بیش از ویجتهای بیشتر به سلسلهمراتب آرام اطلاعات نیاز دارد