پرش به محتوا
آیسا لطفی
بازگشت به نمونه‌کارها

مطالعه موردی

Nova

سیستم‌عامل بهره‌وری شخصی

Next.jsNestJSTypeScriptPostgreSQLPrismaTanStack Query
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 مشخص داشته باشد
  • مونوریپو وقتی ارزشمند است که قراردادهای مشترک مستقل از فریم‌ورک بمانند
  • نرم‌افزار بهره‌وری بیش از ویجت‌های بیشتر به سلسله‌مراتب آرام اطلاعات نیاز دارد