cowork-server

cowork-server یک API سرور برای فضای کار اشتراکی با اتاق‌های جلسه است. این پروژه بک‌اند لازم برای مدیریت کاربران، کنترل دسترسی، اتاق‌ها، رزروها و محدودیت‌های استفاده از اتاق‌های مشترک را فراهم می‌کند.

مدیریت کاربران و دسترسی

سرویس از ثبت‌نام، ورود و خروج، Refresh Token، فرایندهای رمز یک‌بارمصرف، تغییر گذرواژه، به‌روزرسانی پروفایل و آواتار، فعال‌سازی و قفل کردن کاربران، نقش‌ها و مجوزهای پویا پشتیبانی می‌کند. بخش مدیریتی نیز امکان فهرست کردن، دیدن جزئیات و فیلتر کردن کاربران و نقش‌ها را می‌دهد.

مدیریت اتاق‌های جلسه

اعضا می‌توانند اتاق‌های جلسه را مرور کنند، رزروها را ببینند، اتاقی رزرو کنند، رزرو را تغییر دهند یا لغو کنند و سابقه‌ی رزروهای خود را بگیرند. هر رزرو بر اساس فعال بودن اتاق، ساعت کاری روزانه، قوانین مدت رزرو و بازه‌ی حداکثر ۱۴ روزه‌ی رزرو اعتبارسنجی می‌شود.

هندلر رزرو از تداخل رزروها برای یک اتاق در یک بازه‌ی زمانی جلوگیری می‌کند. همچنین سقف روزانه‌ی دقایق رزروشده برای هر کاربر را اعمال می‌کند، دقایق قابل محاسبه و مبلغ رزرو را بر پایه‌ی قیمت ساعتی اتاق حساب می‌کند و میزان استفاده از سهمیه‌ی ماهانه و دقایق باقی‌مانده را پی می‌گیرد.

طراحی سرویس

راهکار C# لایه‌های application، domain، infrastructure، framework و web را از هم جدا می‌کند. از هندلرهای command/query، اعتبارسنجی، تراکنش، کش، فرایند اعلان مبتنی بر outbox و راهبردهای اعلان ایمیلی یا درون‌برنامه‌ای استفاده می‌کند. فایل‌های Docker و Docker Compose هم برای اجرای محلی یا کانتینری در پروژه قرار دارند.

مشاهده‌ی کد منبع در گیت‌هاب