سیستم برنامه‌ریزی جامع منابع سازمانی (ERP) نورا آزما

نمای کلی

برنامه‌ریزی شیفت‌های سازمانی با شناوری متغیر، محدودیت‌های قانونی اضافه کار و شیفت‌های هم‌پوشان پرسنل نیازمند محاسبات ترکیبی سنگین بود: اعتبارسنجی تداخل‌ها در سرور موجب تاخیر ۳۰۰ میلی‌ثانیه‌ای در تعاملات تقویم می‌شد و عدم وجود تفکیک اصولی لایه‌ها در کدهای قبلی به واردات دایره‌ای مکرر در ماژول‌های ERP می‌انجامید.

ساماندهی معماری فرانت‌اند Next.js با متدولوژی Feature-Sliced Design برای تضمین جریان یک‌طرفه داده‌ها. پیاده‌سازی الگوریتم حافظه‌محور تشخیص تصادم بازه‌های زمانی در React با پیچیدگی زمانی O(k log n) جهت اعلام آنی اخطارها و ساخت جداول ماتریسی تقویم با مبدل‌های تاریخ بدون انحراف شمسی.

کارفرما
نورا آزما (Noora Azma ERP)
تشخیص تداخل شیفت
کمتر از ۱.۲ms در حافظه
الگوی معماری
Feature-Sliced Design
واردات دایره‌ای
صفر (0 Violations)
سیستم برنامه‌ریزی جامع منابع سازمانی (ERP) نورا آزما
چالش‌های مهندسی

گلوگاه‌های فنی، عملکرد رندرینگ و معماری مقیاس‌پذیر

برنامه‌ریزی شیفت‌های سازمانی با شناوری متغیر، محدودیت‌های قانونی اضافه کار و شیفت‌های هم‌پوشان پرسنل نیازمند محاسبات ترکیبی سنگین بود: اعتبارسنجی تداخل‌ها در سرور موجب تاخیر ۳۰۰ میلی‌ثانیه‌ای در تعاملات تقویم می‌شد و عدم وجود تفکیک اصولی لایه‌ها در کدهای قبلی به واردات دایره‌ای مکرر در ماژول‌های ERP می‌انجامید.

چالش‌های کلیدی پیاده‌سازی و راهکارهای فنی:

تشخیص بلادرنگ تداخل شیفت‌های کاری و نمایش هشدارهای بصری

بررسی ساعت‌های شیفت جدید در برابر برنامه‌های موجود ماهانه برای بیش از ۱۰۰ پرسنل در لحظه، باعث کندی رابط کاربری و تاخیر در نمایش فیدبک تداخل می‌شد.

↳ دسته‌بندی و مموایز کردن شیفت‌ها بر اساس شناسه کارمند و تاریخ در استیت کلاینت، و بررسی سریع همپوشانی بازه‌های زمانی جهت نمایش فوری بج‌های هشدار تداخل و مسدودسازی ارسال فرم‌های نامعتبر زیر ۲ میلی‌ثانیه.

هماهنگ‌سازی تقویم شمسی جلالی با داده‌های زمان استاندارد UTC

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

↳ یکپارچه‌سازی تمام استیت‌های داخلی فرم‌ها بر پایه تایم‌استمپ‌های استاندارد UTC و محدودسازی تبدیل‌های تقویم شمسی صرفاً به لایه نمایش و انتخابگر تاریخ رابط کاربری.

بودجه عملکردی

معیارهای عملکردی و استانداردهای کیفی فرانت‌اند

01< 1.5ms In-Memory

Shift Conflict Detection

Target Budget: < 5.0ms

اندازه‌گیری‌شده در پنل Performance کروم با ثبت زمان اجرای توابع هنگام بررسی تداخل ۱۰۰ شیفت. دسته‌بندی داده‌ها در جدول هش با کلید شناسه کارمند.

02< 22ms

Calendar Grid Render Time

Target Budget: < 50ms

اندازه‌گیری‌شده با ابزار React DevTools Profiler در هنگام تغییر ماه تقویم. مموایز کردن ستون‌های روزانه و کارت‌های شیفت با React.memo جهت جلوگیری از رندر مجدد کل ماتریس تقویم.

030 Violations (FSD Validated)

Modular Boundary Integrity

Target Budget: 0 Circular Imports

اعتبارسنجی‌شده با قوانین خودکار ESLint و اعتبارسنجی تایپ‌اسکریپت در خط لوله CI جهت جلوگیری از هرگونه وابستگی چرخشی در معماری FSD.

صفحات و بخش‌های پروژه

معماری اجزا و بررسی کامل صفحات

داشبورد حضور و غیاب و ثبت تردد پرسنل

پورتال حضور و غیاب پرسنل با تایمرهای ثبت ورود/خروج لحظه‌ای، شاخص‌های هفتگی اضافه کار و کارت‌های نمایش بازه‌های شناور شیفت فعال.

داشبورد حضور و غیاب و ثبت تردد پرسنل

ماشین حساب کسری کار و گزارش روزانه تردد

ابزار گزارش‌گیری روزانه با محاسبه آنی ساعات کارکرد، کسری ساعت موظفی و اضافه‌کار مجاز بر اساس اسکیماهای استاندارد وزارت کار.

ماشین حساب کسری کار و گزارش روزانه تردد

پنل برنامه‌ریز شیفت و ماتریس تقویم مدیران

رابط تقویمی ادمین برای انتساب پرسنل، تعریف پارامترهای شیفت (ساعت شروع، پایان، سقف اضافه‌کار) و پایش لحظه‌ای هشدارهای تداخل در سلول‌های تقویم.

پنل برنامه‌ریز شیفت و ماتریس تقویم مدیران

گزارش تخصیص شیفت‌ها و سیاست‌های قانونی

نمای گزارش بازه زمانی با نمایش تاریخچه شیفت‌ها و هایلایت خودکار محدودیت‌های قانونی (سقف ساعات اضافه‌کار و حداکثر مرخصی ماهانه).

گزارش تخصیص شیفت‌ها و سیاست‌های قانونی
تصمیمات معماری و بده‌بستان‌ها

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

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

تصمیم ۰1Architecture

معماری لایه‌بندی پروژه: Feature-Sliced Design در برابر پوشه‌بندی مسطح

✓ راهکار انتخاب‌شده

پیاده‌سازی متدولوژی Feature-Sliced Design با لایه‌های تفکیک‌شده تک‌جهته

✕ گزینه بررسی‌شده

پوشه‌بندی معمولی بدون محدودیت لایه‌ای

تحلیل فنی و دلیل انتخاب

در سامانه‌های پیچیده ERP که موجودیت‌های دامنه (کارمند، شیفت، قوانین کاری) در صفحات متعدد به اشتراک گذاشته می‌شوند، پوشه‌بندی‌های معمولی به سرعت دچار واردات دایره‌ای (Circular Imports) می‌شوند. FSD با اعمال جهت‌گیری یک‌طرفه وابستگی‌ها، مانع از وابستگی لایه‌های پایین‌تر به لایه‌های بالاتر شده و ماژولار بودن کد را تضمین می‌کند.

تصمیم ۰2Architecture

استراتژی اعتبارسنجی: درخت بازه‌های زمانی در کلاینت در برابر اعتبارسنجی سمت سرور

✓ راهکار انتخاب‌شده

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

✕ گزینه بررسی‌شده

ارسال درخواست اعتبارسنجی به وب‌سرویس با هر بار درگ یا جابجایی شیفت

تحلیل فنی و دلیل انتخاب

انتظار برای پاسخ وب‌سرویس جهت بررسی هم‌پوشانی ساعت شیفت جدید با شیفت‌های قبلی پرسنل تاخیری در حدود ۳۰۰ میلی‌ثانیه ایجاد می‌کرد که روان بودن تقویم را مختل می‌ساخت. با انجام بررسی‌های سبک مبتنی بر آرایه روی برنامه‌های مموایز شده پرسنل در حافظه کلاینت، اعتبارسنجی در کمتر از ۱.۵ میلی‌ثانیه بدون پیچیدگی مهندسی درخت‌های بازه انجام شد.

راهکار مهندسی

راهکار فنی پیاده‌سازی‌شده

ساماندهی معماری فرانت‌اند Next.js با متدولوژی Feature-Sliced Design برای تضمین جریان یک‌طرفه داده‌ها. پیاده‌سازی الگوریتم حافظه‌محور تشخیص تصادم بازه‌های زمانی در React با پیچیدگی زمانی O(k log n) جهت اعلام آنی اخطارها و ساخت جداول ماتریسی تقویم با مبدل‌های تاریخ بدون انحراف شمسی.

Core Framework

Next.js 13/14 App Router, React Server Components & Strict TypeScript

Architecture Methodology

Feature-Sliced Design (Strict unidirectional layers: shared, entities, features, widgets, pages)

Algorithm & State

Custom In-Memory Schedule Overlap Validation Hook with React Context API

UI & Presentation

Tailwind CSS with Custom Calendar Matrix Grid Utilities and Jalali Date Slices

نتایج و دستاوردها

تاثیر بر پروژه و آموخته‌های کلیدی

01

متدولوژی Feature-Sliced Design چارچوب ساختارمندی ارائه می‌دهد که مانع از انباشت بدهی فنی و ایجاد بن‌بست‌های وابستگی دایره‌ای در ERPهای سازمانی می‌شود.

02

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

03

انجام محاسبات بر پایه ثانیه‌های دقیق Epoch از خطاهای انحراف ساعتی در سیستم‌های تقویم غیرگریگوری (شمسی جلالی) جلوگیری می‌کند.